一、CubeMX创建项目
1.添加RT-Thread操作系统组件
获取RT-Thread Nano软件包链接:
https://www.rt-thread.org/download/cube/RealThread.RT-Thread.pdsc
打开CubeMX:
2.配置项目
开发板选择STM32F103C8T6
设置引脚PA3,PA4为GPIO_Output
,用来点亮LED
设置SYS:
设置NVIC:
配置好了之后下载项目
二、创建任务
在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);
}
}
找到Middlewares/RT-Thread/RTOS/kernel文件夹下的board.c文件,修改串口USART2为USART1。
取消注释#include "finsh_config.h"
在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 */
main函数中while添加一个新线程:
HAL_GPIO_TogglePin(GPIOA,GPIO_PIN_4);
rt_thread_delay(1000);
HAL_GPIO_TogglePin(GPIOA,GPIO_PIN_3);