
stm32f103 系列,串口有3种工作模式:查询、中断、DMA。本次应用采用DMA中断模式。:DMA是在专门的硬件( DMA)控制下,实现高速外设和主存储器之间自动成批交换数据尽量减少CPU干预的输入,输出操作方式。其USART配置流程:1、串口时钟配置;2、管脚配置(如重映射,管脚模式);3、串口配置;4、DMA配置;中断配置;5、打开串口。
本实验USART(128000 BaudRate,8个数据位,1个停止位,无校验码)功能: 1、开机输出一段字符串; 2、输入 "1" 打开LED,串口输出“LED->ON”; 3、输入 "0" 关闭LED,串口输出“LED->OFF”。
USART程序流程图如图2-10所示。
实验效果图如下。
Quadcopter_usb.rar

软件环境: Keil MDK; 库函数版本:STM32库3.5 。
2、飞行器外部晶振16MHz设通用72MHz芯片主频
1)“Option targets ....” -> "Target" ->"Xtal(MHz)" 设为"16.0"(默认8.0);
2) 修改"#define HSE_VALUE ((uint32_t)8000000)" 成 "#define HSE_VALUE ((uint32_t)16000000)" @stm32f10x.h第119行。
3) 修改"RCC->CFGR |= (uint32_t)(RCC_CFGR_PLLSRC_HSE | RCC_CFGR_PLLMULL9)" 为 "RCC->CFGR |= (uint32_t)(RCC_CFGR_PLLSRC_HSE | RCC_CFGR_PLLXTPRE | RCC_CFGR_PLLMULL9)" @system_stm32f10x.c第1056行。

对于PWM频率的选择,其实没有统一的标准, PWM的频率和电机感抗和速度响应时间有很大的关系。电机 一般的电机的PWM频率在5KHz-20KHz就足够了。如果电机转速比较高,感抗比较小,可以使用比较高的频率,一般最好不要超过20KHz。其次PWM频率还要根据驱动电路来, 因为一般IGBT最高20K的开关频率,采用3KHz-15KHz的PWM频率, 而MOS 的开关频率比较高,一般在8KHz-20KHz。 但是过高的频率需要专用的驱动电路,不然MOS工作在放大区的时间比较长。 如果电机转速比较低,感抗比较大, 而且又是在做伺服, 那开关频率就需要低一点。
对于电机应用,功率越大,PWM频率越低,最低有500Hz或者1KHz的,在兆瓦级的应用中。普通中小功率的,5KHz-20KHz常见,功率越低,电压等级越低,你所能使用的PWM频率越高。因为低压的开关频率可以做到很高,而高压的却很难快速开关。本次实验PWM频率采用18KHz。
PWM配置(STM32为例)流程如表2-1。
步骤 |
说明 |
1 |
设定TIM信号周期 |
2 |
设定TIM预分频值 |
3 |
设定TIM分频系数 |
4 |
设定TIM计数模式 |
5 |
初始化TIM |
6 |
设定TIM的OC模式 |
7 |
TIM输出使能 |
8 |
设定电平跳变值 |
9 |
设定PWM信号极性 |
10 |
使能TIM信号通道 |
11 |
使能TIM重载寄存器CCRX; |
12 |
使能TIM重载寄存器ARR |
13 |
使能TIM计数器 |
本实验采用串口控制,其串口指令说明如表2-2所示。
序列 |
指令 |
串口响应值 |
说明 |
1 |
LED ON |
LED->ON |
彩灯亮 |
2 |
LED OF |
LED->OFF |
彩灯熄灭 |
3 |
PWM UP |
PWM->UP |
电机加速 |
4 |
PWM DN |
PWM->DOWN |
电机减速 |
5 |
PWM OF |
PWM->OFF |
电机关闭 |
6 |
PWM ST |
PWM Compare Value Compare Value1 Compare Value2 Compare Value3 Compare Value4 |
电机状态; Duty Ratio = Compare ValueX / 1000 |

回复
打赏帖 | |
---|---|
汽车电子中巡航控制系统的使用被打赏10分 | |
分享汽车电子中巡航控制系统知识被打赏10分 | |
分享安全气囊系统的检修注意事项被打赏10分 | |
分享电子控制安全气囊计算机知识点被打赏10分 | |
【分享开发笔记,赚取电动螺丝刀】【OZONE】使用方法总结被打赏20分 | |
【分享开发笔记,赚取电动螺丝刀】【S32K314】芯片启动流程分析被打赏40分 | |
【分享开发笔记,赚取电动螺丝刀】【S32K146】S32DS RTD 驱动环境搭建被打赏12分 | |
【分享开发笔记,赚取电动螺丝刀】【IAR】libc标注库time相关库函数使用被打赏23分 | |
LP‑MSPM0L1306开发版试用结果被打赏10分 | |
【分享开发笔记,赚取电动螺丝刀】【LP-MSPM0L1306】适配 RT-Thread Nano被打赏23分 |