# RT-Thread **Repository Path**: l----h/rt-thread ## Basic Information - **Project Name**: RT-Thread - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-08-17 - **Last Updated**: 2026-08-17 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # LED 闪烁例程 ## 简介 本例程作为 SDK 的第一个例程,也是最简单的例程,类似于程序员接触的第一个程序 Hello World 一样简洁。它的主要功能是让板载的 RGB-LED 中的红色 LED 不间断闪烁。 ## 硬件说明 ![LED 连接单片机引脚](figures/led_pin.png) ![LED 电路原理图](figures/led_circuit.png) 如上图所示,RBG-LED 属于共阳 LED ,阴极分别与单片机的引脚连接,其中红色 LED 对应 PF12 引脚。单片机引脚输出低电平即可点亮 LED ,输出高电平则会熄灭 LED。 LED 在开发板中的位置如下图所示: ![LED 位置](figures/red_light.jpg) ## 软件说明 本例程的源码位于 `/projects/02_basic_led_blink`。 闪灯的源代码位于 applications/main.c 中。首先定义了一个宏 LED_PIN ,代表闪灯的 LED 引脚编号,然后与 PIN_LED_R(PF12)对应: ```c /* 配 置 LED 灯 引 脚 */ #define LED_PIN PIN_LED_R ``` 在 main 函数中,将该引脚配置为输出模式,并在下面的 while 循环中,周期性(500 毫秒)开关 LED,同时输出一些日志信息。 ```c #include #include #include #define DBG_TAG "main" #define DBG_LVL DBG_LOG #include /* 配置 LED 灯引脚 */ #define PIN_LED_B GET_PIN(F, 11) // PF11 : LED_B --> LED #define PIN_LED_R GET_PIN(F, 12) // PF12 : LED_R --> LED int main(void) { unsigned int count = 1; /* 设置 LED 引脚为输出模式 */ rt_pin_mode(PIN_LED_R, PIN_MODE_OUTPUT); while (count > 0) { /* LED 灯亮 */ rt_pin_write(PIN_LED_R, PIN_LOW); LOG_D("led on, count: %d", count); rt_thread_mdelay(500); /* LED 灯灭 */ rt_pin_write(PIN_LED_R, PIN_HIGH); LOG_D("led off"); rt_thread_mdelay(500); count++; } return 0; } ``` ## 运行 ### 编译 & 下载 - RT-Thread Studio:在 RT-Thread Studio 的包管理器中下载 `STM32F407-RT-SPARK` 资源包,然后创建新工程,执行编译。 - MDK:首先双击 mklinks.bat,生成 rt-thread 与 libraries 文件夹链接;再使用 Env 生成 MDK5 工程;最后双击 project.uvprojx 打开 MDK5 工程,执行编译。 ### 运行效果 按下复位按键重启开发板,观察开发板上 RBG-LED 的实际效果。正常运行后,红色 LED 会周期性闪烁,如下图所示: ![红灯亮起](figures/red_light.jpg) 此时也可以在 PC 端使用终端工具打开开发板的 ST-Link 提供的虚拟串口,设置 115200 8 1 N 。开发板的运行日志信息即可实时输出出来。 ``` [D/main] led on, count: 1 [D/main] led off [D/main] led on, count: 2 [D/main] led off [D/main] led on, count: 3 [D/main] led off [D/main] led on, count: 4 [D/main] led off [D/main] led on, count: 5 [D/main] led off [D/main] led on, count: 6 [D/main] led off [D/main] led on, count: 7 [D/main] led off [D/main] led on, count: 8 ``` ## 注意事项 如果想要修改 LED_PIN 宏定义,可以参考 /drivers/drv_gpio.h 文件,该文件中里有定义单片机的其它引脚编号。 ## 引用参考 - 设备与驱动:[PIN 设备](https://www.rt-thread.org/document/site/#/rt-thread-version/rt-thread-standard/programming-manual/device/pin/pin) ## 小实验 思考一下如何点亮蓝色 LED 呢?