2025-9-29 11:35:20 [显示全部楼层]
7浏览
查看: 7|回复: 0

[ESP8266/ESP32] 【FireBeetle 2 ESP32-C5】 arduino环境搭建+FreeRTOS验证

[复制链接]

FireBeetle 2 ESP32-C5介绍:

【FireBeetle 2 ESP32-C5】 arduino环境搭建+FreeRTOS验证图5

【FireBeetle 2 ESP32-C5】 arduino环境搭建+FreeRTOS验证图6

FireBeetle 2 ESP32-C5 IO套装包括两部分:Firebeetle 2 ESP32-C5 开发板和其专用的IO扩展底板。IO扩展板方便快速连接各种传感器外设,让Firebeetle 2 ESP32-C5开发板到手即用,无需焊接。FireBeetle 2 ESP32-C5 是一款搭载乐鑫 ESP32-C5 模组的低功耗 IoT 开发板,面向智能家居和广泛物联网场景,集高性能计算、多协议支持与智能电源管理于一体,为各种部署需求提供高可靠性、高灵活性与长续航的解决方案。提供 双频 Wi-Fi 6 连接(2.4 和 5 GHz) 以及蓝牙 5、Thread 和 Zigbee,便于无缝集成到智能家居平台 Home Assistant 等开源系统。


其性能参数如下:
处理器:RISC-V单核处理器
时钟频率:240 MHz
内存:384 KB
电子模块: 320 KB
闪存:4 MB
LP SRAM:16 KB

数字 I/O x18
带 6 通道的 LED PWM 控制器
SPI x1
UART x3 (LP UART x1)
I2C x2 (LP I2C x1)
I2S x1
红外收发器:5个发射通道,5个接收通道
1 个 12 位 SAR ADC,带 7 个通道
DMA 控制器,具有 3 个接收通道和 3 个发射通道


管脚分配如下
【FireBeetle 2 ESP32-C5】 arduino环境搭建+FreeRTOS验证图7
原理图如下:
【FireBeetle 2 ESP32-C5】 arduino环境搭建+FreeRTOS验证图8
Arduino IDE安装:

下载最新板版本版本的
https://www.arduino.cc/en/software/



【FireBeetle 2 ESP32-C5】 arduino环境搭建+FreeRTOS验证图2

正常安装即可。

添加json:

https://github.com/espressif/arduino-esp32/releases/download/3.3.0-alpha1/package_esp32_dev_index_cn.json

【FireBeetle 2 ESP32-C5】 arduino环境搭建+FreeRTOS验证图4


支持包安装:
版本不可选错
【FireBeetle 2 ESP32-C5】 arduino环境搭建+FreeRTOS验证图3



FREE RTOS实现
目的实现两个任务
任务1:每秒,LED翻转,输出文字。
任务2:每2秒,串口输出信息。

头文件:
  1. #include <Arduino.h>
  2. #include <freertos/FreeRTOS.h>
  3. #include <freertos/task.h>
复制代码


LED管脚:
  1. // 配置引脚(根据开发板调整LED引脚)
  2. const uint8_t LED_PIN = GPIO_NUM_15; // 默认LED引脚(需根据开发板调整)
复制代码


任务函数声明:
  1. // 任务函数声明
  2. void blinkLED(void *pvParameters);
  3. void printMessage(void *pvParameters);
复制代码


任务建立
  1. void setup() {
  2.   Serial.begin(115200); // 初始化串口
  3.   pinMode(LED_PIN, OUTPUT);
  4.   
  5.   // 创建任务1:闪烁LED
  6.   xTaskCreate(
  7.     blinkLED,       // 任务函数
  8.     "Blink Task",   // 任务名称
  9.     2048,           // 栈大小(字节)
  10.     NULL,           // 任务参数
  11.     1,              // 优先级(1较低)
  12.     NULL            // 任务句柄
  13.   );
  14.   
  15.   // 创建任务2:串口打印
  16.   xTaskCreate(
  17.     printMessage,
  18.     "Print Task",
  19.     2048,
  20.     NULL,
  21.     1,
  22.     NULL
  23.   );
  24.   
  25.   // 如果setup结束,loop任务会自动运行(优先级为1)
  26. }
复制代码


任务实现:
  1. // 任务1:每1000ms切换LED状态
  2. void blinkLED(void *pvParameters) {
  3.   for(;;) { // 无限循环
  4.     digitalWrite(LED_PIN, !digitalRead(LED_PIN));
  5.     Serial.println("LED状态切换");
  6.     vTaskDelay(pdMS_TO_TICKS(1000)); // 非阻塞延时
  7.   }
  8.   vTaskDelete(NULL); // 安全退出(通常不会执行到这里)
  9. }
  10. // 任务2:每2秒打印消息
  11. void printMessage(void *pvParameters) {
  12.   TickType_t lastWakeTime = xTaskGetTickCount();
  13.   const TickType_t period = pdMS_TO_TICKS(2000);
  14.   
  15.   for(;;) {
  16.     Serial.println("[系统] FreeRTOS运行中 | 芯片: ESP32-C5 | 内核数: 1");
  17.     Serial.println("------------------------------------");
  18.     vTaskDelayUntil(&lastWakeTime, period); // 精确周期延时
  19.   }
  20. }
复制代码




实验结果:

【FireBeetle 2 ESP32-C5】 arduino环境搭建+FreeRTOS验证图1

总结:
有了FreeRTOS,可以实现多任务进行开发。避免了阻塞。实现更多功能。

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
[[wsData.name]]

硬件清单

  • [[d.name]]
btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4 备案 沪公网安备31011502402448

© 2013-2025 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail