RT-Thread学习之路(一)

首先,我用的是ENV方式,来增加代码的。

如果想把RT-Thread的BSP包下面的例程,不用自己一步一步去研究例程,可以直接用ENV命令来拷贝一份出来。

强调一下,程序包必须在英文目录下,跟MDK5.25以上的开发软件一样,如果有中文路径就会仿真出错。

命令:scons --dist

搭建项目框架,使用此命令会在 BSP 目录下生成 dist 目录,这便是开发项目的目录结构,包含了RT-Thread源码及BSP相关工程,不相关的BSP文件夹及libcpu都会被移除,并且可以随意拷贝此工程到任何目录下使用。

驱动接口开发,开发板,采用正点原子的MINI板 F103的:

1.GPIO--流水灯

第一步:IO口初始化函数: rt_pin_mode(LED0_PIN,PIN_MODE_OUTPUT); 注意第一个参数是引脚号,而不是对应哪个引脚,第二个参数为引脚模式,是输入的还是输出的,是上拉,下拉,推挽。

第二步:IO电平设置:rt_pin_write(LED0_PIN,PIN_HIGH);第一个参数是引脚号,而不是对应哪个引脚。第二个参数,电平是置高还是置低。

2.HEY--按键判断

扫描模式:

第一步,IO口初始化:rt_pin_mode(KEY0_PIN,PIN_MODE_INPUT_PULLUP);第一个参数是引脚号,而不是对应哪个引脚。第二个参数,输入为哪种方式:输入,上拉输入,下拉输入。

第二步,进行IO口电平读取:rt_pin_read(KEY0_PIN) == PIN_LOW 根据自己画的电路来判断就可以了

中断模式:

第一步,IO口初始化:rt_pin_mode(KEY0_PIN,PIN_MODE_INPUT_PULLUP);第一个参数是引脚号,而不是对应哪个引脚。第二个参数,输入为哪种方式:输入,上拉输入,下拉输入。

第二步,回调函数的定义:void irq_callback(void *args) 定义外部中断回调函数,并且带一个参数传入。

第三步,中断函数的配置:rt_pin_attach_irq(KEY0_PIN, PIN_IRQ_MODE_FALLING, irq_callback, (void *)KEY0_PIN);第一个参数为引脚号,第二个参数为中断模式:上升沿还是下降沿。第三个参数为回调函数调用。第四个参数为产生中断的引脚号。最近判断在回调函数里面进行判断。

经验分享 程序员 微信小程序 职场和发展