STM32中IIC协议[通俗易懂]

IIC协议:接收器和发送器:物理层:SCL–时钟总线SDA–数据总线开始条件:SCL高电平,SDA由高变低停止条件:SCL高电平,SDA由低变高主机:用来产生SCL(发送数据和接收数据)从机:(发送数据和接收数据)总线空闲态:SDA为高电平(没有设备发送开始条件)写:1.主机发送开始条件2.发送从机地址(7位)+写

大家好,又见面了,我是你们的朋友全栈君。IIC协议:


接收器和发送器:


物理层:SCL — 时钟总线


SDA — 数据总线


开始条件:SCL高电平,SDA由高变低


停止条件:SCL高电平,SDA由低变高


主机:用来产生SCL(发送数据和接收数据)


从机:(发送数据和接收数据)


总线空闲态:SDA为高电平(没有设备发送开始条件)


写:


1.主机发送开始条件


2.发送从机地址(7位 )+ 写(0)


3.从机 会产生一个应答信号(一个CLK下,把SDA拉低)


4.主机得到应答信号,发送8位数据。


5.从机 会产生一个应答信号


6.重复 4.5 过程,直到主机发送停止条件


读:


1.主机发送开始条件


2.发送从机地址(7位)+读(1)


3.从机 会产生一个应答信号(一个CLK下,SDA拉低)


4.从机给主机发送8位数据


5.主机给从机发送 应答


6.从机得到应答,接着发送8位数据。


7.重复5.6过程,直到主机不发送应答信号和产生停止信号


2.AT24C02


E2PROM:存储芯片 — 容量小,可以随机读和写,掉电不丢失


大小:2K(bit)/8=256字节 


寻址:地址总线


串行:


并行:1.多大容量 — 多少根


     2.容量分为块 — 


     3.容量分为行和列 —  大容量ROM


256字节=32页 *8


写:


随机写:


页写:


注意:(页写–只能写一页)


读:


当前地址读:


随机读:


顺序读:


注意:
1.读过程,发两次地址(从机地址)


2.要发送停止信号前,主机不能发送应答信号


STM32:


读写 — 事件(每个过程都产生一个事件)


根据事件来判断操作过程是否完成。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/129629.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 查找(二)简单清晰的B树、Trie树具体解释

    查找(二)简单清晰的B树、Trie树具体解释

    2021年11月13日
    50
  • Android ImageView 的scaleType 属性「建议收藏」

    Android ImageView 的scaleType 属性「建议收藏」AndroidImageView的scaleType属性 枚举值 ImageView.ScaleType CENTER 使图像在视图中居中,但不执行缩放。 ImageView.ScaleType CENTER_CROP 均匀缩放图像(保持图像的纵横比),使图像的两个尺寸(宽度和高度)等于或大于视图的相应尺寸(减去填充)。 ImageView.ScaleType

    2022年6月17日
    24
  • springboot整合kafka入门

    springboot整合kafka入门springboot整合kafka入门kafka基本概念本机安装kafka测试安装kafka(mac下)本机测试kafkaspringboot整合kafka(IDEA)测试kafka基本概念producer:生产者,负责发布消息到kafkacluster(kafka集群)中。生产者可以是web前端产生的pageview,或者是服务器日志,系统CPU、memory等。consumer:消费者,每个consumer属于一个特定的consuergroup(可为每个consumer指定group

    2025年6月12日
    4
  • Python中if __name__ == ‘__main__‘:的作用和原理「建议收藏」

    Python中if __name__ == ‘__main__‘:的作用和原理「建议收藏」if__name__==’__main__’:的作用一个python文件通常有两种使用方法,第一是作为脚本直接执行,第二是import到其他的python脚本中被调用(模块重用)执行。因此if__name__==’main’:的作用就是控制这两种情况执行代码的过程,在if__name__==’main’:下的代码只有在第一种情况下(即文件作为脚本直接执行)才会…

    2022年6月1日
    31
  • Bulk Insert命令具体

    Bulk Insert命令具体

    2021年12月7日
    38
  • mysql下载和安装详细教程

    mysql下载和安装详细教程参考链接:https://blog.csdn.net/zhujialiang18/article/details/79780131https://www.jb51.net/article/158587.htm下载安装包链接:一.MySQL的下载与安装1.下载MySQL:https://dev.mysql.com/downloads/(官网),这里我们选择社区版,如下图接下来我们选择下…

    2022年6月11日
    42

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号