你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

【经验分享】stm32RTOS创建任务

[复制链接]
STMCU小助手 发布时间:2022-5-22 22:00
前言
本篇文章带大家学习一下如何使用RTOS API函数创建任务。

一、cuebMX配置
具体配置

二、代码解析
1.系统创建的任务函数
下面我们来看看系统是如何创建一个任务的。

  1. osThreadId defaultTaskHandle;//任务函数句柄

  2. //StartDefaultTask:任务函数名字
  3. //defaultTask:名字
  4. //osPriorityNormal:任务优先级
  5. osThreadDef(defaultTask, StartDefaultTask, osPriorityNormal, 0, 128);
  6. defaultTaskHandle = osThreadCreate(osThread(defaultTask), NULL);

  7. //任务函数的格式
  8. void StartDefaultTask(void const * argument)
  9. {
  10.   /* USER CODE BEGIN 5 */

  11.   /* Infinite loop */
  12.   for(;;)
  13.   {

  14.   }
  15.   /* USER CODE END 5 */
  16. }
复制代码

2.函数任务优先级
RTOS中给我们定义了如下优先级,优先级的数值越大优先级越高。

  1. typedef enum  {
  2.   osPriorityIdle          = -3,          ///< priority: idle (lowest)
  3.   osPriorityLow           = -2,          ///< priority: low
  4.   osPriorityBelowNormal   = -1,          ///< priority: below normal
  5.   osPriorityNormal        =  0,          ///< priority: normal (default)
  6.   osPriorityAboveNormal   = +1,          ///< priority: above normal
  7.   osPriorityHigh          = +2,          ///< priority: high
  8.   osPriorityRealtime      = +3,          ///< priority: realtime (highest)
  9.   osPriorityError         =  0x84        ///< system cannot determine priority or thread has illegal priority
  10. } osPriority;
复制代码

3.自己创建任务函数
我们可以仿照系统给我们创建的函数,自己去创建任务函数。

  1. osThreadId DirveTaskHandle;

  2. void DriveTask(void const * argument);

  3. osThreadDef(DriveTaskName, DriveTask, osPriorityAboveNormal, 0, 128);
  4. DirveTaskHandle = osThreadCreate(osThread(DriveTaskName), NULL);

  5. void DriveTask(void const * argument)
  6. {  

  7.   for(;;)
  8.   {


  9.     osDelay(5);//调用延时才会释放资源
  10.   }
  11. }
复制代码

由此我们的任务函数就创建完成了,我们可以在任务函数中去调用我们自己写的函数,或者执行自己想要执行的程序。

总结
大家有什么问题的话,可以留言或者私信。


收藏 评论0 发布时间:2022-5-22 22:00

举报

0个回答

所属标签

相似技术帖

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版