为什么I2C会和非复用的串口端口产生冲突?甚至单个I2C都会产生权限问题

Viewed 62

重现步骤

我这边是在创乐博V1.1的板子上使用BME280模块,需要调用I2C的库,但是几个I2C通道试过去发现只有I2C的0通道不会报这个错误。后面又需要使用串口将数据发送到上位机,但是串口1,2,4中只有串口2不会报这个错误。现在过一段时间后这俩组合也开始报错了。请问是什么问题?

期待结果和实际结果

"OSError: [Errno 1] EPERM"
显示是这段代码出问题:calib_data = self.i2c.readfrom_mem(self.addr, BME280_DIG_T1, 6)
用AI搜出来说是权限问题起的冲突,但问题是即使用单个I2C端口,依旧会显示这个。
软硬件版本信息

1.3版本
错误日志

尝试解决过程

补充材料

3 Answers

你好,这个是由于没有识别到从机而报错,没有权限写数据到指定得从机地址。

可是我这边从机连着主机的,在使用I2C通道0的时候是可以读取到数据的

V1.1得板子,IO接口都是1.8V得,外接模块需要增加电压转换模块。因此这里大概率是识别不到模块得。

image.png
你好,只有bank4得电压是3.3v,所以你接i2c2是可以通信得。

好的,谢谢大佬指点,我现在重新去试一下