RT-thread Nano在stm32f103上的移植(STM32CubeMX)

源码:https://github.com/longl118/RT-Thread

一、CubeMX添加RT-Thread操作系统组件

在这里插入图片描述

二、CubeMX新建工程

  • 新建项目

在这里插入图片描述

  • 进去选择STM32F103C8
  • 配置SYS:

在这里插入图片描述

  • 配置RT-Thread(可能会发现找不到,那我们先让能够找得到)
  • 按以下图示配置:

在这里插入图片描述

在这里插入图片描述

  • 终于可以配置RT-Thread

在这里插入图片描述

  • 配置NVIC:

在这里插入图片描述

  • 配置使USART1串口使能,使引脚PA3、PA4用于点亮LED灯:

在这里插入图片描述

  • 补个RCC配置

在这里插入图片描述

  • 时钟树配置

在这里插入图片描述

  • 配置项目

在这里插入图片描述
在这里插入图片描述

  • OpenProject 在Keil中打开

三、Keil里的操作

  • 新建app_rt_thread.c文件

在这里插入图片描述
在这里插入图片描述

  • 写入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);
	}
}
  • 修改board.c内的串口为USART1:

在这里插入图片描述

  • 取消rtconfig.h中注释:

在这里插入图片描述

  • main中添加
extern void MX_RT_Thread_Init(void);
extern void MX_RT_Thread_Process(void);

在这里插入图片描述

  • while循环中添加新线程:
HAL_GPIO_TogglePin(GPIOA,GPIO_PIN_4);
		rt_thread_delay(1000);
HAL_GPIO_TogglePin(GPIOA,GPIO_PIN_3);
		rt_thread_delay(1000);

四、运行结果

  • 烧录后,看结果

请添加图片描述

小小的总结

  • 仍旧需要注意的是烧录时Boot0要置1,查看结果时Boot0要置0,并Reset。
  • RT-thread的移植相较于uCOSII的移植来说要简单很多了,按步骤,没问题的。

参考文献

  1. RT-thread Nano移植:https://blog.csdn.net/qq_46359931/article/details/121950851
  2. 基于 STM32CubeMX 添加 RT-Thread 操作系统组件(一)- 详细介绍操作步骤:
    https://blog.csdn.net/qq_36075612/article/details/107309750
  3. STM32F103C8移植RT_Thread:https://blog.csdn.net/weixin_56102526/article/details/121952050

猜你喜欢

转载自blog.csdn.net/YouthBlood9/article/details/122248262