当前位置: 首页 > news >正文

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

学物联网,来万物简单IoT物联网!!在这里插入图片描述

I2C 介绍

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

接口说明

I2C - 构建硬件I2C对象

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

SoftI2C - 构建软I2C对象

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

scan - 扫描从设备

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

  • 返回值:

start - 起始位信号

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

  • 返回值:

stop - 停止位信号

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

  • 返回值:

readfrom - 从I2C总线读取数据

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

writeto - 向I2C总线写数据

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

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

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

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

  • 函数原型:writeto_mem(devAddr, memaddr,buffer)
  • 参数说明:
参数类型必选参数?说明
devAddrintYI2C总线上从设备地址
memaddrintY起始地址
bufferarray[]Y发送数据的缓冲区,期待发送的字节数为buffer的长度
  • 返回值:
  • 案例代码
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的从机设备写入缓冲区数据
http://www.lryc.cn/news/232644.html

相关文章:

  • RocketMQ的适用场景有哪些?
  • ubuntu启动转圈,无法进入登录界面
  • MATLAB 机械臂逆运动学进行轨迹控制建模
  • 【计算机组成原理】定点加法、减法运算
  • scp 跨服务器传输命令,把一个服务器上的文件复制传到当前服务器目录下
  • 【python基础】用户输入和while循环详解
  • k8s-部署Redis-cluster(TLS)
  • 计算机毕业设计选题推荐-幼儿园管理微信小程序/安卓APP-项目实战
  • ElasticStack日志分析平台-ES 集群、Kibana与Kafka
  • 微机原理_10
  • (SpringBoot)第八章:SpringMVC程序开发
  • openssl + 3DES开发实例(linux)
  • 遵循开源软件安全路线图
  • 294_C++_
  • 【计算机网络笔记】网络地址转换(NAT)
  • 【flink理论】动态表:关系查询处理流的思路:连续查询、状态维护;表转换为流需要编码编码
  • 2023年09月 Python(六级)真题解析#中国电子学会#全国青少年软件编程等级考试
  • Ubuntu16.04上安装Docker
  • FSOD论文阅读 - 基于卷积和注意力机制的小样本目标检测
  • Windows系统中搭建docker (ubuntu,Docker-desktop)
  • 使用记录-MongoDB
  • 用归并排序算法merge_sort( )求解 逆序对的数量 降低时间复杂度为 nlogn
  • 大功率电源芯片WD5030L
  • Spring Boot使用EhCache完成一个缓存集群
  • yolov5模型代码怎么修改
  • VIM去掉utf-8 bom头
  • Go 使用Viper处理Go应用程序的配置
  • hadoop安装网址
  • JavaMail邮件发送服务
  • 【918.环形子数组的最大和】