RT-thread从点灯开始

219 阅读3分钟

兴趣是学习最好的老师

对于硬件方面的兴趣从好久之前就有,不过由于各种原因一直没有上手,直到最近才开始真正接触、了解,与rt-thread同样功能的还有freertos,可能因为eclipse、as、pycharm这类idea工具用的习惯了,还是选择了RT-thread。

每一门语言或者计算机技术都有入门第一课,最经典的就是“Hello World!”,毕竟是硬件,还是打印这句,总觉得怪怪的,所以决定从电量LED流水灯(按键相对还是有点难度)开始,入门选择的是野火的霸道F103ZET6 V2的板子,总体来说器件挺全,不需要再单独购买,当然,同类型的板子基本都是这样,后面学到步机这样的外置模块另说。

PS: 连接电源和下载调试器,以及RT-thread创建项目这部分不打算写,搜索引擎上一堆,可以自行查找,找不到的话也可以私信找我

创建项目时需要注意调试器要选择正确,不然会失败

#include <rtthread.h>
#include <rtdevice.h>
#include <drv_common.h>
#include <rtdbg.h>

#define LED_R GET_PIN(B, 5)
#define LED_G GET_PIN(B, 0)
#define LED_B GET_PIN(B, 1)

int main(void)
{
    rt_pin_mode(LED_R, PIN_MODE_OUTPUT);
    while(1){
        rt_pin_write(LED_R, PIN_HIGH);
        rt_thread_delay(5000);
        rt_pin_write(LED_R, PIN_LOW);
        rt_thread_delay(5000);
    }
    return RT_EOK;
}

上面就是全部代码,功能就是开机5s后LED灯亮红色,再5s后熄灭,循环

入门了解一点pin脚、高低电平、输出模式这些概念,以后都会用到

① 前四行用来引用头文件,包括设置pin脚输出模式、设置高低电平等操作都在对应头文件的实现中(暂时知道需要引用这些就行,用多了自然了解哪些接口在哪些库里)

第五行到第七行定义PIN脚,LED灯三原色各占一个pin脚

以#define LED_R GET_PIN(B, 5)为例

LED_R是自定义变量名 GET_PIN是固定用法,用于获取对应PIN脚的引用,用于后续设置

(B, 5)表示pin脚在总线B上的位置(pin脚功能可以通过对应图示查找) main函数

rt_pin_mode函数用于设置pin脚输出模式,带2个参数时,第一个参数是对应pin脚的引用对象,第二个对象是输出模式,PIN_MODE_OUTPUT表示推挽输出

while死循环

rt_pin_write函数可以用于设置pin脚的高低电平,带2个参数时,第一个参数是对应pin脚的引用对象,第二个参数是高低电平

PIN_HIGH高电平,PIN_LOW低电平

rt_thread_delay函数用于线程休眠,传参时间单位是ms级

上述就是点亮LED红灯的全部代码和代码解释(涉及函数讲解,没有用代码注解)