物联网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的从机设备写入缓冲区数据
相关推荐
蒙奇D索大5 分钟前
【11408学习记录】考研英语长难句精析:三步拆解真题复杂结构,轻松攻克阅读难关!
笔记·学习·考研·改行学it
兰亭妙微11 分钟前
用户体验的真正边界在哪里?对的 “认知负荷” 设计思考
人工智能·ux
13631676419侯16 分钟前
智慧物流与供应链追踪
人工智能·物联网
TomCode先生18 分钟前
MES 离散制造核心流程详解(含关键动作、角色与异常处理)
人工智能·制造·mes
贝塔实验室21 分钟前
Altium Designer 6.3 PCB LAYOUT教程(四)
驱动开发·嵌入式硬件·硬件架构·硬件工程·信息与通信·基带工程·pcb工艺
zd20057228 分钟前
AI辅助数据分析和学习了没?
人工智能·学习
johnny23335 分钟前
强化学习RL
人工智能
乌恩大侠40 分钟前
无线网络规划与优化方式的根本性变革
人工智能·usrp
放羊郎42 分钟前
基于萤火虫+Gmapping、分层+A*优化的导航方案
人工智能·slam·建图·激光slam
王哈哈^_^1 小时前
【数据集+完整源码】水稻病害数据集,yolov8水稻病害检测数据集 6715 张,目标检测水稻识别算法实战训推教程
人工智能·算法·yolo·目标检测·计算机视觉·视觉检测·毕业设计