RT-Thread Studio 开发经验之PWM
初学RTT系统时想使用RT-Thread Studio进行项目搭建,在此过程中遇到些问题以及解决过程记录一下
搭建过程
1,先使用Studio的设置功能配置 RT-Thread功能点击下图
2.点击右侧箭头详细配置
3.依次点击组件-设备驱动程序-开启PWM设备驱动程序-保存
4.打开STM32cubemx.使用它配置外设
5.这里我们配置PWM使用cubemx使能定时器PWM,这里选择的是定时器1的第四个通道为例
6.配置完成后生成代码,注意这里不要点击下图所示,否则生成的文件参与Studio编译会报错
7.注意,生成代码后要关闭STM32cubemx软件再使用Studio进行编译,不要开着它编译。
关闭STM32cube时提示保存点Yes
8.此时Studio提示如下,意思是使用STM32cube新生成了一样的配置文件,原始文件stm32f1xx_hal_conf.h改名加后缀_bak进行了备份
9.此时Studio工程目录中的cubemx文件夹下生成如图所示
10,需要的文件仅有main.c、stm32f1xx_hal_conf.h、STM32f1xx_hal_msp.c,其中main.c我们仅使用时钟的初始化函数,这个在时钟配置时已经移植。所以仅剩下两个文件。
11.将cubemx目录中的stm32f1xx_hal_conf.h和STM32f1xx_hal_msp.c文件复制到drivers文件夹下,将cubemx生成的stm32f1xx_hal_conf_bak.h文件删除,最后把cubemx的其它文件删除只留如下
9.将STM32f1xx_hal_msp.c头文件main.h定义为board.h,否则编译报错
10.board.h中添加cubemx中定义的定时器与通道,这里PWM1对应的就是TIM1,CH4就是通道4。
11.如果编译时提示’PWM1_CONFIG’ undeclared here (not in a function) drv_pwm.c
找不到定义故障那么找到如下图所示打开pwm_cofig.h文件,将没有定义的PWM1_INDEX从下方拷贝后修改TIM1与“pwm1"
12.打开PWM应用函数,比如蜂鸣器的beep.h,更改成对应TIM1_CH4的宏定义
13.main函数中加入初始化,并执行PWM函数即可
注意事项:
目前使用RT-Thread Studio 开发时内部的STM32cube生成的代码仅仅是用来参考移植,不要将cube生成的原始代码直接参与工程编译,否则会出现很多问题,这也是为什么使用完main.c、stm32f1xx_hal_conf.h、STM32f1xx_hal_msp.c文件后把cubemx中的文件删除的原因。