FreeRTOS学习笔记——任务延时

本文介绍了在FreeRTOS中,任务如何通过vTaskDelay()函数进入阻塞态进行延时,详细讲解了函数内部机制,包括调度器唤醒、处理SysTick中断、任务切换等过程。分析建议结合SysTick中断一起理解。
摘要由CSDN通过智能技术生成

主机环境:Windows

开发环境:MDK4.7.2

FreeRTOS版本:FreeRTOS8.1.2

目标环境:STM32F030C8T6

FreeRTOS的任务有以下几种状态:运行态、就绪态、阻塞态、挂起态,如下图

其中如果任务调用了延时函数就会进入阻塞态,延时函数有两个:vTaskDelay()和vTaskDelayUtil()前者是相对延时,后者是绝对延时,可以查看Using the FreeRTOS Real Time Kernel - a Practical Guide文档来帮助理解。先来了解一下vTaskDelay()函数吧,代码如下

void vTaskDelay( const TickType_t xTicksToDelay )
{
	TickType_t xTimeToWake;
	BaseType_t xAlreadyYielded =
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值