物联网AI MicroPython学习之语法 I2C总线

学物联网,来万物简单IoT物联网!!

I2C 介绍

  • 模块功能:
    I2C Master设备驱动

接口说明

I2C - 构建硬件I2C对象

  • 函数原型:I2C(id, scl, sda, freq)
  • 参数说明:
参数 类型 必选参数? 说明
id int Y I2C外设,esp32有两个外设(id = 0/1)
scl int N 对应I2C的时钟线,可以定义任意脚 默认(不选参数) I2C0:Pin(18) I2C1:Pin(9)
sda int N 对应I2C的时钟线,可以定义任意脚 默认(不选参数) I2C0:Pin(19) I2C1:Pin(8)
freq int N I2C通信频率
  • 返回值:
    构建的I2C对象。

SoftI2C - 构建软I2C对象

  • 函数原型:SoftI2C(scl, sda, freq)
  • 参数说明:
参数 类型 必选参数? 说明
scl int Y 对应I2C的时钟线,可以定义任意脚
sda int Y 对应I2C的时钟线,可以定义任意脚
freq int Y I2C通信频率
  • 返回值:
    构建的SoftI2C对象。

scan - 扫描从设备

  • 函数原型:scan()
  • 参数说明:

  • 返回值:

start - 起始位信号

  • 函数原型:start()
  • 参数说明:

  • 返回值:

stop - 停止位信号

  • 函数原型:stop()
  • 参数说明:

  • 返回值:

readfrom - 从I2C总线读取数据

  • 函数原型:readfrom(devAddr,number)
  • 参数说明:
参数 类型 必选参数? 说明
devAddr int Y I2C总线上从设备地址
number int Y 需要从总线上读取的数据字节数
  • 返回值:
    buffer - 总线上读取的数据缓冲区,长度为参数number

writeto - 向I2C总线写数据

  • 函数原型:writeto(devAddr,buffer)
  • 参数说明:
参数 类型 必选参数? 说明
devAddr int Y I2C总线上从设备地址
buffer array[] Y 发送数据的缓冲区,期待发送的字节数为buffer的长度
  • 返回值:

readfrom_mem - 从I2C设备指定地址读取数据

  • 函数原型:readfrom_mem(devAddr, memaddr, number)
  • 参数说明:
参数 类型 必选参数? 说明
devAddr int Y I2C总线上从设备地址
memaddr int Y 起始地址
number int Y 需要从总线上读取的数据字节数
  • 返回值:
    buffer - 指定地址读取的数据缓冲区,长度为参数number

writeto_mem - 向I2C设备指定地址写数据

  • 函数原型:writeto_mem(devAddr, memaddr,buffer)
  • 参数说明:
参数 类型 必选参数? 说明
devAddr int Y I2C总线上从设备地址
memaddr int Y 起始地址
buffer array[] Y 发送数据的缓冲区,期待发送的字节数为buffer的长度
  • 返回值:
  • 案例代码
python 复制代码
from machine import Pin, SoftI2C, I2C

# 构建1个I2C对象
i2c = SoftI2C(scl=Pin(5), sda=Pin(4), freq=100000)

# 构建一个硬件 I2C 总线
i2c = I2C(0)
i2c = I2C(1, scl=Pin(22), sda=Pin(21), freq=400000)

i2c.scan()              # 扫描从设备

i2c.readfrom(0x3a, 4)   # 从地址为0x3a的从机设备读取4字节数据
i2c.writeto(0x3a, '12') # 向地址为0x3a的从机设备写入数据"12"

buf = bytearray(10)     # 创建1个10字节缓冲区
i2c.writeto(0x3a, buf)  # 向地址为0x3a的从机设备写入缓冲区数据
相关推荐
Young_202202024 分钟前
学习笔记——KMP
笔记·学习
艾思科蓝-何老师【H8053】16 分钟前
【ACM出版】第四届信号处理与通信技术国际学术会议(SPCT 2024)
人工智能·信号处理·论文发表·香港中文大学
行然梦实20 分钟前
学习日记_20241110_聚类方法(K-Means)
学习·kmeans·聚类
马船长25 分钟前
制作图片木马
学习
秀儿还能再秀37 分钟前
机器学习——简单线性回归、逻辑回归
笔记·python·学习·机器学习
WCF向光而行41 分钟前
Getting accurate time estimates from your tea(从您的团队获得准确的时间估计)
笔记·学习
weixin_452600691 小时前
《青牛科技 GC6125:驱动芯片中的璀璨之星,点亮 IPcamera 和云台控制(替代 BU24025/ROHM)》
人工智能·科技·单片机·嵌入式硬件·新能源充电桩·智能充电枪
学术搬运工1 小时前
【珠海科技学院主办,暨南大学协办 | IEEE出版 | EI检索稳定 】2024年健康大数据与智能医疗国际会议(ICHIH 2024)
大数据·图像处理·人工智能·科技·机器学习·自然语言处理
右恩1 小时前
AI大模型重塑软件开发:流程革新与未来展望
人工智能
wang09071 小时前
工作和学习遇到的技术问题
学习