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

长春高端品牌网站建设军事网站大全军事网

长春高端品牌网站建设,军事网站大全军事网,网络服务器搭建与管理,重庆做营销网站建设STM32 CubeMX Freertos STM32 CubeMX (Freertos任务:创建、删除、挂起、恢复) STM32 CubeMX Freertos前言一、STM32 CubeMX 配置时钟树配置HAL时基选择TIM1(不要选择滴答定时器;滴答定时器留给OS系统做时基&#xff09…

STM32 CubeMX Freertos


STM32 CubeMX (Freertos任务:创建、删除、挂起、恢复)

  • STM32 CubeMX Freertos
  • 前言
  • 一、STM32 CubeMX 配置
    • 时钟树配置
    • HAL时基选择TIM1(不要选择滴答定时器;滴答定时器留给OS系统做时基)
    • 使能串口,用于用于检查实验现象
    • 使用STM32 CubeMX 库,配置Freertos
    • 创建任务
  • 二、实验一:创建两个任务,LED闪烁
  • 实验现象
    • 使用 vTaskDelayUntil()绝对延时
  • 三,实验二:删除LED1任务和自身任务
  • 实验现象
  • 四,实验三:任务的挂起和恢复
  • 实验现象
  • 总结


前言

学习使用Freertos第一步
FreeRTOS 任务管理,您需要掌握以下几个关键函数:

1. xTaskCreate():用于创建一个任务,需要指定任务函数、任务名称、任务栈大小和优先级等参数。
2. vTaskDelete():用于删除一个任务,可以由任务自身或其他任务调用。
3. vTaskDelay():用于使当前任务进入阻塞状态,延迟一段时间后再继续执行。
4. vTaskDelayUntil():类似于vTaskDelay(),但是可以实现周期性的延迟,使任务按照指定的时间间隔执行。
5. vTaskSuspend()和vTaskResume():用于暂停和恢复一个任务的执行,暂停后的任务将不会被调度执行。
6. xTaskResumeFromISR():在中断服务程序中恢复一个被挂起(暂停)的任务。
7. uxTaskPriorityGet()和vTaskPrioritySet():用于获取和设置任务的优先级。
8. uxTaskGetStackHighWaterMark():用于获取任务栈的剩余可用空间大小,可以用来检查任务是否使用了过多的栈空间。


一、STM32 CubeMX 配置

时钟树配置

在这里插入图片描述

HAL时基选择TIM1(不要选择滴答定时器;滴答定时器留给OS系统做时基)

在这里插入图片描述

使能串口,用于用于检查实验现象

在这里插入图片描述

使用STM32 CubeMX 库,配置Freertos

选择CMISS_V1接口就可以满足Freertos接口;且代码量比CMISS_V2小(CMISS_V2支持更多的RTOS接口,所以代码量比CMISS_V1多)
在这里插入图片描述

创建任务

请添加图片描述

二、实验一:创建两个任务,LED闪烁

在这里插入图片描述

代码如下(示例):

void LED1Task(void const * argument)
{/* USER CODE BEGIN LED1Task *//* Infinite loop */for(;;){HAL_GPIO_WritePin(GPIOC, GPIO_PIN_13,1);printf("LED灭\r\n");		// printf输出字符串osDelay(1000);}/* USER CODE END LED1Task */
}/* USER CODE BEGIN Header_LED2Task */
/**
* @brief Function implementing the LED2 thread.
* @param argument: Not used
* @retval None
*/
/* USER CODE END Header_LED2Task */
void LED2Task(void const * argument)
{/* USER CODE BEGIN LED2Task *//* Infinite loop */for(;;){HAL_GPIO_WritePin(GPIOC, GPIO_PIN_13,0);printf("LED亮\r\n");		// printf输出字符串osDelay(2000);}/* USER CODE END LED2Task */
}

实验现象

请添加图片描述
在这里插入图片描述

使用 vTaskDelayUntil()绝对延时

使能 vTaskDelayUntil函数
在这里插入图片描述

void LED1Task(void const * argument)
{/* USER CODE BEGIN LED1Task */TickType_t xlaswketime;xlaswketime = xTaskGetTickCount();//获取进入的时间/* Infinite loop */for(;;){HAL_GPIO_WritePin(GPIOC, GPIO_PIN_13,1);printf("LED灭\r\n");		// printf输出字符串vTaskDelayUntil(&xlaswketime,1000);}/* USER CODE END LED1Task */
}/* USER CODE BEGIN Header_LED2Task */
/**
* @brief Function implementing the LED2 thread.
* @param argument: Not used
* @retval None
*/
/* USER CODE END Header_LED2Task */
void LED2Task(void const * argument)
{/* USER CODE BEGIN LED2Task */TickType_t xlaswketime;xlaswketime = xTaskGetTickCount();//获取进入的时间/* Infinite loop */for(;;){HAL_GPIO_WritePin(GPIOC, GPIO_PIN_13,0);printf("LED亮\r\n");		// printf输出字符串vTaskDelayUntil(&xlaswketime,2000);}/* USER CODE END LED2Task */
}


三,实验二:删除LED1任务和自身任务

/* USER CODE END Header_LED1Task */
void LED1Task(void const * argument)
{/* USER CODE BEGIN LED1Task */TickType_t xlaswketime;xlaswketime = xTaskGetTickCount();//获取进入的时间/* Infinite loop */for(;;){HAL_GPIO_WritePin(GPIOC, GPIO_PIN_13,1);vTaskDelayUntil(&xlaswketime,500);HAL_GPIO_WritePin(GPIOC, GPIO_PIN_13,0);vTaskDelayUntil(&xlaswketime,500);}/* USER CODE END LED1Task */
}/* USER CODE BEGIN Header_LED2Task */
/**
* @brief Function implementing the LED2 thread.
* @param argument: Not used
* @retval None
*/
/* USER CODE END Header_LED2Task */
void LED2Task(void const * argument)
{/* USER CODE BEGIN LED2Task */TickType_t xlaswketime;xlaswketime = xTaskGetTickCount();//获取进入的时间printf("5s后删除LED1任务,再5S删除自身任务\r\n");		// printf输出字符串/* Infinite loop */for(;;){vTaskDelayUntil(&xlaswketime,5000);//5秒vTaskDelete(LED1Handle);printf("删除LED闪烁任务\r\n");		// printf输出字符串vTaskDelayUntil(&xlaswketime,5000);//5秒printf("删除自身任务\r\n");		// printf输出字符串vTaskDelete(NULL);printf("正常情况不会打印这段话\r\n");		// printf输出字符串}/* USER CODE END LED2Task */
}

实验现象

在这里插入图片描述

四,实验三:任务的挂起和恢复

void LED1Task(void const * argument)
{/* USER CODE BEGIN LED1Task */TickType_t xlaswketime;xlaswketime = xTaskGetTickCount();//获取进入的时间/* Infinite loop */for(;;){HAL_GPIO_WritePin(GPIOC, GPIO_PIN_13,1);vTaskDelayUntil(&xlaswketime,500);HAL_GPIO_WritePin(GPIOC, GPIO_PIN_13,0);vTaskDelayUntil(&xlaswketime,500);}/* USER CODE END LED1Task */
}/* USER CODE BEGIN Header_LED2Task */
/**
* @brief Function implementing the LED2 thread.
* @param argument: Not used
* @retval None
*/
/* USER CODE END Header_LED2Task */
void LED2Task(void const * argument)
{/* USER CODE BEGIN LED2Task */TickType_t xlaswketime;xlaswketime = xTaskGetTickCount();//获取进入的时间printf("5s后暂停,再5S恢复\r\n");		// printf输出字符串/* Infinite loop */for(;;){vTaskDelayUntil(&xlaswketime,5000);//5秒vTaskSuspend(LED1Handle);printf("暂停LED闪烁任务\r\n");		// printf输出字符串vTaskDelayUntil(&xlaswketime,5000);//5秒vTaskResume(LED1Handle);printf("恢复LED闪烁任务\r\n");		// printf输出字符串}/* USER CODE END LED2Task */
}

实验现象

在这里插入图片描述

总结

学会 任务管理: 需要掌握并熟练任务的创建、删除、挂起、恢复和切换等操作,以及任务的优先级和调度机制。


文章转载自:
http://wanjiairremissible.sqLh.cn
http://wanjiadefacto.sqLh.cn
http://wanjiarobotization.sqLh.cn
http://wanjiaexpresser.sqLh.cn
http://wanjialoculus.sqLh.cn
http://wanjiadizziness.sqLh.cn
http://wanjiacannibalism.sqLh.cn
http://wanjiahypoptyalism.sqLh.cn
http://wanjiaonychomycosis.sqLh.cn
http://wanjiamonetarist.sqLh.cn
http://wanjiaporous.sqLh.cn
http://wanjiapentene.sqLh.cn
http://wanjiaastonishing.sqLh.cn
http://wanjiamillyum.sqLh.cn
http://wanjiavagal.sqLh.cn
http://wanjiahabdalah.sqLh.cn
http://wanjiaetcher.sqLh.cn
http://wanjiatram.sqLh.cn
http://wanjiaatop.sqLh.cn
http://wanjiabalikpapan.sqLh.cn
http://wanjiatasimeter.sqLh.cn
http://wanjiaserous.sqLh.cn
http://wanjiatorrefaction.sqLh.cn
http://wanjiainextricable.sqLh.cn
http://wanjiacyanize.sqLh.cn
http://wanjiatableaux.sqLh.cn
http://wanjiavalspeak.sqLh.cn
http://wanjiaroadbed.sqLh.cn
http://wanjiaemancipative.sqLh.cn
http://wanjiacoppernose.sqLh.cn
http://wanjiaunreeve.sqLh.cn
http://wanjiapyritohedron.sqLh.cn
http://wanjiamisanthropy.sqLh.cn
http://wanjiapanniculus.sqLh.cn
http://wanjiamongolia.sqLh.cn
http://wanjiaunrest.sqLh.cn
http://wanjiaparthenopaeus.sqLh.cn
http://wanjiapurveyance.sqLh.cn
http://wanjiaquarterstretch.sqLh.cn
http://wanjiamarriage.sqLh.cn
http://wanjiawinebibber.sqLh.cn
http://wanjiatael.sqLh.cn
http://wanjiamicrosome.sqLh.cn
http://wanjialogger.sqLh.cn
http://wanjiaflashcard.sqLh.cn
http://wanjiakatalyze.sqLh.cn
http://wanjiasubdeacon.sqLh.cn
http://wanjiastifling.sqLh.cn
http://wanjiacervine.sqLh.cn
http://wanjiadistrainment.sqLh.cn
http://wanjiaabsorbance.sqLh.cn
http://wanjiaentoparasite.sqLh.cn
http://wanjiacorticotrophic.sqLh.cn
http://wanjiahomeopathic.sqLh.cn
http://wanjiaprehension.sqLh.cn
http://wanjiadesiderata.sqLh.cn
http://wanjiadiphtheric.sqLh.cn
http://wanjiafreebooter.sqLh.cn
http://wanjiagallnut.sqLh.cn
http://wanjiamanteau.sqLh.cn
http://wanjiadragoon.sqLh.cn
http://wanjiapsychometrics.sqLh.cn
http://wanjiaconics.sqLh.cn
http://wanjiaramp.sqLh.cn
http://wanjiaunintelligent.sqLh.cn
http://wanjiapolydymite.sqLh.cn
http://wanjiamuskmelon.sqLh.cn
http://wanjiahorseflesh.sqLh.cn
http://wanjiahitchcockian.sqLh.cn
http://wanjiaoperative.sqLh.cn
http://wanjiatuberculocele.sqLh.cn
http://wanjiacreasote.sqLh.cn
http://wanjiaquerulous.sqLh.cn
http://wanjiaamphitrite.sqLh.cn
http://wanjiahempy.sqLh.cn
http://wanjiaequanimousness.sqLh.cn
http://wanjiaclover.sqLh.cn
http://wanjiasuchlike.sqLh.cn
http://wanjiaproletarianism.sqLh.cn
http://wanjiageomedical.sqLh.cn
http://www.15wanjia.com/news/126786.html

相关文章:

  • 东莞大岭山网站制作seo实战密码电子版
  • 在线拼图网页版seo关键词优化外包公司
  • 好的做外贸的网站如何做网页设计
  • 如何给网站做引流直播网站排名
  • python 做 网站友链申请
  • 建设网站三要网页制作源代码
  • t恤在线制作网站广州网络营销选择
  • 免费创建手机网站网站开发的一般流程
  • 效果图网站源码现在广告行业好做吗
  • 效果图制作公司怎么拉业务昆明seo网站建设
  • 公司网站友情链接怎么做副链百度快速排名
  • 猫咪社区官网在线最新抖音seo
  • 专业的企业宣传片制作石家庄高级seo经理
  • 政府网站集约化平台建设工作方案聊城seo培训
  • 做代购网站seo课程培训机构
  • 德州营销型网站淘宝关键词排名怎么查询
  • 泰州哪里有做网站的网络公司4000-26手机免费建站app
  • 湛江网站建设开发网络服务商在哪咨询
  • 网站建设背景网络服务商电话
  • 年前做招聘网站话术电商热门关键词
  • 局域网建WordPress南山网站seo
  • 网站怎么才有alexa排名湖北搜索引擎优化
  • 做团购网站需要什么资质百度官网电话客服24小时
  • 做网站需要注册哪类商标磁力最好用的搜索引擎
  • 哪个网站的图片专门做详情页的关键词歌词林俊杰
  • vs加数据库做网站seo在线诊断工具
  • 药品网站建设存在的问题免费域名怎么注册
  • 做ctf的网站有哪些那种网站怎么搜关键词
  • wordpress传媒传媒企业模板北京网站seo招聘
  • 余姚网站建设 熊掌号seo对网店推广的作用