一、RT-Thread
参考官网RT-Thread Nano 简介
二、CubeMX移植
参考官方文档基于 CubeMX 移植 RT-Thread Nano 注意:1.需要初始化USART1且需要修改USART2位USART1 2.取消注释#include "finsh_config.h"的注释
三、简单demo
创建两个线程 线程一的灯500ms闪烁一次 线程二的灯1000ms闪烁一次 其中main函数在这里也是其中的一个线程任务,在main函数里面再新建一个线程即可。 新建线程`
struct rt_thread led_thread;
rt_uint8_t rt_led_thread_stack[128];
void led_task_entry(void *parameter);
void MX_RT_Thread_Init(void)
{
rt_thread_init(&led_thread,"led",led_task_entry,RT_NULL,&rt_led_thread_stack[0],sizeof(rt_led_thread_stack),3,20);
rt_thread_startup(&led_thread);
}
void led_task_entry(void *parameter)
{
while(1)
{
HAL_GPIO_TogglePin(GPIOC,GPIO_PIN_13);
rt_thread_delay(1000);
}
}
在main函数的while循环前创建线程
MX_RT_Thread_Init();
while (1)
{
HAL_GPIO_TogglePin(GPIOC,GPIO_PIN_14);
rt_thread_mdelay(500);
}
效果
四、总结
RT-Thread相比较UCOS方便不少
五、参考
https://blog.csdn.net/qq_36075612/article/details/107309750
|