STM32CubeMX新建工程
首先添加 RT-Thread 操作系统组件,参考:链接 添加成功后可看到:
之后新建工程项目: 选择芯片: 配置SYS: 配置RT-Thread: 配置NVIC: USART1串口使能,使引脚PA3、PA4用于点亮LED灯: 配置项目: 生成代码并打开: 新建.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)
{
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);
}
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.c中添加:
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);
之后烧写调试:
参考
https://blog.csdn.net/qq_45659777/article/details/121891583?spm=1001.2014.3001.5501
https://blog.csdn.net/qq_36075612/article/details/107309750
|