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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • idea 2021.03.02 激活码(最新序列号破解)

    idea 2021.03.02 激活码(最新序列号破解),https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月18日
    441
  • Kafka 集群搭建

    Kafka 集群搭建Kafka集群搭建

    2022年4月29日
    23
  • Opencv 中 waitkey()& 0xFF,“0xFF”的作用解释

    Opencv 中 waitkey()& 0xFF,“0xFF”的作用解释这几日学习OpenCV,刚碰到这个表达式时,对于0xFF的作用不太理解,难道下面两个语句还有区别?(Esc的ASCII码为27,即判断是否按下esc键)ifcv2.waitkey(30)==27ifcv2.waitkey(30)&0xff==27疑惑首先&运算即“and”运算。其次0xFF是16进制数,对应的二进制数为11111111。然后cv2….

    2022年6月19日
    30
  • ssti模板注入 命令执行_access注入绕过

    ssti模板注入 命令执行_access注入绕过http://xmctf.top:8962/?name={{%22%22[%22\x5f\x5fclass\x5f\x5f%22][“\x5F\x5Fbase\x5F\x5F”][“\x5F\x5Fsubclasses\x5F\x5F”]()[233][“\x5F\x5Finit\x5F\x5F”][“\x5F\x5Fglobals\x5F\x5F”][“\x5F\x5Fbuiltins\x5F\x5F”][‘eval’](“\x5F\x5Fimport\x5F\x5F(‘os’))”)}}

    2022年9月1日
    4
  • c++迭代器遍历list集合_list迭代器遍历删除对象

    c++迭代器遍历list集合_list迭代器遍历删除对象迭代器可用于遍历ArrayList。如果ArrayList中有更多元素,则hasNext()方法返回true,否则返回false。next()方法返回ArrayList中的下一个元素,如果没有下一个元素,则引发异常NoSuchElementException。演示该程序的程序如下。示例importjava.util.ArrayList;importjava.util.Iterator;publ…

    2022年9月27日
    3
  • ASP.NET的命名空间

    ASP.NET的命名空间ASP.NET的命名空间   命名空间(namespace)   ASP.NET中的各种语言使用的一种代码组织的形式。   通过命名空间来分类,区别不同的代码功能,也是ASP.NET中所有类的完全名称的一部分。   命名空间不过是数据类型的一种组合方式,但是,命名空间中所有数据类型的名称,都会自动加上该命名空间的名字作为前缀。 命名空间还可以相互嵌套

    2022年7月11日
    16

发表回复

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

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