全部文档
OneOS简介 硬件支持 编译构造工具 API参考文档 高级语言 用户编程手册 应用笔记 FAQ

class machine.I2C

​ machine.I2C 类是 machine模块下面的一个硬件类,用于对 I2C 的配置和控制,提供对 I2C 设备的操作方法。I2C 对象被创建到一个特定的总线上,它可以在创建时被初始化,也可以之后再来初始化。本文档中I2C类对象只支持硬件I2C的master模式。

构造函数

构造函数 class machine.I2C(machine_id, *, baudrate=400000,dma=False)
功能 构造一个I2C总线对象
参数说明 machine_id:I2C总线通道,如传入1表示i2c1总线; baudrate:传输速率,默认400K; dma:是否使用DMA进行数据传输,默认不使用;
返回值 返回构造的machine.I2C类对象

实例方法

machine. I2C类包括如下实例方法

方法名 说明
I2C.init() 初始化I2C总线
I2C.deinit() 关闭I2C总线
I2C.scan() 扫描所有0x01和0x7F之间的 I2C 从机地址,然后返回一个有响应地址的列表
I2C.isready() 检查指定地址的I2C设备是否响应
I2C.readfrom() 从 addr 指定的从设备中读取 n 个字节
I2C.readfrom_into() 从 addr 指定的从设备中读取数据存储到 buf 中
I2C.readfrom_mem() 从 addr 指定的从设备中 memaddr 地址开始读取 n 个字节
I2C.readfrom_mem_into() 从 addr 指定的从设备中 memaddr 地址读取数据到 buf 中
I2C.writeto() 将 buf 中的数据写入到 addr 指定的的从设备中
I2C.writeto_mem() 将 buf 里的数据写入 addr 指定的从机的 memaddr 地址中

详细说明如下:

方法名称 I2C.init(*,baudrate=400000,dma=False)
功能 根据参数初始化I2C总线配置
参数说明 baudrate:设置I2C总线波特率 dma:选择是否使用DMA进行数据传输
返回值 固定返回None

方法名称 I2C.deinit()
功能 关闭I2C总线
参数说明 无参数
返回值 固定返回None

​ 注:关闭I2C对象后,需重新init才能正常使用I2C对象。

方法名称 I2C.scan()
功能 扫描所有0x01和0x7F之间的 I2C 从机地址,然后返回一个有响应地址的列表
参数说明 无参数
返回值 以list的形式返回从机地址
方法名称 I2C.is_ready(addr)
功能 检查指定地址的I2C设备是否响应
参数说明 addr:I2C从设备地址
返回值 正常响应返回True 无响应返回None
方法名称 I2C.readfrom(addr, nbytes, *,stop=True, timeout=5000)
功能 从 addr 指定的从设备中读取 n 个字节
参数说明 addr:I2C从设备地址; nbytes:读取n字节长度。 stop:根据实际设备特性选择是否需要停止位,若为True,则在传输结束后会产生一个停止信号,即NACK信号,否则会发送ACK信号。 Timeout:读超时时间,单位ms,默认5s。
返回值 返回一个存储着读到数据的字节对象
方法名称 I2C.readfrom_into(addr, buf, *,stop=True, timeout=5000)
功能 从 addr 指定的从设备中读取数据存储到 buf 中
参数说明 addr:I2C从设备地址; buf:存储读取到的数据,读取的字节数为buf的长度。 stop:根据实际设备特性选择是否需要停止位,若为True,则在传输结束后会产生一个停止信号,即NACK信号,否则会发送ACK信号。 Timeout:读超时时间,单位ms,默认5s。
返回值 返回读取的字节长度
方法名称 I2C.readfrom_mem(addr, memaddr, nbytes, *, addrsize=8 , timeout=5000)
功能 从 addr 指定的从设备中的 memaddr 地址开始读取 n 个字节
参数说明 addr:I2C从设备地址; memaddr:从设备寄存器地址 nbytes:读取n个字节长度 addsize:memaddr地址宽度,8位或16位 Timeout:读超时时间,单位ms,默认5s。
返回值 返回读取到的数据
方法名称 I2C.readfrom_mem_into(addr, memaddr, buf, *, addrsize=8 , timeout=5000)
功能 从 addr 指定的从设备中 memaddr 地址读取数据到 buf 中
参数说明 addr:I2C从设备地址; memaddr:从设备寄存器地址; buf:存储读取到的数据,读取字节数为buf的长度; addsize:memaddr地址宽度,8位或16位,默认设置为8位; Timeout:读超时时间,单位ms,默认5s。
返回值 返回读取的字节长度

方法名称 I2C. I2C.writeto(addr, buf, *,stop=True, timeout=5000)
功能 将 buf 中的数据写入到 addr 指定的的从设备中
参数说明 addr:I2C从设备地址; buf:写入的字节数据,写入数据长度为buf长度; stop:若为True,则在传输结束后会产生一个停止信号,即NACK信号,即使收到NACK信号也发送一个NACK信号。 Timeout:写超时时间,单位ms,默认5s。
返回值 返回接收到的 ACK 的数量(即总线成功发送的数据长度)
方法名称 I2C.writeto_mem(addr, memaddr, buf, *, addrsize=8, timeout=5000)
功能 将 buf 里的数据写入 addr 指定的从机的 memaddr 地址中
参数说明 addr:I2C从设备地址; memaddr:从设备寄存器地址; buf:写入的字节数据; addsize:memaddr地址宽度,8位或16位; Timeout:写超时时间,单位ms,默认5s。
返回值 返回接收到的 ACK 的数量(即总线成功发送的数据长度)

results matching ""

    No results matching ""

    返回顶部