实验要求: 使用野火或正点原子M3、M4或M7开发板点亮第一盏LED灯。 硬件上:至少有一路 GPIO, 能够用来接 LED 灯; 有一路串口用来做 msh shell 终端。 软件上:串口驱动; PIN 驱动。
准备工作: 根据硬件连接情况配置与 LED 灯连接的 PIN 号。 -硬件准备:野火stm32f103霸道开发板; -软件准备:rtt3.1.0、stm32f10x BSP、env0.7.1。
实例代码:```#include
void led_blink(void)
{
uint16_t count = 0;
while (1)
{
/ 设置 PIN 脚为输出模式 /
rt_pin_mode(LED_PIN, PIN_MODE_OUTPUT);
}
/ 导出到 msh 命令列表中 /
MSH_CMD_EXPORT(led_blink, led blink sample);```
实验步骤:使用ENV配置串口和PIN驱动,串口1做msh shell 终端。然后添加led_blink.c文件到工程,编译无错后下载到开发板。
结果:开发板红灯每隔0.5s不断闪烁,串口调试助手打印相如下应信息。
![EKETL}}K@)%]4VUN{Z8%T3.png
遇到的问题: 通过ENV配置的stm32f10x工程默认使用的总的引脚数为100,而我的开发板上总的引脚为144,因此配置的引脚号和控制灯的引脚一直对应不上,导致串口能打印信息,灯却不亮。
解决方法: 修改gpio.c文件下宏 #define STM32F10X_PIN_NUMBERS 100 //[48, 64, 100, 144 ] 为 #define STM32F10X_PIN_NUMBERS 144 //[48, 64, 100, 144 ]即可。