开放原子训练营(第三季)RT-Thread Nano学习营北京站学习心得
文章目录
- 开放原子训练营(第三季)RT-Thread Nano学习营北京站学习心得
- RT-Thread简介
- 会议议程介绍
- RT-Thread Nano介绍
- RT-Thread Nano实操训练
- 总结
RT-Thread简介
RT-Thread 诞生于2006年,是国内以开源中立、 社区化发展起来的一款高可靠实时操作系统 ,由睿赛德科技负责开发维护和运营 。因其十五年的沉淀积累, 专业化的运营推广,其高可靠性、安全、高可伸缩性和中间组件丰富易用等特性极大地满足了市场需求。目前已经成为市面上装机量最大(超20亿台)、开发者数量最多(超15万)软硬件生态最好的操作系统之一,被广泛应用于航空、国防军工、电力、轨道交通、车载、工业自动化、消费电子等众多行业领域。
其官网地址为:
https://www.rt-thread.org/
会议议程介绍
整个学习营的流程大致分为了RT-Thread Nano及其厂商的介绍以及案例实操这两个部分,同时也有一些专家在技术方面进行答疑解惑,总体来说还是很有意思也很有意义的,会议流程如下:
当天早晨九点左右,我赶到了学习营所在的酒店,一进门就看到导航指引:
会议室的场景如下所示:
RT-Thread Nano介绍
按照议程,首先由相关技术人员介绍了RT-Thread Nano的生态、功能特点、各种组件、应用案例等等,我印象比较深刻的是RT-Thread Nano的多线程运行:
RT-Thread Nano实操训练
在介绍完RT-Thread Nano的基本内容和知识之后,技术专家又指导我们使用STM32F411这个开发板进行实操和体验,总共讲解了LED灯闪烁、按键、多线程问题、串口读取、Mosre码这五个小案例。
STM32F411开发板如下所示:
LED灯闪烁的代码如下所示:
/* defined the LED0 pin: PF9 */
#define LED0_PIN GET_PIN(F, 9)
int main(void)
{
/* set LED0 pin mode to output */
rt_pin_mode(LED0_PIN, PIN_MODE_OUTPUT);
while (1)
{
rt_pin_write(LED0_PIN, PIN_HIGH);
rt_thread_mdelay(500);//延时500ms
rt_pin_write(LED0_PIN, PIN_LOW);
rt_thread_mdelay(500);//延时500ms
}
}
Morse码的主要代码如下所示:
#include <rtthread.h>
#include <rtdevice.h>
#include <board.h>
#include <morse.h>
#include "drv_common.h"
#include "shell.h"
#define USER_KEY GET_PIN(D, 10) // GET_PIN(H,4)
void irq_callback()
{
morse_input(!rt_pin_read(USER_KEY));
}
int morse_key_example(void)
{
rt_pin_mode(USER_KEY, PIN_MODE_INPUT_PULLUP);
rt_pin_attach_irq(USER_KEY, PIN_IRQ_MODE_RISING_FALLING, irq_callback, RT_NULL);
rt_pin_irq_enable(USER_KEY, PIN_IRQ_ENABLE);
return 0;
}
INIT_APP_EXPORT(morse_key_example);
虽然做了不少案例的体验,但是有的没有来得急记录拍照。LED灯闪烁的代码运行之后的结果如下所示:
总结
总而言之,我认为这一天的活动很有收获,我了解到了RT-Thread的生态及其有关的知识以及应用场景和案例,此外还学习到了一些RT-Thread Studio以及STM32F411开发板的基本操作和项目运作流程。