I2C micropython
·
不知道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,说明地址不对

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)