ESP32 I2C 报错

ESP32、ESP8266
ESP32-S2、ESP32-S3、ESP32-C3
回复
三日月
帖子: 18
注册时间: 2020年 5月 12日 20:18

ESP32 I2C 报错

#1

帖子 三日月 » 2020年 5月 20日 13:33

       esp32 的I2C是不是有毛病,,,我接上三个从机设备,执行I2C.scan(),总是间歇性的搜到从机设备.那这就导致一个很严重的问题,我写的用户代码里面向从机操作时经常发生  OSError: [Errno 19] ENODEV   的报错,然后代码就死了.然而我用arduno(c驱动)和pyboard驱动的时候从来不会发生这样的事.相信很多人都遇到这样的情况!!!到底是什么原因导致的呢...
 

头像
shaoziyang
帖子: 2372
注册时间: 2019年 10月 21日 13:48

Re: ESP32 I2C 报错

#2

帖子 shaoziyang » 2020年 5月 20日 14:05

很少遇到这个问题,一个是看看上拉电阻是否太大了,在就是引线不能太长,还有速率是否过高。

三日月
帖子: 18
注册时间: 2020年 5月 12日 20:18

Re: ESP32 I2C 报错

#3

帖子 三日月 » 2020年 5月 20日 15:04

走线不过5cm,上拉电阻4.7k,而且我arduno和32的板子都能正常带这三个设备,就esp32-mpy不行.就比如我下面这个图,它能scan出来设备但是不回一下子就scan出来,运气也能直接出来,有时候几次甚至更多,或者就直接scan不出来了
4.png
4.png (36.92 KiB) 查看 2245 次
 

头像
shaoziyang
帖子: 2372
注册时间: 2019年 10月 21日 13:48

Re: ESP32 I2C 报错

#4

帖子 shaoziyang » 2020年 5月 20日 16:49

ESP32虽说有不少坑,但是i2c.scan()还很少看到这样问题。看看sda和scl是否还有其它功能复用,造成干扰。

 

头像
shaoziyang
帖子: 2372
注册时间: 2019年 10月 21日 13:48

Re: ESP32 I2C 报错

#5

帖子 shaoziyang » 2020年 5月 20日 17:05

另外分别试试硬件I2C和软件I2C,看看效果有什么不同。

三日月
帖子: 18
注册时间: 2020年 5月 12日 20:18

Re: ESP32 I2C 报错

#6

帖子 三日月 » 2020年 5月 21日 09:40

     嗯嗯,感谢指点

zhaomq163
帖子: 1
注册时间: 2020年 8月 19日 04:04

Re: ESP32 I2C 报错

#7

帖子 zhaomq163 » 2020年 8月 19日 15:26

>>> exec(open('./ssd1306Demo.py').read(),globals())
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "<string>", line 6, in <module>
  File "ssd1306.py", line 117, in __init__
  File "ssd1306.py", line 43, in __init__
  File "ssd1306.py", line 67, in init_display
  File "ssd1306.py", line 124, in write_cmd
OSError: [Errno 19] ENODEV (3根线没接,反馈的信息)

https://www-numi.fnal.gov/offline_softw ... rrors.html
#define ENODEV          19      /* No such device */,设备没联通
我也碰到了这个错误,oled屏是7针,原先只接4针(VCC,GND,SCL,SDA)。
把剩下的3针(RES,DC,CS)接上就不报错,可以显示了。希望有帮助

STM32F103C8T6的硬件I2C
PB6 -- SCL; PB7 -- SDA
RES: VCC
DC: GND
CS: GND
 
 

回复

  • 随机主题
    回复总数
    阅读次数
    最新文章