STM32 FreeRTOS的osThreadDef创建任务

阅读: 评论:0

STM32 FreeRTOS的osThreadDef创建任务

STM32 FreeRTOS的osThreadDef创建任务

一、osThreadDef是一个宏定义

#define osThreadDef(name, thread, priority, instances, stacksz)  
const osThreadDef_t os_thread_def_##name =  { #name, (thread), (priority), (instances), (stacksz)  }

所以

osThreadDef(Display, DisLCD_Task,osPriorityNormal, 0, 128);
//相当于
const   osThreadDef_t   os_thread_def_Display = { "Display", (DisLCD_Task), (osPriorityNormal), (0), (128)  }

相当于定义了一个 os_thread_def_Display常量,并且赋值。
宏定义中,##的作用就是把2个宏参数连接为1个数,或实现字符串的连接
#的作用就是将#后面的宏参数进行字符串的操作,也就是将#后面的参数两边加上一对双引号使其成为字符串

osThreadDef_t 是一个结构体定义


以上相于当定义了一个结构体变量os_thread_def_Display

二、osThreadCreate创建任务

DisplayLCDHandle = osThreadCreate(osThread(Display), NULL);

参数osThread(Display)也是一个宏定义

相当于
DisplayLCDHandle = osThreadCreate(os_thread_def_Display, NULL);

其中优先级还要经过计算才得到


总觉得这样定义优先级有点麻烦,如果想直接用数字定义优先级,可以通过修改以下2处实现


本文发布于:2024-01-31 06:17:03,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170665302626137.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:FreeRTOS   osThreadDef
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23