一、CubeMX添加RT-Thread操作系统组件
1、获取RT-Thread Nano软件包
https://www.rt-thread.org/download/cube/RealThread.RT-Thread.pdsc
2、安装RT-Thread
- 勾选
- 下载中
- 添加software packs
二、工程创建
- 选择芯片
- 选择Nano组件
- 配置Nano
- 配置RCC
- 配置SYS
- 选择引脚PA3,PA4(OutPut)
- 配置串口中断
- 中断异常处理
- 时钟树配置
- 项目配置
- 打开项目
三、代码及运行
- 代码添加
在Application/USER文件夹下新建app_rt_thread.c文件,并添加以下代码
#include "rtthread.h"
#include "main.h"
#include "stdio.h"
struct rt_thread led1_thread;
rt_uint8_t rt_led1_thread_stack[128];
void led1_task_entry(void *parameter);
//初始化线程函数
void MX_RT_Thread_Init(void)
{
//初始化LED1线程
rt_thread_init(&led1_thread,"led1",led1_task_entry,RT_NULL,&rt_led1_thread_stack[0],sizeof(rt_led1_thread_stack),3,20);
//开启线程调度
rt_thread_startup(&led1_thread);
}
//主任务
void MX_RT_Thread_Process(void)
{
printf("Hello RT_Thread!!!");
rt_thread_delay(2000);
}
//LED1任务
void led1_task_entry(void *parameter)
{
while(1)
{
HAL_GPIO_WritePin(GPIOA,GPIO_PIN_3, GPIO_PIN_RESET);
rt_thread_delay(500);
HAL_GPIO_WritePin(GPIOA,GPIO_PIN_3, GPIO_PIN_SET);
rt_thread_delay(500);
}
}
main.c中添加:
/* Private typedef -----------------------------------------------------------*/
/* USER CODE BEGIN PTD */
extern void MX_RT_Thread_Init(void);
extern void MX_RT_Thread_Process(void);
/* USER CODE END PTD */
while循环添加
HAL_GPIO_TogglePin(GPIOB,GPIO_PIN_10);
rt_thread_delay(1000);
- 代码修改
Middlewares/RT-Thread/RTOS/kernel文件夹下的board.c文件,修改串口USART2为USART1:
Application/User/Core里app_rt_thread.c下的rtconfig.h
- 运行及结果
四、总结
成功移植RT-thread Nano