首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >ESP32-I2C-Arduino

ESP32-I2C-Arduino

作者头像
云深无际
发布于 2020-12-15 10:02:17
发布于 2020-12-15 10:02:17
3K00
代码可运行
举报
文章被收录于专栏:云深之无迹云深之无迹
运行总次数:0
代码可运行

I2C (Inter-Integrated Circuit) 总线用于使 ESP32 和多个外部设备进行通信。多个外部设备可以共用一个 I 2C 总 线。

I 2C 具有以下几个特点。

• 支持主机模式以及从机模式

• 支持多主机多从机通信

• 支持标准模式 (100 kbit/s)

• 支持快速模式 (400 kbit/s)

• 支持 7-bit 以及 10-bit 寻址

• 支持关闭 SCL 时钟实现连续数据传输

• 支持可编程数字噪声滤波功能

i2C 是一个两线总线,由 SDA 线和 SCL 线构成。这些线设置为漏极开漏输出。因此,I2C 总线上可以挂载多个 外设,通常是和一个或多个主机以及一个或多个从机。主机通过总线访问从机。 主机发出开始信号,则通讯开始:在 SCL 为高电平时拉低 SDA 线,主机将通过 SCL 线发出 9 个时钟脉冲。前 8 个脉冲用于按位传输,该字节包括 7-bit 地址和 1 个读写位。如果从机地址与该 7-bit 地址一致,那么从机可 以通过在第 9 个脉冲上拉低 SDA 线来应答。接下来,根据读/写标志位,主机和从机可以发送/接收更多的数据。 根据应答位的逻辑电平决定是否停止发送数据。在数据传输中,SDA 线仅在 SCL 线为低电平时才发生变化。当 主机完成通讯,回发送一个停止标志:在 SCL 为高电平时,拉高 SDA 线。

ESP32 I2C 控制器可以处理 I2C 协议,腾出处理器核用于其它任务。

这里用的是,TT扩展件

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
项目使用了 223345 字节,占用了 (17%) 程序存储空间。最大为 1310720 字节。
全局变量使用了16132字节,(4%)的动态内存,余留311548字节局部变量。最大为327680字节。
esptool.py v2.6
Serial port COM5
Connecting....
Chip is ESP32D2WDQ5 (revision 1)
Features: WiFi, BT, Dual Core, Embedded Flash, VRef calibration in efuse, Coding Scheme None
MAC: b4:e6:2d:80:e8:45
Uploading stub...
Running stub...
Stub running...
Changing baud rate to 921600
Changed.
Configuring flash size...
Auto-detected Flash size: 2MB
Compressed 8192 bytes to 47...

Writing at 0x0000e000... (100 %)
Wrote 8192 bytes (47 compressed) at 0x0000e000 in 0.0 seconds (effective 10923.0 kbit/s)...
Hash of data verified.
Flash params set to 0x021f
Compressed 15856 bytes to 10276...

Writing at 0x00001000... (100 %)
Wrote 15856 bytes (10276 compressed) at 0x00001000 in 0.1 seconds (effective 1048.3 kbit/s)...
Hash of data verified.
Compressed 223456 bytes to 115390...

Writing at 0x00010000... (12 %)
Writing at 0x00014000... (25 %)
Writing at 0x00018000... (37 %)
Writing at 0x0001c000... (50 %)
Writing at 0x00020000... (62 %)
Writing at 0x00024000... (75 %)
Writing at 0x00028000... (87 %)
Writing at 0x0002c000... (100 %)
Wrote 223456 bytes (115390 compressed) at 0x00010000 in 1.6 seconds (effective 1118.7 kbit/s)...
Hash of data verified.
Compressed 3072 bytes to 118...

Writing at 0x00008000... (100 %)
Wrote 3072 bytes (118 compressed) at 0x00008000 in 0.0 seconds (effective 3510.9 kbit/s)...
Hash of data verified.

Leaving...
Hard resetting via RTS pin...

选择对应的TT扩展件

这个安装的器件包在文档内

也就是说,你不管装多少Arduino,库装一次就好

这个地方有一个编译的错误,我要提交一次合并代码

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-12-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 云深之无迹 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
VL53L0X激光测距传感器.ESP32使用篇
将ESP32与Arduino IDE搭配使用时,默认的I2C引脚为 GPIO 22 (SCL)和 GPIO 21 (SDA)
云深无际
2020/12/15
3.3K0
VL53L0X激光测距传感器.ESP32使用篇
BSP基础-GPIO I2C PMIC 简介
GPIO介绍GPIO:General Purpose Input Output (通用输入/输出)GPIOs are I/O pins that provide peripheral connections to the MSM™ chipset.GPIOs can be configured as a general purpose I/O pin or alternative functions.GPIOs can act as an interrupt source.In a multiprocess
Abalone
2022/07/14
2K0
BSP基础-GPIO I2C PMIC 简介
一文搞懂I2C总线通信
本来不打算写这篇文章,因为网上关于I2C总线通信的资料很多很全。但是最近刚换工作,主要做驱动开发,第一个驱动就是I2C通信,想了想还是结合网上的资料再整理下思路,方便今后的查阅和温习。
不脱发的程序猿
2022/04/13
2.7K0
一文搞懂I2C总线通信
i2c时序图的详细讲解[通俗易懂]
  SCL为高电平的时候,SDA由高电平向低电平跳变。结束信号:SCL为高电平的时候,SDA由低电平向高电平跳变。
全栈程序员站长
2022/07/29
11.7K0
i2c时序图的详细讲解[通俗易懂]
基于 FPGA 的模拟 I²C协议设计(附代码)
今天给大侠带来基于FPGA的 模拟 I²C 协议设计,包括 I²C 总线解析以及模拟 I²C 接口程序的基本框架、I²C 协议的具体实现、程序的仿真与测试。篇幅较长,话不多说,上货。
FPGA技术江湖
2025/07/27
2310
基于 FPGA 的模拟 I²C协议设计(附代码)
你不懂的这都有UART、I2C、SPI、TTL、RS232、RS422、RS485、CAN、USB、SD卡、1-WIRE
在单片机开发中,UART、I2C、RS485等普遍在用,对它们的认识可能模棱两可,今天我们就来好好的梳理一下。本文较长,同样干货满满,强烈建议收藏。
单片机技术宅
2021/11/02
7.9K0
IIC协议长文详解-解惑版
嵌入式的世界里面有几个经典的协议:IIC,SPI,UART,CAN,1-WIRE,这些协议都是低速的,而且而是必须要掌握的内容,经常在使用和面试中出现。
云深无际
2024/08/20
5770
IIC协议长文详解-解惑版
万变不离其宗之I2C总线要点总结
[导读] 前文总结了单片机串口个人认为值得注意的一些要点,本文来梳理一下 I2C 总线的一些要点。这个题目有点大,本文对于 I2C 其实很多地方也没整清楚,只为了与前文形成系列,如果大家有补充欢迎留言。说了些闲话,进入正题吧。
wenzid
2021/08/13
2.7K0
万变不离其宗之I2C总线要点总结
i2c总线的通信协议(i2c通信协议原理)
I2C(Inter-integrated Circuit)总线支持设备之间的短距离通信,用于处理器和一些外围设备之间的接口,它只需要两根信号线来完成信息交换。I2C最早是飞利浦在1982年开发设计并用于自己的芯片上,一开始只允许100kHz、7-bit标准地址。1992年,I2C的第一个公共规范发行,增加了400kHz的快速模式以及10-bit扩展地址。在I2C的基础上,1995年Intel提出了“System Management Bus” (SMBus),用于低速设备通信,SMBus 把时钟频率限制在10kHz~100kHz,但I2C可以支持0kHz~5MHz的设备:普通模式(100kHz即100kbps)、快速模式(400kHz)、快速模式+(1MHz)、高速模式(3.4MHz)和超高速模式(5MHz)。
全栈程序员站长
2022/07/29
2.2K0
i2c总线的通信协议(i2c通信协议原理)
ESP32 DEVKILTv1(devkitv1)开发板全解析!!!(搭载芯片为ESP32D0WDQ6)
平时去淘宝买ESP32的开发板,20出头大概率是这个板子,那我们这篇就来完完整整的将芯片进行挖掘,解决我们的引脚配置,硬件设置等等相关的问题,以后不再纠缠相关的问题.
云深无际
2021/07/23
17.2K5
ESP32 DEVKILTv1(devkitv1)开发板全解析!!!(搭载芯片为ESP32D0WDQ6)
【STM32】HAL库 STM32CubeMX教程十二—IIC(读取AT24C02 )
本系列教程将HAL库与STM32CubeMX结合在一起讲解,使您可以更快速的学会各个模块的使用
全栈程序员站长
2022/06/27
5.1K0
【STM32】HAL库 STM32CubeMX教程十二—IIC(读取AT24C02 )
I2C spec 总结
速度由 SCL 决定,不同模式对上升沿的要求不一样,上升沿斜率受上拉电阻和等效电容影响。
Jasonangel
2022/10/25
1.8K0
I2C spec  总结
一文带你读懂I2C协议
I2C协议是一个允许多个 “从机” 芯片和一个或更多的 “主机” 芯片进行通讯的协议。它就像串行外设接口(SPI)一样,只能用于短距离通信。又像异步串行接口(如RS232或UART), 只需要两根信号线来交换信息。
AI 电堂
2022/12/08
22.9K0
一文带你读懂I2C协议
串口通信系列(二)、I2C通信方式
IIC全称为Inter Integrated Circuit:两根通信线:一根时钟线SCL一根数据线SDA,只有一根数据线,所以是半双工通信。数据的传输速率在标准模式下可达100kbit/s,在快速模式下可达400kbit/s,高速模式下可达3.4Mbit/s。
根究FPGA
2020/06/30
4.2K0
串口通信系列(二)、I2C通信方式
IIC通信协议详解
IIC:两线式串行总线,它是由数据线SDA和时钟线SCL构成的串行总线,可发送和接收数据。
全栈程序员站长
2022/06/29
3.6K0
IIC通信协议详解
STM32通信模拟 I2C
I²C(Inter-Integrated Circuit),常读作“I方C”,它是一种多主从架构串行通信总线。在1980年由飞利浦公司设计,用于让主板、嵌入式系统或手机连接低速周边设备。如今在嵌入式领域是非常常见通信协议,常用于MPU/MCU与外部设备连接通信、数据传输。
韦东山
2022/05/09
1.2K0
STM32通信模拟 I2C
STM32的I2C框图详解及通讯过程
  如果我们直接控制STM32 的两个GPIO 引脚,分别用作SCL 及SDA,按照上述信号的时序要求,直接像控制LED 灯那样控制引脚的输出(若是接收数据时则读取SDA 电平),就可以实现I2C 通讯。同样,假如我们按照USART 的要求去控制引脚,也能实现USART通讯。所以只要遵守协议,就是标准的通讯,不管您如何实现它,不管是ST 生产的控制器还是ATMEL 生产的存储器, 都能按通讯标准交互。
用户6754675
2019/12/20
2.1K0
【通信专栏】STM32单片机/I2C通信(上篇)
想来单片机这块儿除了USART串口通信外,常见的便是I2C通信了,因为I2C通信 硬件连接简单,可扩展性强,但是这种硬件连线的简洁,是以协议的复杂来弥补的。I2C通信是一种半双工通信,也就是可以双向传输数据但不能同时进行。
周旋
2020/06/04
2.2K0
【通信专栏】STM32单片机/I2C通信(上篇)
详述I2C总线协议、时序,入门不再是难事
在生活中,经常会碰到设备掉电的情况,像手机,智能手环,电脑等等;但是存储的东西不会丢失,比如电话号码,短信消息,记事本,微信,QQ信息等等均会被保存下来;恢复出厂设置后,这些东西才会消失;
杨源鑫
2021/07/07
3.1K0
详述I2C总线协议、时序,入门不再是难事
STM32入门开发: 介绍IIC总线、读写AT24C02(EEPROM)(采用模拟时序)
IIC总线: STM32本身支持IIC硬件时序的,本文采用的是模拟时序,下篇文章就介绍配置STM32的IIC硬件时序读写AT24C02和AT24C08。
DS小龙哥
2022/01/12
2.3K0
STM32入门开发: 介绍IIC总线、读写AT24C02(EEPROM)(采用模拟时序)
相关推荐
VL53L0X激光测距传感器.ESP32使用篇
更多 >
交个朋友
加入行业数字化趋势交流群
解读转型政策方向 参考企业落地案例
加入讨论
的问答专区 >
    领券
    一站式MCP教程库,解锁AI应用新玩法
    涵盖代码开发、场景应用、自动测试全流程,助你从零构建专属AI助手
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档