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

物联网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.kler.cn/news/133948.html

相关文章:

  • 基于SpringBoot+Redis的前后端分离外卖项目-苍穹外卖(五)
  • 随机过程-张灏
  • java springboot 在测试类中声明临时Bean对象
  • 15. Spring源码篇之获取方法参数名
  • Qt按钮大全续集(QCommandLinkButton和QDialogButtonBox )
  • 【小黑送书—第六期】>>AI时代,程序员如何应对挑战——《AI时代系列书籍》
  • Ubuntu 20.04 LTS设置系统虚拟内存大小
  • 4 redis的HyperLogLog入门原理
  • Kubernetes(k8s)进阶
  • 大数据-之LibrA数据库系统告警处理(ALM-12055 证书文件即将过期)
  • 2023年第九届数维杯国际大学生数学建模挑战赛
  • 2023亚太地区数学建模竞赛A题B题C题思路+模型+代码
  • 【Go入门】 Go如何使得Web工作
  • CAPL实现CRC8的几种方式
  • 国产化项目改造:使用达梦数据库和东方通组件部署,前后端分离框架
  • C语言结构体
  • [webservice] springboot整合cxf
  • PMCW体制雷达系列文章(4) – PMCW雷达之抗干扰
  • FPGA设计时序约束八、others类约束之Set_Case_Analysis
  • 2-(脏读,不可重复读,幻读 ,mysql5.7以后默认隔离级别)、( 什么是qps,tps,并发量,pv,uv)、(什么是接口幂等性问题,如何解决?)
  • 记录一个困难
  • Nginx 核心配置文 nginx.conf介绍
  • 一文讲明 Spring 的使用 【全网超详细教程】
  • python-opencv 培训课程笔记(2)
  • MatrixOne 支持多样化生态工具
  • 线性变换功能块S_RTI工程上的主要应用
  • 【2021集创赛】基于arm Cortex-M3处理器与深度学习加速器的实时人脸口罩检测 SoC
  • DHCP配置命令
  • 【libGDX】使用ShapeRenderer绘制几何图形
  • Python hashlib 模块详细教程:安全哈希与数据完整性保护