1、进入 nuttx , 执行make distclean 清理(之前已经配置编译过)
2、进入 nuttx/tools目录
执行
./configure.sh stm32f103-minimum/pwm
( 在nuttx\configs\stm32f103-minimum\pwm下可以看到配置文件)
3、回到nuttx目录
执行 make menuconfig
(因为win10的内置ubuntu显示问题,截图出现 --->--> 或者其他多余的字母,对着名称即可)
返回上一级
返回到第一级
为空,不选
返回到第一级
保存退出配置
4、下面是代码查看或修改
- 打开nuttx\configs\stm32f103-minimum\src 里的 stm32f103_minimum.h
找到
/* PWN Configuration */
#define STM32F103MINIMUM_PWMTIMER 3
#define STM32F103MINIMUM_PWMCHANNEL 3
- 打开nuttx\configs\stm32f103-minimum\src 里的 stm32_pwm.c
找到
#define HAVE_PWM 1
#ifndef CONFIG_PWM
# undef HAVE_PWM
#endif
#ifndef CONFIG_STM32_TIM3
# undef HAVE_PWM
#endif
#ifndef CONFIG_STM32_TIM3_PWM
# undef HAVE_PWM
#endif
#if !defined(CONFIG_STM32_TIM3_CHANNEL) || CONFIG_STM32_TIM3_CHANNEL != STM32F103MINIMUM_PWMCHANNEL
# undef HAVE_PWM
#endif
5、编译及烧写
6、接线及测试
查看 STM32F103C8T6的芯片数据手册,和上面的代码TIM3 通道3对应的是PB0
由于没有示波器,只能拿逻辑分析仪来测试比较直观点
用逻辑分析仪通道0接STM32f103-minimum的PB0,并设置成上升沿触发
点击start开始监听,同时执行:
pwm
逻辑分析仪的结果
直观点可以用舵机测试(执行后,会停留在100HZ,所以舵机动后就没有复位了)
舵机线
棕色->负极
舵机线
红色->正极
舵机线
橙色->PB0(信号线)
查看apps\examples\pwm 里的 pwm_main.c可以看到相关的命令
指定pwm设备参数 -p(pwm0可以通过 ls /dev/查看)
pwm -p /dev/pwm0
指定频率
pwm -p /dev/pwm0 -f 50