当前位置: 首页 > news >正文

基于野火stm32f407实现多任务动态创建

1.包含FreeRTOS相关头文件和板载外设头文件

2.创建任务句柄

3.进行函数声明

4.在main.c中编写代码如下

int main(void)
{
//创建信息返回值
BaseType_t xReturn = pdPASS;

//板载外设初始化
BSP_Init();

printf("\r\n 这是动态创建多任务的实验 \r\n");

//创建APPTaskCreate任务
xReturn = xTaskCreate((TaskFunction_t)APPTaskCreate,
(const char*)"APPTaskCreate",
(uint16_t)128,
(void *)NULL,
(UBaseType_t)1,
(TaskHandle_t *)&APPTaskHandle_t);
if(pdPASS==xReturn)
vTaskStartScheduler();
else
return -1;

while(1);
}


static void APPTaskCreate(void)
{
//创建返回信息
BaseType_t xReturn = pdPASS;

//进入临界区
taskENTER_CRITICAL();

//创建LED1Task任务
xReturn = xTaskCreate((TaskFunction_t)LED1Task,
(const char *)"LED1Task",
(uint16_t)512,
(void *)NULL,
(UBaseType_t)2,
(TaskHandle_t *)&LED1TaskHandle_t);

if(pdPASS==xReturn)
printf("\r\n LED1任务创建成功 \r\n");

//创建LED2Task任务
xReturn = xTaskCreate((TaskFunction_t)LED2Task,
(const char *)"LED2Task",
(uint16_t)512,
(void *)NULL,
(UBaseType_t)3,
(TaskHandle_t *)&LED2TaskHandle_t);
if(pdPASS==xReturn)
printf("\r\n LED2任务创建成功 \r\n");

//删除任务
vTaskDelete(APPTaskHandle_t);

//退出临界区
taskEXIT_CRITICAL();

}

static void LED1Task(void * params)
{
while(1)
{
LED1_ON;
vTaskDelay(500);
printf("LED1_Task Running,LED1_ON\r\n");

LED1_OFF;
vTaskDelay(500);
printf("LED1_Task Running,LED1_OFF\r\n");
}
}

static void LED2Task(void * params)
{
while(1)
{
LED2_ON;
vTaskDelay(500);
printf("LED2_Task Running,LED2_ON\r\n");

LED2_OFF;
vTaskDelay(500);
printf("LED2_Task Running,LED2_OFF\r\n");
}
}


static void BSP_Init(void)
{
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_4);

LED_GPIO_Config();

Debug_USART_Config();
}

5.编译代码成功如图所示

http://www.dtcms.com/a/610460.html

相关文章:

  • C语言--详解--指针--下
  • Oracle查看正在rebuild online的索引
  • Odoo 19版 odoo.conf 配置参数概览
  • 做资源网站需要什么四川公共资源交易信息网
  • 企业网站营销典型案例wordpress作者排行
  • Bootstrap5 进度条
  • 鸿蒙Cordova插件架构与OnsenUI组件适配机制深度解析
  • 前端性能问题分析
  • wdcp怎么上传做好的网站俄罗斯外贸网站
  • 网站设计师工资一般多少北京海淀区网络科技有限公司
  • c++错误<RC Condition =“‘%(ResourceCompile.ExcludedFromBuild)‘!=‘true‘“
  • 《中医基础理论》- 2.哲学基础之藏象学说-肝系统详解
  • 快速建立平台网站开发网站模板设计如何将网站转成小程序
  • Pydantic Output Parser in LangChain
  • 临海企业网站建设公司青岛网站制作套餐
  • 逻辑回归:从基础理论到实践应用的全方位解读
  • ChatGPT回答用AI怎么怎么赚钱
  • 修车店怎么做网站深圳电子商务网站建设公司
  • 自己的网站打不开网页设计与制作教程杨选辉ppt
  • MySQL Join 的原理与优化实践
  • iBM(i2)绘制资金链路(五)
  • Mybatis操作数据库(进阶)
  • 卡索(CASO)汽车调查:我们缺数据,但更缺的是对数据的“解读能力”
  • VsCode通过SSH远程连接云服务器遇到主机密钥变更问题
  • UE5.7:3D 内容生产的新范式
  • 横沥网站制作招聘外卖小程序源码
  • 网站建设 思路互联网工资一般有多少
  • 智能家居,需要的是“主控智能体”而不是“主控节点”
  • 数据科学每日总结--Day19--数据库
  • 公司做网站一般微信搜一搜seo优化