RT-thread Nano移植
作者:互联网
目录
一、移植准备
STM32CubeMx 添加RT-Thread操作系统组件:
首先要获取 RT-Thread NANO软件包:https://www.rt-thread.org/download/cube/RealThread.RT-Thread.pdsc
二、打开STM32CubeMx创建项目
- Help -> Manage embedded software packages
2.添加NANO软件包
3.添加NANO软件包链接
4.添加software packs
等待下载完成:
安装完成,点击close回到主界面新建项目:
5.创建工程
RCC配置:
SYS配置:
时钟树配置:
选择组件:
选择RT-Thread组件,OK:
将选择的模块进行勾选:
NVIC配置:
配置GPIO引脚点灯
配置串口:
生成代码:
三、编写代码
LED1每0.5s亮一次,LED2每1s亮一次
使用keil打开新建的项目,在Application/User文件夹,新建app_rt_thread.c文件
添加代码:
#include "rtthread.h"
#include "main.h"
#include "stdio.h"
struct rt_thread led0_thread;
struct rt_thread led1_thread;
rt_uint8_t rt_led0_thread_stack[128];
rt_uint8_t rt_led1_thread_stack[128];
void led0_task_entry(void *parameter);
void led1_task_entry(void *parameter);
//初始化线程函数
void MX_RT_Thread_Init(void)
{
//初始化LED线程
rt_thread_init(&led0_thread,"led0",led0_task_entry,RT_NULL,&rt_led0_thread_stack[0],sizeof(rt_led0_thread_stack),3,20);
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(&led0_thread);
rt_thread_startup(&led1_thread);
}
//主任务
void MX_RT_Thread_Process(void)
{
printf("Hello,this is WOOZI9600L!!!");
rt_thread_delay(2000);
}
//LED0任务
void led0_task_entry(void *parameter)
{
while(1)
{
HAL_GPIO_WritePin(GPIOC,GPIO_PIN_14, GPIO_PIN_RESET);
rt_thread_delay(500);
HAL_GPIO_WritePin(GPIOC,GPIO_PIN_14, GPIO_PIN_SET);
rt_thread_delay(500);
}
}
//LED1任务
void led1_task_entry(void *parameter)
{
while(1)
{
HAL_GPIO_WritePin(GPIOC,GPIO_PIN_15, GPIO_PIN_RESET);
rt_thread_delay(500);
HAL_GPIO_WritePin(GPIOC,GPIO_PIN_15, GPIO_PIN_SET);
rt_thread_delay(2500);
}
}
修改board.c的77行:
将rtconfig.h的145行取消注释:
main.c中添加:
extern void MX_RT_Thread_Init(void);
extern void MX_RT_Thread_Process(void);
在主函数里添加:
MX_RT_Thread_Init();
HAL_GPIO_TogglePin(GPIOC,GPIO_PIN_14);
rt_thread_mdelay(500);
四、结果
编译烧录,结果
五、总结
勉强移植成功,还有待改善。
参考
https://blog.csdn.net/qq_36075612/article/details/107309750
标签:RT,rt,Nano,thread,void,led1,GPIO 来源: https://blog.csdn.net/weixin_46129506/article/details/121937801