兴趣是学习最好的老师
对于硬件方面的兴趣从好久之前就有,不过由于各种原因一直没有上手,直到最近才开始真正接触、了解,与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红灯的全部代码和代码解释(涉及函数讲解,没有用代码注解)