Queue 类旨在以先进先出 (FIFO) 方式管理元素集合。非常适合需要顺序处理顺序的任务,例如事件处理或任务调度。
要使用队列库,请将其包含在 Arduino 草图的开头:
#include "Queue.h"
创建一个 Queue 对象,指定它将保存的元素的数据类型:
Queue<int> myQueue;
使用 enqueue 方法将元素添加到队列中:
myQueue.enqueue(10);
myQueue.enqueue(20);
使用 dequeue 删除队列前面的元素:
int frontElement = myQueue.dequeue();
使用 peek 访问前面的元素而不将其移除:
int peekElement = myQueue.peek();
确定队列是空的还是满的:
bool isEmpty = myQueue.isEmpty();
bool isFull = myQueue.isFull();
从队列中删除所有元素:
myQueue.clear();
出于调试目的,请打印队列中的所有元素:
myQueue.print();
检索队列中的元素数:
size_t elementCount = myQueue.count();
将Queue.h文件复制到arduino项目内即可。
#include <Arduino.h>
#include "Queue.h"
// 创建一个队列对象
Queue<int> queue;
void setup() {
Serial.begin(9600);
// 放一些数据到队列
queue.enqueue(10);
queue.enqueue(20);
queue.enqueue(30);
queue.enqueue(40);
Serial.println(queue.peek()); // 输出队列首的值
Serial.println(queue.isFull()); // 队列未满,输出 "false"
Serial.println(queue.isEmpty()); // 队列非空,输出 "false"
Serial.println(queue.count()); // 队列内元素数据,输出 "4"
// 从队列取数据
int value = queue.dequeue();
Serial.println(value); // 输出取出的数据
Serial.println(queue.peek());
queue.clear(); // 清空队列
}
代码:https://github.com/braydenanderson2014/C-Arduino-Libraries/blob/main/lib/Queue
二进制(binary),发现者莱布尼茨,是在数学和数字电路中以2为基数的记数系统,是以2为基数代表系统的二进位制。这一系统中,通常用两个不同的符号0(代表零)和1(代表一)来表示 。
Arduino开发环境下适用于ESP32芯片系列开发板的应用开发框架。
本小节主要介绍C++ 类相关的基础知识,包括类的定义、继承、多态,范围作用域等。
本讲主要介绍VSCode Arduino开发环境的搭建,及与Arduino IDE开发环境的比较。
在 C++20 中,标准库引入了 std::format 功能,这是一个强大的字符串格式化工具,它提供了类似 Python 的格式化语法,使得字符串格式化变得更加简单和直观。
Arduino-ESP32与ESP-IDF的版本对应表。
Arduino+ESP32上使用TFT_eSPI库快速点亮这个屏幕,驱动芯片ST7789
本程序是小鹏物联网智能浇花套件的单机版程序(不连接物联网),供同学们参考。
ArrayList 类是一个 C++ 模板类,它提供了 ArrayList 的实现,以便轻松存储任何指定类型的值。它允许使用索引进行高效存储和检索,支持排序操作。
ESP32系列(包括ESP32-S3)搭载Xtensa双核处理器,默认情况下Arduino框架仅使用单核运行用户代码,通过多核编程,可以充分利用硬件资源来提升系统响应和性能。
在本文中,先解释 MSB(最高有效位)和 LSB(最低有效位)的概念,以及 MSBFIRST 和 LSBFIRST。然后展示了 MSBFIRST 和 LSBFIRST 的使用如何影响移位寄存器的输出。