从Beetle ESP32 C6 Mini 引脚分布可知, I2C 的外设包括一组I2C 和一组低功耗I2C, SPI 包括除了片选之外的一组SPI;
对于管脚如下:
SDA->GPIO19
SCL->GPIO20
手上有一款I2C 接口的HMC3588L 的模块;
实物图像如下:
HMC5883是霍尼韦尔公司生产的一款地磁场检测芯片是一款表面贴装的集成了信号处理电路的三轴磁性传感器,应用场景主要包括罗盘、导航、无人机、机器人和手持设备等一些高精度的场合。详细功能可以参考规格书;
硬件连接如下:
编写相关代码:
#include <Arduino.h>
#include <Wire.h>
#include <SPI.h>
#define HMC3588Address 0x1E
void setup() {
Serial.begin(115200);
Wire.begin();
SPI.begin(7); //初始化SPI CS on GPIO7
Wire.beginTransmission(HMC3588Address);
Wire.write(0x02);
Wire.write(0x00);
Wire.endTransmission();
}
void loop() {
int x,y,z;
Wire.beginTransmission(HMC3588Address);
Wire.write(0x03);
Wire.endTransmission();
Wire.requestFrom(HMC3588Address, 6);
if(6<=Wire.available())
{
x = Wire.read()<<8;
x |= Wire.read();
z = Wire.read()<<8;
z |= Wire.read();
y = Wire.read()<<8;
y |= Wire.read();
}
Serial.print(" x: ");
Serial.print(x);
Serial.print(" y: ");
Serial.print(y);
Serial.print(" z: ");
Serial.print(z);
Serial.print("\r\n");
delay(200);
}
测试输出相关数据:
总结:
是否需要低功耗I2C 取决于产品设计需求;