![](https://img-blog.csdnimg.cn/25522612067a42b4ba9b989aa907a299.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Free RTOS入门到精通-软硬件天花板
文章平均质量分 53
Free RTOS入门到精通-软硬件天花板,技术分享如有喜欢一起交流进步。
广州FG大鹏
软硬件半桶水
展开
-
Free RTOS-15消息缓冲区2
(void *)tx_buf, // 发送数据-的指针。xBytesSent = xMessageBufferSend(MessageBufferHandle, // 发送数据句柄。(void *)rx_buf, // 发送数据-的指针。xTaskCreate(vTaskCode0, // 任务函数。4096, // 分配内存。void vTaskCode0(void *pvParam) // 任务。void vTaskCode1(void *pvParam) // 任务。原创 2023-07-04 21:18:25 · 93 阅读 · 0 评论 -
Free RTOS-15消息缓冲区1
(void *)tx_buf, // 发送数据-的指针。xBytesSent = xMessageBufferSend(MessageBufferHandle, // 发送数据句柄。(void *)rx_buf, // 发送数据-的指针。xTaskCreate(vTaskCode0, // 任务函数。4096, // 分配内存。void vTaskCode0(void *pvParam) // 任务。void vTaskCode1(void *pvParam) // 任务。原创 2023-07-04 21:05:43 · 115 阅读 · 0 评论 -
Free RTOS-14流缓冲区2查看缓冲区空间
(void *)tx_buf, // 发送数据-的指针。(void *)rx_buf, // 发送数据-的指针。3, // 任务优先级。xTaskCreate(vTaskCode0, // 任务函数。4096, // 分配内存。void vTaskCode0(void *pvParam) // 任务。void vTaskCode1(void *pvParam) // 任务。void vTaskCode2(void *pvParam) // 任务。原创 2023-07-04 20:41:26 · 174 阅读 · 0 评论 -
Free RTOS-14流缓冲区1
(void *)tx_buf, // 发送数据-的指针。xBytesSent = xStreamBufferSend(StreamBufferHandle, // 发送数据句柄。(void *)rx_buf, // 发送数据-的指针。xTaskCreate(vTaskCode0, // 任务函数。4096, // 分配内存。void vTaskCode0(void *pvParam) // 任务。void vTaskCode1(void *pvParam) // 任务。原创 2023-07-04 20:18:35 · 126 阅读 · 0 评论 -
Free RTOS-13任务通知2通知值-进入不同状态
ulNotifiedValue, // 传出 RTOS 任务的通知值。0x01, // 更新目标任务的通知值。xTaskNotify(xTask1, // 任务的句柄。void vTaskCode0(void *pvParam) // 任务。void vTaskCode1(void *pvParam) // 任务。3, // 任务优先级。xTaskCreate(vTaskCode0, // 任务函数。原创 2023-07-04 07:12:15 · 30 阅读 · 0 评论 -
Free RTOS-13任务通知1消息同步-任务集合
/ 阻塞一个任务-等待通知。void vTaskCode0(void *pvParam) // 任务。void vTaskCode1(void *pvParam) // 任务。3, // 任务优先级。xTaskCreate(vTaskCode0, // 任务函数。4096, // 分配内存。NULL, // 传参数。"task1", // 名字。原创 2023-07-04 06:31:18 · 30 阅读 · 0 评论 -
Free RTOS-12事件组2标志位阻塞自己-同步事件-任务集合
ALL_SYNC_BITS, // 要等待的位-满足就解除阻塞。ALL_SYNC_BITS, // 要等待的位-满足就解除阻塞。ALL_SYNC_BITS, // 要等待的位-满足就解除阻塞。TASK_0_BIT, // 阻塞点准备好-等待状态。TASK_1_BIT, // 阻塞点准备好-等待状态。TASK_2_BIT, // 阻塞点准备好-等待状态。xEventGroupSync(xEventBits, // 事件句柄。4096, // 分配内存。原创 2023-07-03 22:04:52 · 36 阅读 · 0 评论 -
Free RTOS-12事件组1标志位等待运行
xCreatedEventGroup, // 创建好的事件组。BIT_0 | BIT_4, // 指定事件组的位。2, // 任务优先级。xTaskCreate(vTaskCode1, // 任务函数。4096, // 分配内存。NULL, // 传参数。"task1", // 名字。void vTaskCode1(void *pvParam) // 任务。void vTaskCode2(void *pvParam) // 任务。原创 2023-07-03 20:49:07 · 42 阅读 · 0 评论 -
Free RTOS-11信号量4递归互斥量
/ 互斥锁和二进制信号量都由 SemaphoreHandle_t 类型的变量引用。// 创建一个递归互斥锁。和裸机 的运行差不多。void vTaskCode1(void *pvParam) // 任务。void vTaskCode2(void *pvParam) // 任务。2, // 任务优先级。xTaskCreate(vTaskCode1, // 任务函数。4096, // 分配内存。NULL, // 传参数。"task1", // 名字。原创 2023-07-03 20:05:55 · 34 阅读 · 0 评论 -
Free RTOS-11信号量3递归互斥锁
/计数型,最大5,初始5。void vTaskCode1(void *pvParam)//任务。void vTaskCode2(void *pvParam)//任务。void vTaskCode(void *pvParam)//任务。4096, // 分配内存。"task", // 名字。原创 2023-07-02 19:07:26 · 81 阅读 · 0 评论 -
Free RTOS-11信号量2计数信号量
/计数型,最大5,初始5。//必须先用这个释放。void vTaskCode1(void *pvParam)//任务。void vTaskCode(void *pvParam)//任务。vTaskCode1, // 任务函数。vTaskCode, // 任务函数。4096, // 分配内存。"task1", // 名字。4096, // 分配内存。"task", // 名字。NULL, // 传参数。NULL, // 传参数。1, // 任务优先级。1, // 任务优先级。原创 2023-07-02 18:20:55 · 31 阅读 · 0 评论 -
Free RTOS-11信号量1位信号量锁
/互斥锁和二进制信号量都由 SemaphoreHandle_t 类型的变量引用。void vTaskCode1(void *pvParam)//任务。void vTaskCode(void *pvParam)//任务。vTaskCode1, // 任务函数。vTaskCode, // 任务函数。1024, // 分配内存。"task1", // 名字。1024, // 分配内存。"task", // 名字。NULL, // 传参数。NULL, // 传参数。原创 2023-07-02 17:31:54 · 60 阅读 · 0 评论 -
Free RTOS-10软件定时器4改变时间-让灯闪快或慢
xtimer1 = xTimerCreate( // 创建软件定时器。xtimer2 = xTimerCreate( // 创建软件定时器。// 软件定时器开始。"xTimer1", // 名字。pdMS_TO_TICKS(1000), // 毫秒。pdTRUE, // 一次。"xTimer2", // 名字。pdMS_TO_TICKS(2000), // 毫秒。pdTRUE, // 一次。原创 2023-06-30 21:25:28 · 75 阅读 · 0 评论 -
Free RTOS-10软件定时器3重启模拟看门狗
xtimer1 = xTimerCreate( // 创建软件定时器。xtimer2 = xTimerCreate( // 创建软件定时器。// 软件定时器开始。"xTimer1", // 名字。pdMS_TO_TICKS(1000), // 毫秒。pdTRUE, // 一次。"xTimer2", // 名字。pdMS_TO_TICKS(2000), // 毫秒。pdTRUE, // 一次。原创 2023-06-30 21:10:18 · 55 阅读 · 0 评论 -
Free RTOS-10软件定时器2多地触发回调//获取名字或ID
xtimer1 = xTimerCreate( // 创建软件定时器。xtimer2 = xTimerCreate( // 创建软件定时器。// 软件定时器开始。"xTimer1", // 名字。pdMS_TO_TICKS(1000), // 毫秒。pdTRUE, // 一次。"xTimer2", // 名字。pdMS_TO_TICKS(1000), // 毫秒。pdTRUE, // 一次。原创 2023-06-30 20:52:30 · 91 阅读 · 0 评论 -
Free RTOS-10软件定时器1创建启动暂停
xtimer1 = xTimerCreate( // 创建软件定时器。// 软件定时器开始。"xTimer1", // 名字。pdMS_TO_TICKS(1000), // 毫秒。pdTRUE, // 一次。包含头#include "freertos/timers.h"原创 2023-06-30 20:28:27 · 45 阅读 · 0 评论 -
Free RTOS-9消息队列7邮箱
1, // 任务优先级。2, // 任务优先级。2, // 任务优先级。1, // 任务优先级。vTaskCode2, // 任务函数。4096, // 分配内存。4096, // 分配内存。vTaskCode0, // 任务函数。4096, // 分配内存。4096, // 分配内存。原创 2023-06-30 20:03:50 · 119 阅读 · 0 评论 -
Free RTOS-9消息队列6队列集合
/ 创建队列,返回队列的句柄。// 创建队列,返回队列的句柄。// 在队列中发布项目。1, // 任务优先级。4096, // 分配内存。1, // 任务优先级。4096, // 分配内存。(void *)xQueueSet, // 传参数。vTaskCode, // 任务函数。4096, // 分配内存。(void *)QHandle1, // 传参数。原创 2023-06-30 19:16:03 · 60 阅读 · 0 评论 -
Free RTOS-9消息队列5多进单出
1, // 任务优先级。1, // 任务优先级。4096, // 分配内存。vTaskCode0, // 任务函数。4096, // 分配内存。vTaskCode1, // 任务函数。4096, // 分配内存。(void *)QHandle, // 传参数。(void *)QHandle, // 传参数。(void *)QHandle, // 传参数。原创 2023-06-30 07:47:07 · 29 阅读 · 0 评论 -
Free RTOS-9消息队列4查看消息数量
1, // 任务优先级。2, // 任务优先级。vTaskCode, // 任务函数。4096, // 分配内存。vTaskCode1, // 任务函数。4096, // 分配内存。(void *)QHandle, // 传参数。(void *)QHandle, // 传参数。"Ttask", // 名字。"Rtask1", // 名字。原创 2023-06-29 20:39:48 · 171 阅读 · 1 评论 -
Free RTOS-9消息队列3传字符串
1, // 任务优先级。2, // 任务优先级。vTaskCode, // 任务函数。4096, // 分配内存。vTaskCode1, // 任务函数。4096, // 分配内存。(void *)QHandle, // 传参数。(void *)QHandle, // 传参数。"Ttask", // 名字。"Rtask1", // 名字。原创 2023-06-29 21:15:41 · 118 阅读 · 1 评论 -
Free RTOS-9消息队列2传结构体
1, // 任务优先级。2, // 任务优先级。vTaskCode, // 任务函数。4096, // 分配内存。vTaskCode1, // 任务函数。4096, // 分配内存。(void *)QHandle, // 传参数。(void *)QHandle, // 传参数。"Ttask", // 名字。"Rtask1", // 名字。原创 2023-06-29 20:54:00 · 128 阅读 · 1 评论 -
Free RTOS-9消息队列1传整形
1, // 任务优先级。2, // 任务优先级。vTaskCode, // 任务函数。4096, // 分配内存。vTaskCode1, // 任务函数。4096, // 分配内存。(void *)QHandle, // 传参数。(void *)QHandle, // 传参数。"Ttask", // 名字。"Rtask1", // 名字。原创 2023-06-29 20:18:41 · 31 阅读 · 1 评论 -
Free RTOS-8任务WDT看门狗
2, // 任务优先级。1, // 任务优先级。vTaskCode1, // 任务函数。4096, // 分配内存。vTaskCode, // 任务函数。4096, // 分配内存。NULL, // 传参数。NULL, // 传参数。"task1", // 名字。"task", // 名字。&xHandle);原创 2023-06-28 21:46:53 · 255 阅读 · 1 评论 -
Free RTOS-7查看分配内存1单个
如果堆栈的宽度为 16 位,usStackDepth 为 100,则将分配 200 字节用作该任务的堆栈。如果堆栈的宽度为 32 位,usStackDepth 为 400,则将分配 1600 字节用作该任务的堆栈。堆栈深度与堆栈宽度的乘积不得超过 size_t 类型变量所能包含的最大值。1, // 任务优先级。vTaskCode, // 任务函数。4096, // 分配内存。NULL, // 传参数。"task", // 名字。&xHandle);原创 2023-06-28 20:50:11 · 137 阅读 · 1 评论 -
Free RTOS-6调试能手-显示每个任务的详细信息 看看还有多少内存可用
注意:此函数将在其持续时间内禁用中断。2, // 任务优先级。1, // 任务优先级。vTaskCode1, // 任务函数。4096, // 分配内存。vTaskCode, // 任务函数。4096, // 分配内存。NULL, // 传参数。NULL, // 传参数。"task1", // 名字。&xHandle1);"task", // 名字。&xHandle);Stackh还有多少内存可用。原创 2023-06-28 20:35:28 · 310 阅读 · 1 评论 -
Free RTOS-5任务优先级2修改优先级
2, // 任务优先级。1, // 任务优先级。vTaskCode1, // 任务函数。4096, // 分配内存。vTaskCode, // 任务函数。4096, // 分配内存。NULL, // 传参数。NULL, // 传参数。"task1", // 名字。&xHandle1);"task", // 名字。&xHandle);原创 2023-06-26 21:29:24 · 92 阅读 · 1 评论 -
Free RTOS-5任务优先级1
必须将 INCLUDE_uxTaskPriorityGet 定义为 1,此函数才可用。uxTaskPriorityGet函数来获取优先级号,函数在api 任务控制里。注意:如果优先级大于>优先级那就为最大优先级,一般不要改大优先级会占用内存。1, // 任务优先级。vTaskCode, // 任务函数。2048, // 分配内存。(void *)pstr, // 传参数。"task1", // 名字。值越大优先级越高,同级优先级就先后运行,原创 2023-06-26 20:30:44 · 92 阅读 · 1 评论 -
Free RTOS-4任务挂起和任务恢复2全部挂起(调度器挂起)
调度器挂起时,禁止使用RTOS-API 函数,vTaskSuspendAll挂起函数与 xTaskResumeAll恢复函数配套使用。原创 2023-06-26 23:51:56 · 83 阅读 · 1 评论 -
Free RTOS-4任务挂起和任务恢复1单个
例如,如果一个任务调用vTaskDelay(),它将被阻塞(被置于阻塞状态), 直到延迟结束-一个时间事件。处于阻塞状态的任务通常有一个"超时"期, 超时后任务将被超时,并被解除阻塞, 即使该任务所等待的事件没有发生。与“阻塞”状态下的任务一样, “挂起”状态下的任务不能 被选择进入运行状态,但处于挂起状态的任务 没有超时。准备就绪任务指那些能够执行(它们不处于阻塞或挂起状态), 但目前没有执行的任务, 因为同等或更高优先级的不同任务已经处于运行状态。2, // 任务优先级。原创 2023-06-26 21:55:53 · 105 阅读 · 2 评论 -
Free RTOS-3任务参数传递4结构体
1, // 任务优先级。vTaskCode, // 任务函数。2048, // 分配内存。(void *)&structmy, // 传参数。"task1", // 名字。&xHandle);原创 2023-06-25 20:37:35 · 77 阅读 · 1 评论 -
Free RTOS-3任务参数传递3字符
1, // 任务优先级。vTaskCode, // 任务函数。2048, // 分配内存。(void *)pstr, // 传参数。"task1", // 名字。&xHandle);原创 2023-06-25 20:49:10 · 41 阅读 · 0 评论 -
Free RTOS-3任务参数传递2数组
1, // 任务优先级。vTaskCode, // 任务函数。2048, // 分配内存。(void *)tastbuf, // 传参数。"task1", // 名字。&xHandle);原创 2023-06-25 20:05:13 · 77 阅读 · 1 评论 -
Free RTOS-3任务参数传递1整形
任务参数传递原创 2023-06-25 19:49:41 · 44 阅读 · 1 评论 -
Free RTOS-2删除任务
例子为: vTaskDelete(NULL);1, // 任务优先级。vTaskCode, // 任务函数。1024, // 分配内存。NULL, // 传参数。"task1", // 名字。&xHandle);烧入下载调试删除3次就删除任务了。也可以直接在任务内部直接删除。原创 2023-06-20 21:29:43 · 74 阅读 · 1 评论 -
Free RTOS-1任务创建
Free RTOS创建任务原创 2023-06-20 20:57:07 · 62 阅读 · 1 评论 -
Free RTOS-0编程风格与命名
u :代表unsigned,无符号。pc :指针变量char。s :代表short。原创 2023-06-20 22:55:11 · 72 阅读 · 0 评论