【MicroPython ESP32】I2C功能使用介绍


  • 本示例基于Thonny平台开发。
  • 参考官方文档:http://docs.micropython.org/en/latest/esp32/quickref.html#software-i2c-bus

硬件I2C总线

有两个标识符为01I2C硬件外设。任何可用的支持输出的引脚都可以用于SCL和SDA,但下面给出了默认值。

I2C(0) I2C(0)
SCL 18 25
SDA 19 26
  • 默认的I2C引脚引用方法:
from machine import Pin, I2C
i2c = I2C(0) # 默认的i2c0:scl:18 sda:19
i2c = I2C(1) # 默认的i2c1:scl:25 sda:26
等价于:
from machine import Pin, I2C
i2c = I2C(scl=Pin(18), sda=Pin(19),freq=400000)
i2c = I2C(scl=Pin(25), sda=Pin(26),freq=400000)
  • 也可以自定义切换指定引脚
from machine import I2C,
i2c = I2C(1, scl=Pin(5), sda=Pin(4), freq=400000)

软件I2C总线

软件 I2C(使用 bit-banging)适用于所有具有输出功能的引脚,并通过machine.SoftI2C类访问:

  • 引用方式如下:
from machine import SoftI2C
i2c = SoftI2C(scl=Pin(22),sda=Pin(23),freq=100000)

测试示例这里给出I2C设备地址扫描程序


from utime import sleep # 延时函数在utime库中
from machine import Pin
#from machine import I2C,
from machine import SoftI2C
#i2c = I2C(scl=Pin(18), sda=Pin(19),freq=400000) # Hardware I2C引用
#i2c = I2C(1, scl=Pin(5), sda=Pin(4), freq=400000) # 自定义切换引脚
i2c = SoftI2C(scl=Pin(22),sda=Pin(23),freq=100000) # softi2c引用
led = Pin(2,Pin.OUT)
#i2c = I2C(1)if __name__ == '__main__':while True:             # 无限循环print("helloworld")  # 打印"helloworld"字串到console中sleep(5)      # 打印完之后休眠1秒print('Scan i2c bus...')devices = i2c.scan()if len(devices) == 0:print("No i2c device !")else:print('i2c devices found:',len(devices))for device in devices:print("Decimal address: ",device," | Hexa address: ",hex(device))led.value(led.value()^1)

【MicroPython ESP32】I2C功能使用介绍相关推荐

  1. 使用ESP32 MicroPython I2C功能读取 BH1750光度传感器模块数据

    简 介: 使用ESP32读取BH1750的光度传感器的数据.但是最终不知道甚么原因,所读取的数据都是0 ? 后面通过证明,说明在原来进行I2C写的时候出现了语法错误. 关键词: BH1750,ESP3 ...

  2. 【MicroPython ESP32】ssd1306驱动0.96“I2C屏幕cube3D图形显示

    [MicroPython ESP32]ssd1306驱动0.96"I2C屏幕cube3D图形显示 cube3D效果 原例程最早在一个Arduino ssd1306 i2c库的示例中可以找到这 ...

  3. 【MicroPython ESP32】ssd1306驱动0.96“I2C屏幕+mpu6050图形控制

    [MicroPython ESP32]ssd1306驱动0.96"I2C屏幕+mpu6050图形控制 效果演示 随着mpu6050模块的移动,oled屏幕矩形线框内的小方块也随对应的方向移动 ...

  4. micropython开发idethonny_ESP32 Micropython开发利器Thonny IDE介绍

    本帖最后由 topdog 于 2020-5-4 17:21 编辑 乐鑫公司的ESP32-WROVER-B具有一个4MB外部SPI flash和一个额外的8MB SPI伪静态RAM (PSRAM).Bo ...

  5. micropython esp32驱动舵机_关于micropython ESP32的MQTT通讯方式控制舵机

    首先我们的前提是实践过我曾经写的关于micropython ESP32+PCA9685 舵机转速控制[https://blog.csdn.net/mrjiale/article/details/818 ...

  6. 【MicroPython ESP32】手动配网和wifi信息保存示例

    [MicroPython ESP32]手动配网和wifi信息保存示例 本示例基于Thonny平台开发. 入网演示 配网机制 ESP32 Micropython运行后,首先从目录下读取json配置文件信 ...

  7. Micro:bit - 功能引脚介绍

    Micro:bit - 功能引脚介绍 基本介绍 Micro:bit的IO口,主要包括了GPIO,ADC,DAC,IIC,SPI,PWM等.具体详细介绍可以参考Micro:bit官网硬件介绍&m ...

  8. 自编译 micropython ESP32固件指南以及16MB固件分享

    自编译 micropython ESP32固件攻略以及16MB/8MB固件分享 本教程是连续奋斗了好几天才走向编译成功的.一路都是采坑过来的,为了后面学习者少走弯路少采坑的原则,这里将分享microp ...

  9. Micropython ESP32驱动CH455控制4位数码管

    Micropython ESP32驱动CH455控制4位数码管 1.硬件 CH455驱动4位共阴数码管的原理图如下所示. ESP32-S模块,用GPIO4作为SCL和GPIO16作为SDA. 2.软件 ...

最新文章

  1. Html5 History API解析
  2. Windows8 Metro开发 (04) : 保存/读取本地应用程序设置
  3. 互联网广告系统综述一生态圈
  4. 缓存三大问题及解决方案
  5. 重温Observer模式--热水器·改(转载)
  6. iOS中常见的6种传值方式,UIPageViewController
  7. c语言给定一个非空整数数组_C程序检查给定整数的所有位是否为一(1)
  8. IT中一些常见英汉互译
  9. Aurelia —— 类似 AngularJS 的 JavaScript 框架
  10. 李迅雷+老龄化下中青年人消费心态的变化的角度来看未来十倍股
  11. C语言使用信号量(Linux)
  12. 使用谷歌浏览器出现插件未就绪以及CLodop云打印服务(localhost本地)未安装启动!请下载安装包!
  13. RPLIDAR A1 slam建图
  14. aspnetpager 详解 (转)
  15. 从计算机向外接硬盘传输照片,如何将iPhone照片移动到外部硬盘驱动器
  16. 冯诺依曼体系结构示意图
  17. linux怎么sftp传文件,如何使用Linux SFTP命令传输文件
  18. python 单行if_python3绘图程序教学:单行If判断式(十三)
  19. 思科交换机使用TFTP工具备份配置和上传配置
  20. 中学计算机课注意事项,教育信息技术在初中物理课堂教学中的优点与注意事项...

热门文章

  1. python如何将数据写入excel_使用python将数据写入excel
  2. java开发一个简单的通讯录
  3. Android开发实用小技巧九——内嵌WebView的使用(内置浏览器)
  4. vue webapp之music(六)利用axios与后端接口代理请求歌单推荐数据
  5. uniapp添加阿里字体图标库图标
  6. 华为海思 hikey970 详细介绍
  7. js-xlsx 读取Excel解析
  8. DeprecationWarning: Seeding based on hashing is deprecated since Python 3.9
  9. ROC曲线和PR曲线
  10. 电脑快捷操作方式大全