推荐阅读最新更新时间:2024-03-16 16:18
stm32f103 keil5 HAL库 UART中断接收
1.根据选择的串口使能中断,由于需要,我将串口空闲(IDLE)中断时能,并使能串口接收中断 HAL_NVIC_EnableIRQ(USART3_IRQn);//使能USART3中断 HAL_NVIC_SetPriority(USART3_IRQn,3,3);//配置USART3的优先级 HAL_UART_Receive_IT(&huart3,correction_Table, datalength);//correction_Table是申请的数组首地址 __HAL_UART_ENABLE_IT(&huart3, UART_IT_IDLE); //使能串口空闲(IDLE)中断 2.在中断函数中调用HAL_UART_IRQH
[单片机]
我该选择哪一个?DSP与DSP功能的ARM
最近在工控领域里的一个项目,看到前期的工程设计人员设计了 Cortex-M3 微处理器 与TI DSP 的搭档来完成整个项目。“为什么不使用 Cortex-M4 的内核?”这个疑问就立刻蹦了出来。今天仔细查询了一下,做个简单的对比,供广大的网友们参考。 上面只是简单提到了几点。3倍于 DSP 的主频频率使得 STM32F407 在一定程序上弥补了在处理浮点运算的不足,而较便宜的价格,不仅使得项目的总成本大幅节省,也便得有 ARM 开发基础的工程师们更容易操控 DSP 的算法。 毕竟是工业控制领域的应用, Cortex-M4 还能充分发挥其过程控制的优势,丰富的IO引脚及兼容的5v TTL电平与外
[嵌入式]
将STemWin移植到在STM32F103RCT6上的FreeRTOS上
1、版本信息 STM32固件库V3.5.0 FreeRTOS V8.2.3 STemWin 5.26 Keil 4 2、移植步骤 将FreeRTOS移植到STM32F103RCT6上,这个前面的博客有提到,课参考; 添加LCD屏的驱动代码,在这个实验中使用的正点原子的MINI板,使用的ILI9341的驱动芯片,添加好并在裸机下测试可用; 将STemWin 5.26相关文件添加到工程中,如下图 将涉及到的头文件路径加到工程的头文件路径中去 修改GUIConf.c文件中的一处地方,这个地方根据芯片来改,太大了编译会不通过,提示内存不足。如下图 在FreeRTOS创建一个任务来显示,效果如图 至此,就
[单片机]
STM32F103VCT6 高级定时器的PWM输出
要求得到下列 波形 ,死区时间1us,CH1和CH1之间的相位差事3us,频率50HZ。 1,To get TIM1 counter clock at 72MHz,the prescaler is computer as follows: Prescaler = (TIM1CLK / TIM1 counter clock) - 1 To objective is to genterate PWM signal at 50KHz: -TIM1_Priod = (SystemCoreClock / 50000) - 1 To get TIM1 output clock at 50KHz , the pe
[单片机]
FreeRTOS+Lwip+STM32F407移植笔记
移植步骤: 1 - 先移植FreeRTOS的Demo; 2 - 再移植Lwip的文件(源码&sys_arch&lwip_comm); 3 - 单个实现TCPIP协议栈任务:TCP客户端、TCP服务器和UDP; 模块: - 内存管理:需要给 以太网驱动 、 FreeRTOS 、 Lwip 三个部分分配内存; - 以太网DMA描述符&以太网DMA Buffer - Lwip的RAM部分:ram_heap&内存池部分:memp; - FreeRTOS占用RAM由配置文件定义大小,用于操作系统中动态操作的分配; - 另外原子实现的内存管理方式中的内存管理表也会占用很大内存,与内存块大小密切相关;
[单片机]
用STM32F407玩控制—常规PID控制
常规PID控制或算法如下: uc=Kc*(e+∫e*dt/Ti+Td*de/dt) 或者用传递函数表示: Gc(s)=Kc*(1+1/(Ti*s)+Td*s) 如果用计算机实现PID算法,那得用数值积分和数值微分来代替积分和微分运算,即 用 Δt代替dt, 用∑运算代替 ∫运算,用差分代替微分运算,但每次作 ∑运算显然是不合理的,1是计算量大,2是随着时间增加,变量将趋无穷多,这也是不可能的,所以,改成增量计算是更好的方法,这样PID控制的增量计算式为: Δu=Kc*{e(k)-e(k-1)+e(k)*Ts/Ti+ *Td/Ts} 式中Ts为采样时间,Kc为比例增益,Ti是积分时间, Td是微分分时间。 这个算式在单片机中实
[单片机]
STM32f103USB移植之USB鼠标
这几天闲着没事开始折腾起32的USB了,USB协议内容有这么复杂,看了几天只吧大概的流程看懂了,具体的实现和数据传输就没有去深究了.stm32USB模块的资料在网上找到了许多,不过每个都只是讲了一部分,在这里把自己移植的过程和我的理解写下来,给自己做个备忘也给大家参考一下。 / **************************************不吵嗦的分割线***** ********* / 移植准备:ST官方提供的USB库之JoyStickMouse 开发环境:keil 5.11 使用芯片:STM32F103VE 参考资料:https ://blog.
[单片机]
基于STM32F103的深海远程电机控制系统设计
深海电机控制系统是深海科学考察、地质勘探、生物资源采集、深海打捞等深海作业中的一项关键技术, 使电机在深海的复杂环境中高效、可靠地运行具有重要的意义。目前, 在我国的深海科学考察中,通常采用有刷直流电机作为动力来源, 水下锂电池为其供电。由于锂电池价格昂贵且需要不时的对其进行充电, 严重影响了有效作业时间, 所以, 采用水上供电即远程控制的方式有很大的实际意义。另一方面,有刷直流电机因长时间侵泡在高压油中, 加上深海作业环境的恶劣, 电刷和换相器很容易损坏。而永磁同步电机利用电子换相代替了机械换相, 不但具有直流电机的调速性能, 而且体积小、效率高。永磁同步电机的转子采用永磁体, 所以省去了励磁 电路 , 因而具有更高的功率因
[单片机]