使用STM32CubeMx搭建平衡小车代码框架参考模板.doc
《使用STM32CubeMx搭建平衡小车代码框架参考模板.doc》由会员分享,可在线阅读,更多相关《使用STM32CubeMx搭建平衡小车代码框架参考模板.doc(12页珍藏版)》请在三一文库上搜索。
1、使用STM32CubeMx快速搭建平衡小车代码框架硬件平台:STM32CubeMxHAL代码库:STM32F1xx项目平台:MDK5.17A1.项目总体框架如下:MPU6050的数据读取采用软件模拟IIC,可使用MPU的DMP库直接生成角度值,减轻MCU计算负担;(DMP库资源详见,正点原子MPU6050资料)电机驱动部分采用市面上常见的直流电机驱动,引脚分布如下:PWMA,PWMB,A0,A1,B0,B1;其中PWMA、PWMB为电机驱动信号;A0、A1、B0、B1为电机方向控制信号,其控制电平如下:A0A1电机高高 制动高低 正转低高反转低低停止其中,制动为电机锁死,而停止为电机停转;2.
2、项目搭建:Step1.打开STM32CubeMX,单击“New Project”,选择芯片型号,STM32F103C8Tx。Step2.配置Debug,根据实际选择1 / 12Step3.配置外部时钟信号Step4.配置TIM2(PWM发生器)Step5.配置模拟IIC引脚Step6.配置电机控制引脚Step7.配置TIM3(用作微妙延时时钟),CubeMx生成的代码中不包含微妙延时,此部分用于实现模拟IIC的微妙延时Step8.配置USART1(用于串口调试)Step9.时钟配置注:关于输入时钟一定要按实际晶振频率填写,否则会造成时序混乱;Step10.TIM2参数配置(10KHz)Step
3、11.配置TIM3(微妙延时定时器)定时器时钟频率的计算:定时器时钟频率:72MHz72MHz/(PSC+1)/ARR=72/(71+1)/1=1Mhz=1us;Step12.配置GPIO口Step13.生成项目配置至此,关于平衡小车的软件框架配置已全部完成,点击项目生成,进入MDK编写代码:代码片段1:微妙函数的实现#include delay.h#include tim.hvoid Delay_us(uint32_t us)uint16_t counter=us&0xffff;HAL_TIM_Base_Start(&htim3);_HAL_TIM_SetCounter(&htim3,cou
4、nter);while(counter1)counter=_HAL_TIM_GetCounter(&htim3);HAL_TIM_Base_Stop(&htim3);void Delay_ms(uint32_t ms)Delay_us(1000*ms);代码片段2 模拟IIC:#define HIGH1#define LOW0#define SDA_IN() GPIOB-CRL&=0x0FFFFFFF;GPIOB-CRL|=0x40000000;#define SDA_OUT() GPIOB-CRL&=0x0FFFFFFF;GPIOB-CRL|=0x10000000; #define IIC_
5、SCL(n) (n?HAL_GPIO_WritePin(GPIOB,GPIO_PIN_6,GPIO_PIN_SET):HAL_GPIO_WritePin(GPIOB,GPIO_PIN_6,GPIO_PIN_RESET) /SCL#define IIC_SDA(n) (n?HAL_GPIO_WritePin(GPIOB,GPIO_PIN_7,GPIO_PIN_SET):HAL_GPIO_WritePin(GPIOB,GPIO_PIN_7,GPIO_PIN_RESET) /SDA#define READ_SDA HAL_GPIO_ReadPin(GPIOB,GPIO_PIN_7)void IIC_
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 使用 STM32CubeMx 搭建 平衡 小车 代码 框架 参考 模板
链接地址:https://www.31doc.com/p-15005387.html