2. 取消初始化定时器 timerEnd
void timerEnd(hw_timer_t *timer)
3. 配置定时器中断 timerAttachInterrupt
void timerAttachInterrupt(hw_timer_t timer, void (fn)(void), bool edge){}
4. 取消定时器中断 timerDetachInterrupt
void timerDetachInterrupt(hw_timer_t *timer)
6. 使能定时器 timerAlarmEnable
void timerAlarmEnable(hw_timer_t *timer){}
7. 失能定时器 timerAlarmDisable
void timerAlarmDisable(hw_timer_t *timer)
例子:
#include <Arduino.h>
hw_timer_t *tim1 = NULL;
int tim1_IRQ_count = 0;
void tim1Interrupt()
{
Serial.println("haha");
tim1_IRQ_count++;
Serial.println(timerAlarmEnabled(tim1));
}
void setup()
{
Serial.begin(115200);
tim1 = timerBegin(0, 80, true);
timerAttachInterrupt(tim1, tim1Interrupt, true);
timerAlarmWrite(tim1, 100000, true);
timerAlarmEnable(tim1);
}
void loop()
{
if (tim1_IRQ_count > 10)
{
Serial.println("count trigger");
tim1_IRQ_count = 0;
}
}
1. 初始化IIC (以主机身份) begin
Wire.begin();
2. 以主机身份像从机请求数据 requestFrom
void requestFrom(uint16_t address, uint8_t size, bool sendStop)
3. 主机开始传输 beginTransmission()
void beginTransmission(int address)
4. 结束数据传输 endTransmission()
结束传输, 并释放IIC
5. 结束数据传输但不释放IIC占用 endTransmission(false)
返回值: uint8_t 类型
6. 写 write()
当作为主机时: 主机将要发送的数据加入发送队列;
8. 读取1byte数据 read()
当作为主机时: 主机使用requestFrom()后 要使用此函数获取数据;
2. 当从机被请求时触发函数onRequest()
void onRequest(void (*)())
3. 当从机收到数据时触发函数
void onReceive(void (*)(int))
3. 设置SPI频率 SPI.setFrequency(freq)
参数:
4. 设置SPI的时钟模式 SPI.setDataMode(dataMode);
参数:
5. 按照setting的设置启动SPI通信 SPI.beginTransaction(setting);
采用该函数,可以代替上面三个函数了.
6. 结束SPI通信 SPI.endTransaction();
结束SPI通信
7. 接收/发送一个字节的数据 SPI.transfer(data);
参数:SPI.transfer(0x01); SPI.transfer16(0x0102); SPI.transfer32(0x01020304); uint8_t byte1; uint16_t bytes2; uint32_t bytes3; byte1 = SPI.transfer(); bytes2 = SPI.transfer16(); bytes3 = SPI.transfer32();
MimiClaw 是一款基于 ESP32-S3 芯片的超轻量级AI助手,适合嵌入式AI与物联网开发者快速部署本地化AI代理。本系列教程基于MimiClaw的Arduino移植版本进行讲解,小节主要讲解部署和测试。
就像我们用手机打开WiFi功能后可以浏览附近的可用WiFi。要将手机连接到热点,通常需要打开Wi-Fi设置应用程序,列出可用的网络,然后选择所需的热点。然后输入密码(或不输入密码),可以使用ESP32进行相同的操作。
本文本介绍配置飞书机器人为MimiClaw的一个输入/输出端,和添加一个控制WS2812与LED的控制技能。
一块 30 块钱的开发板 + 一个大模型 API,就能做出可以听懂人话的智能硬件。 本文记录完整安装过程和踩坑经验,确保你跟着做就能跑通。
本文将从手绘架构图入手,逐层拆解 MimiClaw 的分层设计、核心模块、数据流转与底层实现,带你解剖这只“智能虾”的技术骨架,看懂在 C 语言加持下,AI 智能体如何以可穿戴设备的形态,在你身边稳稳运行、离线服务、主动响应。
本文介绍如何在不脱离 ArduinoIDE 可视化开发的前提下,通过一个名为 platform.local.txt 的小文件,实现对 ESP32 编译流程的精准控制。
本文将系统分析程序体积增长的五大根源,并提供经过验证的优化方案,帮助减小固件大小。
本文所DIY的语音助手设备端使用的是MicroPython、服务端是Python,对于很多开发者来说MicroPython入门没难度。
本小节使用音频开发框架实现一个音频录制到文件的示例。
I2S协议通过BCLK、LRCLK和DATA三线精准传输音频数据,但时序边沿、帧格式、时钟源等细节常引发噪声或断连。本文详解ESP32的I2S实现,从协议原理到ESP-IDF v5.x代码配置,助你避开常见陷阱,确保音频稳定传输。