基于STM32HAL库的平衡小车设计(二)--CubeMX配置说明
项目开源链接本项目资料完全开源。资料包获取方式github https://github.com/snqx-lqh/ProjectReleasePagegitee(国内镜像)https://gitee.com/snqx-lqh/ProjectOpenSourceReleasePage。项目属于32的编号B005在发布页中找到对应项目获取方式。项目说明这个项目首先将实现STM32平衡小车的基本平衡功能使用的是STM32HAL库并且结合CubeMX开发完整的教程希望能够订阅专栏将分多个博客讲述内容仅代表个人观点仅供参考。本系列内容并不会涉及过多理论知识更多的只是怎么将小车运行起来。本文内容主要是针对使用的CubeMX相关基础配置做一个说明。完整叙述了创建工程的过程。CubeMX基础配置1、建立新工程2、搜索STM32F103C8T6然后双击3、选择使能外部高速时钟不使能外部低速因为外部低速在本项目没用上而且那两个脚被我用来当按键输入引脚了。4、打开SW调试功能必须打开不然单片机只能下载一次5、配置时钟选择外部时钟然后在最后处写入72MHz然后回车会自动配置时钟6、填写工程名字然后选择路径最后选择使用Keil5打开版本选择V5太高了怕其他电脑打不开。7、代码生成处选择如下选项8、最后就可以点击右上角的GENERATE CODE生成代码了。以上是基本功能接下来我们将配置每一个模块。关闭keil工程继续配置。电机驱动首先设置PWM的输出值使用定时器1的通道1和通道4分频系数为0计数系数为7199。分频系数为0的话计数1个值就是 72Mhz/(01)的频率倒数就是周期1 / ( 72Mhz/(01) )s 那么计数系数为7199的话一个PWM定时的周期就是72Mhz/(01)/(71991)也就是10KHz。占空比的可设置区间就是0~7199。然后是控制方向的AIN1、AIN2、BIN1、BIN2将4个引脚设置成普通的输入输出并且进行重命名。都设置成推挽上拉输出。编码器驱动把定时器2和定时器4都设置成编码器模式并且将模式设置成T1T2这种模式下的编码器能读到的脉冲数最多。超声波驱动ECHO端使用超声波的输入捕获模式。还需要设置一个定时器中断并给一个中断等级。TRIG使用单片机的普通IO口输出MPU6050驱动IIC)mpu6050使用IIC驱动直接初始化就行了选择快速模式然后还需要一个中断引脚中断模式并且配置成上升沿中断。并且使能中断电源ADC勾选ADC1的IN4其他默认。转换周期可以选大一点不然可能转换的不是很准确打开ADC后时钟可能会乱需要回到时钟界面调整一下重新设置输出时钟蓝牙接口、串口调试USART1、USART2、USART3都是串口调试所以配置也都基本一样。使能串口中断配置一个串口中断的优先级串口2和串口3同样的配置基础配置不做演示反正就是打开了一个异步功能和串口1的第一个配置步骤一样。OLED(SPI使用的7针OLED所以直接使用SPI的驱动A6其实配置了也没用上。其他几个脚设置成普通的GPIO输出模式按键按键就直接设置引脚输入为上拉输入就行了LED驱动最小系统板的PC13连接了一个LED灯可以设置成LED做一些调试配置为普通的推挽上拉输出。