没有合适的资源?快使用搜索试试~ 我知道了~
首页【STM32】HAL库 STM32CubeMX教程十二—IIC(读取AT24C02 )
前言: 本系列教程将HAL库与STM32CubeMX结合在一起讲解,使您可以更快速的学会各个模块的使用 在之前的标准库中,STM32的硬件IIC非常复杂,更重要的是它并不稳定,所以都不推荐使用。 但是在我们的HAL库中,对硬件IIC做了全新的优化,使得之前软件IIC几百行代码,在HAL库中,只需要寥寥几行就可以完成 那么这篇文章将带你去感受下它的优异之处 这可能是目前关于STM32CubeMX的硬件iic 讲的最全面和详细的一篇文章之一了 所用工具: 1、芯片: STM32F103ZET6 2、STM32CubeMx软件 3、IDE: MDK-Keil软件 4、STM32F1xx/STM32
资源详情
资源评论
资源推荐
【【STM32】】HAL库库 STM32CubeMX教程十二教程十二—IIC(读取读取AT24C02 )
前言:前言:
本系列教程将HAL库与STM32CubeMX结合在一起讲解,使您可以更快速的学会各个模块的使用
在之前的标准库中,STM32的硬件IIC非常复杂,更重要的是它并不稳定并不稳定,所以都不推荐使用。
但是在我们的但是在我们的HAL库中,对硬件库中,对硬件IIC做了全新的优化,使得之前软件做了全新的优化,使得之前软件IIC几百行代码,在几百行代码,在HAL库中,只需要寥寥几行就可以完成库中,只需要寥寥几行就可以完成 那么这篇文章将带你去感受下它的优异之处
这可能是目前关于STM32CubeMX的硬件iic 讲的最全面和详细的一篇文章之一了
所用工具:所用工具:
1、芯片: STM32F103ZET6
2、STM32CubeMx软件
3、IDE: MDK-Keil软件
4、STM32F1xx/STM32F4xxHAL库
5、IIC: 使用硬件IIC1
知识概括:知识概括:
通过本篇博客您将学到:
IIC的基本原理
STM32CubeMX创建IIC例程
HAL库IIC函数库
AT24C02 芯片原理
IIC 简介简介
IIC(Inter--Integrated Circuit)总线总线是一种由NXP(原PHILIPS)公司开发的两线式串行总线,用于连接微控制器及其外围设备。多用于主控制器和从器件间的主从通信,在小数据量
场合使用,传输距离短,任意时刻只能有一个主机等特性。
在 CPU 与被控 IC 之间、IC 与 IC 之间进行双向传送,高速 IIC 总线一般可达 400kbps 以上。
PS: 这里要注意这里要注意IIC是为了与低速设备通信而发明的,所以是为了与低速设备通信而发明的,所以IIC的传输速率比不上的传输速率比不上SPI
IIC的物理层IIC的物理层
IIC一共有只有两个总线:一共有只有两个总线: 一条是双向的数据线SDA,一条是串行时钟线SCL一条是双向的数据线SDA,一条是串行时钟线SCL
所有接到I2C总线设备上的串行数据SDA都接到总线的SDA上,各设备的时钟线SCL接到总线的SCL上。I2C总线上的每一个设备都对应一个唯一的地址。
关于IIC的讲解,已经单独整理了一篇文章:
《IIC原理超详细讲解—值得一看》。
如果对IIC还不是太了解的朋友请移步到这篇文章中
IIC起始信号和终止信号:起始信号和终止信号:
起始信号起始信号:SCL保持高电平,SDA由高电平变为低电平后,延时(>4.7us),SCL变为低电平。
停止信号停止信号:SCL保持高电平。SDA由低电平变为高电平。
数据有效性数据有效性
IIC信号在数据传输过程中,当信号在数据传输过程中,当SCL=1高电平时,数据线高电平时,数据线SDA必须保持稳定状态,不允许有电平跳变,只有在时钟线上的信号为低电平期间,数据线上的高电平或低电平状态才允许变必须保持稳定状态,不允许有电平跳变,只有在时钟线上的信号为低电平期间,数据线上的高电平或低电平状态才允许变
化。化。
SCL=1时时 数据线数据线SDA的任何电平变换会看做是总线的起始信号或者停止信号。的任何电平变换会看做是总线的起始信号或者停止信号。
也就是在IIC传输数据的过程中,SCL时钟线会频繁的转换电平,以保证数据的传输
应答信号应答信号
每当主机向从机发送完一个字节的数据,主机总是需要等待从机给出一个应答信号,以确认从机是否成功接收到了数据,
应答信号:主机应答信号:主机SCL拉高,读取从机拉高,读取从机SDA的电平,为低电平表示产生应答的电平,为低电平表示产生应答
应答信号为低电平时,规定为有效应答位(应答信号为低电平时,规定为有效应答位(ACK,简称应答位),表示接收器已经成功地接收了该字节;,简称应答位),表示接收器已经成功地接收了该字节;
应答信号为高电平时,规定为非应答位(应答信号为高电平时,规定为非应答位(NACK),一般表示接收器接收该字节没有成功。),一般表示接收器接收该字节没有成功。
每发送一个字节每发送一个字节(8个bit)在一个字节传输的8个时钟后的第九个时钟期间,接收器接收数据后必须回一个ACK应答信号给发送器,这样才能进行数据传输。
应答出现在每一次主机完成8个数据位传输后紧跟着的时钟周期,低电平0表示应答,1表示非应答,
这里我们仅介绍基于这里我们仅介绍基于AT24C02的的IIC通信通信
以以AT24C02为例子为例子
24C02是一个2K Bit的串行EEPROM存储器(掉电不丢失),内部含有256个字节。在24C02里面有一个8字节的页写缓冲器。
A0,A1,A2:硬件地址引脚
WP:写保护引脚,接高电平只读,接地允许读和写
SCL和SDA:IIC总线
可
以看出对于不同大小的24Cxx,具有不同的从器件地址。由于24C02为2k容量,也就是说只需要参考图中第一行的内容:
芯片的寻址:
AT24C设备地址为如下,前四位固定为1010,A2~A0为由管脚电平。为由管脚电平。AT24CXX EEPROM Board模块中默认为接地。所以模块中默认为接地。所以A2~A0默认为默认为000,最后一位表示读写操作。所以
AT24Cxx的读地址为0xA1,写地址为0xA0。
也就是说如果是
写写24C02的时候的时候,从器件地址为从器件地址为10100000((0xA0););
读读24C02的时候,从器件地址为的时候,从器件地址为10100001((0xA1)。)。
片内地址寻址:
芯片寻址可对内部芯片寻址可对内部256B中的任一个进行读中的任一个进行读/写操作,其寻址范围为写操作,其寻址范围为00~FF,共,共256个寻址单位。个寻址单位。
对应的修改 A2A1A0 三位数据即可
向向AT24C02中写数据中写数据
操作时序:
MCU先发送一个开始信号先发送一个开始信号(START)启动总线启动总线
接着跟上首字节,发送器件写操作地址接着跟上首字节,发送器件写操作地址(DEVICE ADDRESS)+写数据写数据(0xA0)
等待应答信号等待应答信号(ACK)
发送数据的存储地址。发送数据的存储地址。24C02一共有一共有256个字节的存储空间,地址从个字节的存储空间,地址从0x00~0xFF,想把数据存储,想把数据存储>在哪个位置,此刻写的就是哪个地址。在哪个位置,此刻写的就是哪个地址。
发送要存储的数据第一字节、第二字节、发送要存储的数据第一字节、第二字节、…注意在写数据的过程中,注意在写数据的过程中,E2PROM每个字节都会每个字节都会>回应一个回应一个“应答位应答位0”,老告诉我们写,老告诉我们写E2PROM数据成功,如果没有回应答位,说明写入数据成功,如果没有回应答位,说明写入
不成功。不成功。
发送结束信号(发送结束信号(STOP)停止总线)停止总线
注意:
在写数据的过程中,每成功写入一个字节,在写数据的过程中,每成功写入一个字节,E2PROM存储空间的地址就会自动加存储空间的地址就会自动加1,当加到,当加到0xFF后,再写一个字节,地址就会溢出又变成后,再写一个字节,地址就会溢出又变成0x00。。
写数据的时候需要注意,E2PROM是先写到缓冲区,然后再“搬运到”到掉电非易失区。所以这个过程需要一定的时间,AT24C02这个过程是不超过5ms!
所以,当我们在写多个字节时,写入一个字节之后,再写入下一个字节之前,必须延时当我们在写多个字节时,写入一个字节之后,再写入下一个字节之前,必须延时5ms才可以才可以
从从AT24C02中读数据中读数据
读当前地址的数据读当前地址的数据
2、读随机地址的数据、读随机地址的数据
剩余10页未读,继续阅读
weixin_38734200
- 粉丝: 6
- 资源: 914
上传资源 快速赚钱
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
最新资源
- stc12c5a60s2 例程
- Android通过全局变量传递数据
- c++校园超市商品信息管理系统课程设计说明书(含源代码) (2).pdf
- 建筑供配电系统相关课件.pptx
- 企业管理规章制度及管理模式.doc
- vb打开摄像头.doc
- 云计算-可信计算中认证协议改进方案.pdf
- [详细完整版]单片机编程4.ppt
- c语言常用算法.pdf
- c++经典程序代码大全.pdf
- 单片机数字时钟资料.doc
- 11项目管理前沿1.0.pptx
- 基于ssm的“魅力”繁峙宣传网站的设计与实现论文.doc
- 智慧交通综合解决方案.pptx
- 建筑防潮设计-PowerPointPresentati.pptx
- SPC统计过程控制程序.pptx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0