我用的是 esp32 S3 的芯片,使用下方展示的代码,扫不到任何 i2c 设备,而且会卡在 Wire.begin(31,30),然后无限 setup 。不传引脚则正常运行,提示"No I2C devices foundn"。
#include <Wire.h>
void setup() {
Wire.begin(31,30);
Serial.begin(115200);
Serial.println("nI2C Scanner");
byte error, address;
int nDevices;
Serial.println("Scanning...");
nDevices = 0;
for(address = 1; address < 127; address++ ) {
Wire.beginTransmission(address);
error = Wire.endTransmission();
if (error == 0) {
Serial.print("I2C device found at address 0x");
if (address<16) {
Serial.print("0");
}
Serial.println(address,HEX);
nDevices++;
}
else if (error==4) {
Serial.print("Unknown error at address 0x");
if (address<16) {
Serial.print("0");
}
Serial.println(address,HEX);
}
}
if (nDevices == 0) {
Serial.println("No I2C devices foundn");
}
else {
Serial.println("donen");
}
delay(5000);
Serial.print("i2c devices found:");
Serial.println(nDevices);
}
void loop() {
}
因为电路图是外包公司画的(我再也不找外包了😭),现在做了几个样板,用起来有一些问题,电路图我看不太懂,现在在找靠谱的大神,付费请教一些问题。有相关经验的可以➕V:Taxze2019
1
chopin1998519 84 天前
上拉电阻?
用示波器看看波形呗 |
2
taxze OP @chopin1998519 不太懂呀,我只能写软件层功能,碰到电路真拉闸了😵
|
3
UIXX 84 天前
看了代码,逻辑没有问题。猜想有两个:
1. 电源,这个没有原理图跟实物测试,不好说。 2. 引脚配置。esp32s3 系列的大部分芯片的 GPIO30 和 GPIO31 用作 SPI 的时钟线和输出线,官方是不推荐使用这些引脚另作他用的。 |
4
56rssd 84 天前
先 Wire.pins(31,30)再 Wire.begain()试试
|
5
skyyan2000 84 天前
这是啥,怎么感觉向线束测试得模块上得
|
6
maja 83 天前
i2c 调不通永远先检查有没有上拉...
|