0

我已将 ssd1306 OLED 和 BME280 连接到我的 Pico。当连接到 Pin 0 (sda) 和 1 (scl) i2c 引脚时,一切都像一个魅力。但由于我的计划非常糟糕,我必须切换到任何其他 i2c 引脚。一旦连接,我无法让它工作。我已经从i2c = machine.I2C(0, scl=machine.Pin(1), sda=machine.Pin(0),freq=400000)toi2c = machine.I2C(0, scl=machine.Pin(13), sda=machine.Pin(12),freq=400000)和其他人更改了,但无济于事。代码片段:

import machine
import bme280
import time
from machine import Pin, I2C, ADC
from ssd1306 import SSD1306_I2C

i2c = machine.I2C(0, scl=machine.Pin(13), sda=machine.Pin(12),freq=400000)
bme = bme280.BME280(i2c=i2c)
oled = SSD1306_I2C(128, 64, i2c)

我得到的错误是:

Traceback (most recent call last):   File "<stdin>", line 9, in <module>   File "/lib/bme280.py", line 75, in __init__ OSError: 5

这是:

dig_88_a1 = self.i2c.readfrom_mem(self.address, 0x88, 26) from bme280.py (standard driver)

我已经执行了 i2c 扫描,它确实在新引脚上返回了正确的地址。

4

0 回答 0