基于STM32F407VET6修改RT-Thread的命令操作串口及PWM设备使用步骤
修改RT-Thread的命令操作串口
修改的前提是已经有一份已经移植好的工程模板可以,使用RT-ThreadStudio软件直接生成或按照官方文档移植。
CUBEMX打开需要的串口
打开cubemx
打开并修改需要的串口
修改后生成
ENV打开串口
修改Kconfig文件
添加配置代码
menuconfig BSP_USING_UART
bool "Enable UART"
default y
select RT_USING_SERIAL
if BSP_USING_UART
config BSP_USING_UART1
bool "Enable UART1"
default y
config BSP_USING_UART3
bool "Enable UART3"
default n
config BSP_UART1_RX_USING_DMA
bool "Enable UART1 RX DMA"
depends on BSP_USING_UART1 && RT_SERIAL_USING_DMA
default n
config BSP_UART3_RX_USING_DMA
bool "Enable UART3 RX DMA"
depends on BSP_USING_UART3 && RT_SERIAL_USING_DMA
default n
endif
ENV打开串口3,并修改控制台输出串口
退出后生成工程
编译测试
串口3已经打开
控制台串口为串口3(若串口设备已打开可直接在此修改控制台串口)
PWM设备使用步骤
CUBEMX打开tim3的PWM设备
修改Kconfig配置代码
menuconfig BSP_USING_PWM
bool "Enable PWM"
default n
select RT_USING_PWM
if BSP_USING_PWM
menuconfig BSP_USING_PWM3
bool "Enable timer3 output pwm"
default n
if BSP_USING_PWM3
config BSP_USING_PWM3_CH1
bool "Enable pwm3 channel1"
default n
config BSP_USING_PWM3_CH2
bool "Enable pwm3 channel2"
default n
endif
endif
ENV打开设备
打开
生成新的工程
使用
打开keil工程,可看到驱动及驱动框架层均已添加相关文件,在对应设备pwm_config.h文件中有注册设备的字符名称及对应的STM32底层定时器。
底层一点的引脚初始化及设备初始化均已在drv_pwm.c中自动完成,进行应用层操作就行
具体的使用操作为获取设备句柄、设置参数、使能设备
struct rt_device_pwm *pwm_dev; /* PWM设备句柄 */
pwm_dev = (struct rt_device_pwm *)rt_device_find(PWM_DEV_NAME);
/* 设置PWM周期和脉冲宽度默认值 */
rt_pwm_set(pwm_dev, PWM_DEV_CHANNEL_1, period, pulse1);
rt_pwm_set(pwm_dev, PWM_DEV_CHANNEL_2, period, pulse2);
/* 使能设备 */
rt_pwm_enable(pwm_dev, PWM_DEV_CHANNEL_1);
rt_pwm_enable(pwm_dev, PWM_DEV_CHANNEL_2);