🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
# `I2C`_总线协议 `I2C` 总线协议,使用两条线(SCL,SDA)可以控制多个从机(`from machine import I2C`) ***** ## **构造函数:** * [ ] **新建对象** ``` class machine.I2C(id, mode=I2C.MODE_MASTER, scl=None, sda=None, freq=400000, timeout=1000, addr=0, addr_size=7, on_recieve=None, on_transmit=None, on_event=None) ``` > 通过指定的参数新建一个 I2C 对象 *参数:* * `id`: I2C ID, [0~2]即 (`I2C.I2C0`~`I2C.I2C2`) * `mode`: 模式, 主机(`I2C.MODE_MASTER`)和从机(`I2C.MODE_SLAVE`)模式 * `scl`: SCL 引脚,直接传引脚编号即可,取值范围: [0,47] * `sda`: SDA 引脚,直接传引脚编号即可,取值范围: [0,47] * `freq`: I2C通信频率, 支持标准100Kb/s, 快速400Kb/s * `timeout`: 超时时间,目前这个参数保留,设置无效 * `addr`: 从机地址,如果是主机模式不用设置, 从机模式则代表从机(本机)地址 * `addr_size`: 地址长度, 支持 7 位寻址和 10 位寻址, 取值`7`或者`10` * `on_recieve`: 从机模式的接收回调函数 * `on_transmit`: 从机模式的发送回调函数 * `on_event`: 从机模式的事件函数(开始事件和结束事件) *返回:* * `None` ***** ## **方法:** * [ ] **扫描从机** ``` .scan() ``` >扫描I2C总线上的从机 *参数:* * 无 *返回:* * list 对象, 包含了所有扫描到的从机地址 *****