
FreeRTOS
相关FreeRTOS开发流程
小石头有大内涵
一名嵌入式界的小学生
展开
-
【FreeRTOS 消息队列】消息队列传递变量
消息队列创建及运行,参阅安富莱电子demostatic QueueHandle_t xQueue1 = NULL;static QueueHandle_t xQueue2 = NULL;typedef struct Msg{ uint8_t ucMessageID; uint16_t usData[2]; uint32_t ulData[2];}MSG_T;MSG_T g_tMsg; /* 定义一个结构体用于消息队列 */static void vTaskTaskUse原创 2021-03-08 23:14:47 · 1415 阅读 · 0 评论 -
【FreeRTOS 事件】任务通知事件
普通任务通知事件创建创建及运行,参阅安富莱电子demo#define BIT_0 (1 << 0)#define BIT_1 (1 << 1)static TaskHandle_t xHandleTaskUserIF = NULL;static TaskHandle_t xHandleTaskMsgPro = NULL;static void vTaskTaskUserIF(void *pvParameters){ uint8_t ucKeyCode; uint8原创 2021-03-07 22:46:54 · 330 阅读 · 0 评论 -
【FreeRTOS 信号量】互斥信号量
互斥信号量与二值信号量类似但是互斥信号量可以解决二值信号量出现的优先级翻转问题,解决办法就是优先级继承普通互斥信号量创建及运行,参阅安富莱电子demo/* 互斥信号量句柄 */static SemaphoreHandle_t xMutex = NULL;static void vTaskTaskUserIF(void *pvParameters){ while(1) { /* 参数说明:信号量句柄,等待信号量可用的最大等待时间 */ /* 互斥信号量,x原创 2021-03-07 21:27:44 · 530 阅读 · 0 评论 -
【FreeRTOS 信号量】二值信号量
普通二值信号量创建创建及运行,参阅安富莱电子demo1. 二值信号量/* 信号量句柄 */static SemaphoreHandle_t xSemaphore = NULL;static void vTaskTaskUserIF(void *pvParameters){ while(1) { vTaskDelay(20); /* 参数说明:信号量句柄 */ xSemaphoreGive(xSemaphore); //释放信号量API }}sta原创 2021-03-07 17:29:26 · 415 阅读 · 0 评论 -
【FreeRTOS 任务】任务创建及运行
普通任务创建及运行,参阅安富莱电子demo/*********************************************************************************************************** 函 数 名: vTaskTaskUserIF* 功能说明: 接口消息处理,这里用作LED闪烁 * 形 参: pvParameters 是在创建该任务时传递的形参* 返 回 值: 无* 优 先 级: 1 (数值越小优先级越低,这原创 2021-03-07 15:56:01 · 487 阅读 · 0 评论