您的位置:首页 > 其它

NuttX 入门笔记3 STM32F103C8T6(STM32f103-minimum) 修改example点亮流水灯

2017-08-13 17:41 381 查看
原文地址:http://blog.csdn.net/cs1107979819/article/details/77148358


1、接线,用8个led分别接到STM32f103-minimum的A0到A7
等8个引脚



2、进入 nuttx , 执行make distclean 清理(之前已经编译过)
3、进入 nuttx/tools目录
执行
./configure.sh stm32f103-minimum/userled
( 在nuttx\configs\stm32f103-minimum\userled 下可以看到配置文件)
4、回到nuttx目录
执行 make menuconfig
(因为win10的内置ubuntu显示问题,截图出现 --->--> 或者其他多余的字母,对着名称即可)







在输入框里输入0xff



保存退出配置
5、下面是代码修改(由于还没配置eclipse或者其他ide,所以直接在代码目录编码)

打开nuttx\configs\stm32f103-minimum\include里的 board.h

找到
#define BOARD_NLEDS       1


修改成

#define BOARD_NLEDS       8




打开nuttx\configs\stm32f103-minimum\src 里的 stm32f103_minimum.h

找到

#define GPIO_LED1 (GPIO_OUTPUT|GPIO_CNF_OUTPP|GPIO_MODE_50MHz|\
GPIO_OUTPUT_CLEAR|GPIO_PORTB|GPIO_PIN12)


复制及修改成A0到A7 的引脚配置



打开nuttx\configs\stm32f103-minimum\src 里的 stm32_userleds.c

找到
static const uint32_t g_ledcfg[BOARD_NLEDS] =
{
GPIO_LED1,


添加 GPIO_LED2 ... GPIO_LED8,



6、 代码修改完成,开始编译,烧录...执行leds





7、按照入门笔记2,手动控制led亮灭,分别输入执行,并不达到命令的执行效果

printf \x00 > /dev/userleds

printf \x01 > /dev/userled



8、回想上一篇的配置,应该是缺少了配置,添加配置:
回到nuttx 目录,执行make clean(注意这里不是make distclean,否则就要重新配置上面的步骤) 清理生成的代码,执行make menuconfig 添加配置





向下找到 “Disable printf”,空格键取消掉选中



9、再次编译... 执行

全部亮灯执行:

printf \x00 > /dev/userleds

全部灭灯执行:

printf \xff > /dev/userleds

led1灭灯执行:(0000 0001)

printf \x01 > /dev/userleds

led2灭灯执行:(0000 0010)

printf \x02 > /dev/userleds

led1、led3 灭灯执行:( 0000 0101)

printf \x05 > /dev/userleds

led1、led2 灭灯执行:( 0000 0011)

printf \x03 > /dev/userleds

led5灭灯执行:(.0001 0000)

printf \x10 > /dev/userleds

led5、6、7、8灭灯执行:(.1111 0000)

printf \xf0 > /dev/userleds

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  NuttX stm32 led