ESP32 FreeRTOS的常用API

ESP32 FreeRTOS的常用API

任务管理

1.创建任务

  • xTaskCreate() 或 xTaskCreateStatic():创建动态或静态任务。
  • xTaskCreatePinnedToCore():创建任务并将其固定在指定的核心上运行。

2.任务属性与状态

  • vTaskPrioritySet():更改任务优先级。
  • uxTaskPriorityGet():获取任务当前优先级。
  • vTaskDelete():删除指定任务。
  • eTaskGetState():获取任务状态(如运行、挂起、删除等)。
  • uxTaskGetStackHighWaterMark():获取任务堆栈使用峰值,用于监控堆栈使用情况。

3.任务同步与通信

消息队列
  • xQueueCreate():创建消息队列。
  • xQueueSend(), xQueueReceive(): 向队列发送或从队列接收消息。
  • xQueueSendToFront(), xQueueSendToBack(), xQueuePeek(): 其他队列操作函数。
事件组
  • xEventGroupCreate():创建事件组。
  • xEventGroupWaitBits(), xEventGroupSetBits(), xEventGroupClearBits(): 等待、设置或清除事件组中的位。
互斥锁
  • xSemaphoreCreateMutex():创建互斥锁。
  • xSemaphoreTake(), xSemaphoreGive(): 上锁(获取)或解锁(释放)互斥锁。
  • xSemaphoreGiveRecursive(), xSemaphoreTakeRecursive(): 递归互斥锁的锁定与解锁。
信号量
  • xSemaphoreCreateBinary(),xSemaphoreCreateCounting(): 创建二值信号量或计数信号量。
  • xSemaphoreGive(), xSemaphoreTake(): 释放或获取信号量。
  • xSemaphoreGiveFromISR(), xSemaphoreTakeFromISR(): 从ISR中安全地释放或获取信号量。

时间管理:

1.延时与超时

  • vTaskDelay():以RTOS tick为单位延时。
  • vTaskDelayUntil():基于上次调用时间进行周期性延时。
  • ulTaskNotifyTake(),ulTaskNotifyTakeIndexed():等待任务通知,可指定超时时间。
  • vTaskNotifyGiveIndexed():向指定索引的任务发送通知。

2.定时器

  • xTimerCreate():创建软件定时器。
  • xTimerStart(), xTimerStop(), xTimerReset(): 启动、停止或重置定时器。
  • xTimerChangePeriod(): 更改定时器周期。
  • xTimerIsTimerActive(): 检查定时器是否处于活动状态。

内存管理:

1.动态内存

  • pvPortMalloc():分配内存。
  • vPortFree():释放内存。
  • heap_caps_malloc(), heap_caps_free(): 分配或释放具有特定属性(如IRAM、DRAM)的内存。
  • heap_caps_get_info(): 获取堆信息。

系统控制与查询:

1.系统启动与状态

  • vTaskStartScheduler():启动RTOS调度器。
  • xTaskGetTickCount():获取自RTOS启动以来的tick数。
  • xPortGetCoreID():获取当前运行任务所在的CPU核心ID。

2.中断管理

  • vPortEnterCritical(), vPortExitCritical(): 关闭/恢复中断,实现临界区保护。
  • taskENTER_CRITICAL(), taskEXIT_CRITICAL(): 同上,使用FreeRTOS宏。

其他辅助功能:

1.任务通知

  • vTaskNotifyGive():向任务发送通知,增加任务通知值。
  • vTaskNotifyGiveFromISR():从ISR中安全地向任务发送通知。
  • xTaskNotifyWait():等待并清除任务通知。

2.任务钩子函数

  • vApplicationIdleHook(): 空闲任务钩子函数,用于在空闲任务循环中执行额外操作。
  • vApplicationTickHook(): 时钟节拍钩子函数,每次tick发生时调用。
- 本文内容来自网络,如有侵权,请联系本站处理。

2024-09   阅读(28)   评论(0)
 标签: 创客 ESP32 FreeRTOS

涨知识
LTE Cat.1

Cat.1技术是LTE(Long-Term Evolution)技术的一种调制及编码技术,可以提供相对较高的数据传输速率,同时又具有低功耗、低成本的特点,可以为物联网设备的连接提供更好的解决方案。

评论:
相关文章
ESP-Hosted 入门介绍 &使用指南

ESP-Hosted 解决方案提供了将 ESP 板用作 Wi-Fi 和 Bluetooth/BLE 连接的通信处理器的方法。


设备上云太麻烦?ESP-Hosted一站触达!

ESP-Hosted 提供了一种将ESP芯片和模组用作通信协处理器的解决方案,该解决方案为主机微处理器或微控制器提供无线连接,使主机能够与其他设备通信。简单来说为网卡方案。


ESP32 + Arduino使用TFT_eSPI库

Arduino+ESP32上使用TFT_eSPI库快速点亮这个屏幕,驱动芯片ST7789


ESP32 利用 SPI 连通 TFT 彩屏

本文给出了一个ESP32与SPI 接口TFT显示屏接线的详细说明,供大家参考。


在Micropython下使用ESPNow功能进行数据传输

本文讲解如何在Micropython环境下使用ESP32的ESPNow功能进行数据传输。


用 ESP32-S3 打造多功能 USB Dongle

ESP-Dongle 是一款基于 ESP32-S3 芯片开发的多功能 USB Device 解决方案。它不仅外形小巧,功能齐全,更集成了无线 U 盘、SD 卡读取以及 USB 无线网卡等多项功能。


利用 ESP32-S3 和 CSI 技术打造智能家居

ESP32 系列芯片可以利用 CSI 数据实现动作检测和存在检测。无论是自动调节灯光、风扇,还是节能控制,CSI 技术为智能家居带来了新的可能性。随着 CSI 技术的发展,未来的智能家居将能够更精确地感知和响应我们的行为,实现更高效、更人性化的控制。


ESP32-FreeRTOS:大量FreeRTOS实例,供参考学习

ESP32-FreeRTOS项目提供了丰富的示例,帮助开发者快速掌握ESP32的硬件功能和FreeRTOS实时操作系统。


物联网项目开发实战-第3章-自动浇花项目迭代3

本节我们在迭代二的基础上使用四位数码管和OLED显示屏显示相关交互信息。


物联网项目开发实战-第3章-自动浇花项目迭代2

本节我们在迭代一的基础上增加采集土壤湿度数据,并根据湿度数据来决定是否自动进行浇水动作。