1、进入 nuttx , 执行make distclean 清理(之前已经配置编译过)
2、进入 nuttx/tools目录
执行
./configure.sh stm32f103-minimum/rgbled
( 在nuttx\configs\stm32f103-minimum\rgbled下可以看到配置文件)
3、回到nuttx目录
执行 make menuconfig
TIM1 到TIM4 4 个都定时器都选上
返回上一级
同样TIM1 到TIM4 都要设置
返回到第一级
返回到第一级
保存退出配置
4、下面是代码查看或修改
- 打开nuttx\configs\stm32f103-minimum\include里的 board.h
找到
/* PWM
*
* The STM32F103-Minimum has no real on-board PWM devices, but the board can
* be configured to output a pulse train using TIM3 CH3 on PB0.
*
* Note: we don't need redefine GPIO_TIM3_CH3OUT because PB0 is not remap pin.
*/
/* RGB LED
*
* R = TIM1 CH1 on PA8 | G = TIM2 CH2 on PA1 | B = TIM4 CH4 on PB9
*
* Note: Pin configs: GPIO_TIM1_CH1OUT ; GPIO_TIM2_CH2OUT ; GPIO_TIM4_CH4OUT
*/
#define RGBLED_RPWMTIMER 1
#define RGBLED_RPWMCHANNEL 1
#define RGBLED_GPWMTIMER 2
#define RGBLED_GPWMCHANNEL 2
#define RGBLED_BPWMTIMER 4
#define RGBLED_BPWMCHANNEL 4
- 查看nuttx\configs\stm32f103-minimum\src 里的 stm32_rgbled.c相关定义
5、编译及烧写
6、接线及测试
从上面的代码可以看到
R =>
PA8 ( TIM1 CH1)
G =>
PA1 ( TIM2 CH2)
B =>
PB9 ( TIM4 CH4 1)
执行
rgbled
只亮R灯执行
echo “#FF0000”> /dev/rgbled0
只亮G灯执行
echo “#00FF00”> /dev/rgbled0
只亮B灯执行
echo “#00FF00”> /dev/rgbled0
echo “#00FF00”> /dev/rgbled0
注:①有可能rgb灯模块的引脚标错了,执行上面的命令没得到相对于的颜色,可以先直接用vcc【别接错,是共地类型的】接该引脚,看是否是该颜色;
②以上命令直接复制可能导致双引号丢失,执行没有效果
echo “#00FF00”> /dev/rgbled0