【FreeRTOS】常用API接口
为方便快速检索,这里只留下对应的接口名和功能注释,具体传参和使用方法拿函数名百度搜。
任务相关
xTaskCreate() //创建任务
vTaskDelete( NULL ); //删除任务,传入NULL为删除当前的任务
vTaskStartScheduler();//启动任务调度器
vTaskPriofitySet();//改变任务优先级
uxTaskPriorityGet();//查询任务优先级
队列相关
xQueueCreate()//创建队列
xQueueSendToBack()//发送数据到队列尾部
xQueueSendToFront()//发送数据到队列头部
xQueueSendToBackFromISR()//中断中发送数据到队列尾部
xQueueSendToFrontFromISR()//中断中发送数据到队列头部
xQueueReceive()//读取队列首数据并删除
xQueuePeek()//读取队列首数据但不删除
xQueueReceiveFromISR()//中断中读取队列首数据并删除
uxQueueMessagesWaiting()//查询队列中当前有效数据单元个数
uxQueueMessagesWaitingFromISR()//中断中查询队列中当前有效数据单元个数
信号量相关
vSemaphoreCreateBinary()//创建二值信号量
xSemaphoreCreateCounting()//创建计数信号量
xSemaphoreTake()//获取(带走、接收)信号量,中断不可用
xSemaphoreGive()//释放(给出)信号量
xSemaphoreGiveFromISR()//中断中释放信号量//不能释放互斥信号量
资源管理相关
taskENTER_CRITICAL()与 taskEXIT_CRITICAL()//基本临界区
vTaskSuspendAll() //挂起调度器
xTaskResumeAll()//恢复调度器
xSemaphoreCreateMutex()//创建互斥量
xSemaphoreTake()/试图获得互斥量
xSemaphoreGive()//归还信号量
空闲任务回调(钩子函数)
vApplicationIdleHook()
延时(带阻塞性质)
vTaskDelay()//相对延时
vTaskDelayUntil()//绝对延时
taskYIELD()
taskYIELD()//*通知调度器立即进行任务切换
通知调度器立即进行任务切换,不必等到当前任务的时间片耗尽。某个任务调用 taskYIELD()等效于其自愿放弃运行态。