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);第一个参数为引脚号,第二个参数为中断模式:上升沿还是下降沿。第三个参数为回调函数调用。第四个参数为产生中断的引脚号。最近判断在回调函数里面进行判断。
