不知道I2C从地址?可以通过快速扫描获取

以AT24C32为例,A0A1A2引脚接低电平 ,地址是0xA0

D22作为 SCL ,D3作为SDA 频率 100khz

直接上代码

from machine import SoftI2C,Pin
import machine
import  utime
from utime import sleep # 延时函数在utime库中


#初始化I2C通道1 ,使用GPIO6和GPIO7 分别作为SDA 和SCL 引脚,频率为100KHZ
led = Pin(2,Pin.OUT)
i2c = SoftI2C(scl = Pin(22) ,sda = Pin(23), freq = 100000)
if __name__ == '__main__':
    while True:             # 无限循环
        print("helloworld")  # 打印"helloworld"字串到console中
        sleep(1)      # 打印完之后休眠1秒
        print('Scan i2c bus...')
        devices = i2c.scan()

原理是:

不停地发送地址, 如果ack了(发送地址后SDA随后被拉低 ),说明这个就是从地址

连接逻辑分析仪分析:

 NAK,说明地址不对

 

 

Logo

技术共进,成长同行——讯飞AI开发者社区

更多推荐