# `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 对象, 包含了所有扫描到的从机地址
*****
- 简介
- 关于MixPY
- 准备
- MixPY_函数库
- MicroPython标准库
- gc _控制垃圾回收器
- math_数学函数
- sys_系统相关函数
- ubinascii _ 二进制/ ASCII转换
- ucollections_集合和容器类型
- uerrno _系统错误代码
- uheapq_ 堆队列算法
- ujson_JSON编码与解码
- uos _基本的“操作系统”服务
- ure_正则表达式
- MixPY_特定函数
- lcd_显示驱动
- lcd_范例
- sensor_感光元件
- sensor_范例
- image_机器视觉
- image_函数
- HaarCascade 类_特征描述符
- Similarity 类_相似度对象
- Histogram 类_直方图对象
- Percentile 类_百分比值对象
- Threhsold 类_阈值对象
- Statistics 类_统计数据对象
- Blob 类_色块对象
- Line 类_直线对象
- Circle 类_圆形对象
- Rect 类_矩形对象
- QRCode 类_ 二维码对象
- AprilTag 类_AprilTag对象
- DataMatrix 类_数据矩阵对象
- BarCode 类_条形码对象
- Displacement 类_位移对象
- Kptmatch 类_特征点对象
- ImageWriter 类_ImageWriter对象
- ImageReader 类_ImageReader对象
- Image 类_图像对象
- touchscreen_触摸屏幕
- touchscreen_范例
- video_视频
- video_范例
- audio_音频
- audio_范例
- nes_游戏模拟器
- nes_范例
- machine_板级功能
- I2C_总线协议
- I2C_范例
- PWM_脉宽调制
- PWM_范例
- SPI_同步串行协议
- SPI_范例
- Timer_硬件定时器
- Timer_范例
- UART_异步串口
- UART_范例
- network_网卡驱动
- network_范例
- Maix_功能库
- FPIOA_可编程 IO 阵列
- FPIOA_范例
- GPIO_通用输入/输出
- GPIO_范例
- I2S_驱动I2S设备
- I2S_范例
- freq_频率模块
- freq_范例
- FFT_傅里叶运算
- FFT_范例
- KPU_神经网络处理器
- KPU_范例