WRTnode 2R STM32固件的烧写和spi-bridge的使用
WRTnode2r_STM32_bootloader.hex
首先放上来的这两个文件,是WRTnode群共享放出的bootloader和我自己编译的rtthread程序。大家可以先拿编译好的固件使用。
STM32固件的烧写
接线
我这里使用的烧写工具是ST-Link,接线方式参考pinMap:
只需要接GND,SWCLK和SWDIO即可调试。
烧写
接好之后,我们打开STM32 ST-LINK Utility软件开始烧写固件。
首先点击Connect to the target连接STM32,连接成功之后应该可以在右上角看到STM32F10xx Medium-density,64KBytes等信息,这是STM32F103T8U6芯片的信息。
然后我们点击Program verify,选WRTnode2r_STM32_bootloader.hex开始烧写。
然后烧写rtthread.bin,这里一定要记得地址必须填0x08001000,不然bootloader就没了。
烧好以后,就可以在终端中使用spi-bridge与STM32进行交互了。
spi-bridge
更新&编译
在内测版WRTnode 2R的SDK中是没有WRTndoe2r-stm32这个package的,所以我们首先得更新feeds,进入wrtnode文件夹,然后输入:
1 | ./scripts/feeds update wrtnode |
在WRTnode中选择WRTndoe2r-stm32,你将得到spi-bridge命令和flash-stm32命令。
1 | spi-bridge |
下图就是spi-bridge的效果:
输入tab,回车,就可以看到所有的命令和命令的解释说明。个人认为最大的亮点在于,它加入了Arduino的语法,可以使用pinMode,digitalWrite,digitalRead等命令,由于是测试版,还未加入所有的功能,以后肯定会加入诸如analogWrite(PWM),analogRead(ADC)等功能,大大降低单片机开发难度,让更多人能够跨入这个门槛中。
1 | spi-bridge # 进入交互模式 |
通过输入下面的命令,我们可以控制PB5输出高电平:
1 | spi-bridge write "pinMode 5 0" # 0表示输出 |
至于各个引脚的定义,在官方的PIN_MAP中可以找到:https://github.com/WRTnode/wrtnode2r_stm32/blob/master/maple/wirish/boards/wrtnode2/board.cpp#L67
1 | extern const stm32_pin_info PIN_MAP[BOARD_NR_GPIO_PINS] = { |
下面的链接是spi-bridge的源码,有兴趣的同学可以自行研究:
https://github.com/WRTnode/openwrt-packages/blob/master/wrtnode/spi-bridge/src/main.c