问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

单片机iic总线问题

发布网友 发布时间:2022-04-22 18:32

我来回答

1个回答

热心网友 时间:2023-11-15 20:43

I2C总线理解上的难点就是在于
ACK和NACK的使用上,估计你就没看明白I2C协议。简要的给你说下:ACK的时候,SCL=1,表示时钟拉高,增加Delay是为了等待SDA的数据回传(这时master的SDA是输入态,slave的SDA是输出态,SDA==0
即表示Slave响应正确)。ACK主要出现在Command、Address、Data数据传输时。
而NACK主要是在读数据后,结束位前出现,这时Master的SDA为输出,Slave的SDA为输入,SDA需要输出‘1’,告知Slave即将读操作结束。
反观你的代码,ACK中强加Delay不是不行,但很难做的通用兼容。建议考虑判断Sda状态,同时需要有错误退出机制。
最后,你还是再看下I2C
Specification
吧,另外,I2C总线是OC门,注意这个特点,应用很灵活。
IIC总线的应答信号问题

1、首先IIC通信要分清主机与从机的关系,在主机对从机进行写操作时,一般是在传送完一个数据之后单片机就进入检测应答信号状态:先将两个脚置位SDA=1;SCL=1;然后在一定时间内不断检测SDA脚的电平状态,比如说你弄个循环for(i=255;i>0;i--){..;if(...)break;...}进行不断判断,当SDA的...

51单片机的iic通信问题,求助啊

IIC总线的时序,好像是:最高频率在400KHz。单片机指令的执行时间,速度快,所以要加延时。停止函数,是在SCL=1期间,SDA出现上升,那么SDA先要为0,这个0,要在SCL=0实现。

51单片机模拟IIC总线问题

假设你有两台或者以上的S3C2410,单片机作为主机,然后单片机发送数据,所有S3C接收(接收的前提是他的接收端口上获得IIC的开始信号,你可以选择利用中断进行检测),然后你在软件里可以预先设置好每台S3C的地址,即接收单片机的前8BIT,然后对照地址,一样的话就开始接收接下来的信息,没有就放弃这个通信,这...

如何解决I2C器件死锁的问题?

广州致远电子ARM核心板使用IIC设备时,遇到总线死锁是如何让总线死锁恢复呢,常用方法如下:(1) 尽量选用带复位输人的I2C从器件,从I2C总线死锁产生的原因可以发现I2C总线死锁的一个必要条件是主设备复位了而从设备没有复位。如果从设备选用带复位输入的芯片,将主从设备的复位信号连接在一起,当外部产生...

C51单片机模拟IIC总线,应答函数的疑问

应答是接收设别自动产生的,不一定是从机。在IIC上除了开始,停止和重复开始外,所有数据都在在时钟的低电平变化的,也就是为高后,数据就应该稳定了。所以如果是模拟总线,应先有下降沿,再设为输入,然后读ACK,如果是从机的应答,是自动产生的,是作为数据通信正确的判断标志,为了可靠,是要判断的...

单片机模拟IIC总线的应答信号问题

1.应答信号SDA是在SCL的上升沿变化为0的;2.读操作的应答信号和写操作的应答信号都由从设备驱动。可参考“I2C总线协议规范”,网上搜一下即可。

关于iic总线。看过很多资料,很多都相互矛盾。在主机读取数据之前,是否...

我的理解是,读数据的时候,是从机控制总线,因此必须提前把sda释放(也就是拉高)。否则从机将不能改变总线。sda为1后,主机控制scl=1,然后,从机根据自己要发送的数据选择将sda置为1或0(即在scl=1时,从机改变sda)。而在发送数据时,主机控制总线,在scl=0时,sda被主机改变;scl=1时,sda...

单片机IIC总线,为什么编程时不用定义sda和scl ?reg52的document里面也没...

但不知你是从哪看到的程序,是什么程序?如果是C程序,肯定是有定义的,而这个定义是不在reg52.h 的头文件中的,需要自己来定义的。如果是别人写的程序,那一定是有的,一是:在自己写的头文件中定义的,应该有一个自己写的头文件。二是:可以在主程序的前面用sbit 来定义就行的。

单片机模拟IIc总线通信

scl=0;delay();sda=1;delay();写完数据的停止标志 for(i=0;i<8;i++){ scl=1;delay();k=(k<<1)|sda;scl=0;delay();} return k;} 读取8位数据,即k值,完成后同样要给停止标志

IIC总线的应答信号怎样理解

1、首先IIC通信要分清主机与从机的关系,在主机对从机进行写操作时,一般是在传送完一个数据之后单片机就进入检测应答信号状态:先将两个脚置位 SDA=1;SCL=1;然后在一定时间内不断检测SDA脚的电平状态,比如说你弄个循环for(i=255;i>0;i--){..;if(...)break;...}进行不断判断,当SDA...

单片机做iic从机 c8051单片机iic程序 iic总线有几根线 iic总线挂多个设备接线图 51单片机iic 单片机的iic是什么意思 两个单片机iic通讯 avr单片机iic不行 单片机i2c
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
矿物质机油对车有哪些影响? 明月千里季相思多少诗人望月兴叹杜甫说( ) 明月千里寄相思。”多少诗人望月兴叹。杜甫说 10个精准拉伸动作,帮你改善身体僵硬和协调性 这么柔软修长的女人,男人肯定都爱 请问一个月自学能否过二级VB?怎样学才能事半功倍?? 清肠清肠的食物 找月嫂要注意什么如何找到合适的月嫂 怎么过二级VB 全国计算机二级VB考试应该怎么复习? I2C总线有哪些优点 涓这个字怎么读 I2C芯片是如何工作,在控制系统中起什么作用 I2C总线是什么?求解 什么叫I2C总线?(I方C总线) 什么是I2C管理总线 I2c总线一般拿来实现什么功能? 什么是I2C总线控制电路? 西红柿中富含什么 番茄是皮的营养多还是肉的营养多 西红柿中含有哪些维生素 西红柿含有什么营养物质 西红柿中所含的元素 西红柿中包含哪些营养成分? 番茄中含什么样的成分? 生吃西红柿有营养吗? 番茄含有哪些营养成分 简单介绍西红柿 新鲜西红柿中不含有( )A 维生素B1B 维生素B2C 尼克酸D 烟酸 新鲜西红柿中不含有( )A 维生素B1B 维生素B2C 尼克酸D 烟酸 i2c总线时钟如何控制字位读写 I2c控制多个 如何避免误动作 ic总线和 i2c总线区别 i2c的数据线只是传输控制命令吗 关于预防艾滋病的作文 600字左右 有关正视爱滋病的高中作文八百字 求一篇关于艾滋病反歧视的文章 求《关注艾滋病患者,拒绝歧视》的文章! 反歧视艾滋病的2000字演讲稿 以反对歧视艾滋病人为题写一篇作文 珍惜人生_精选作文5篇 以“关爱生命,消除歧视”为话题的作文 一篇有关艾滋病的作文,要300字的 爱滋病观后感作文600 以艾滋病为话题写篇作文 远离艾滋病的作文600字左右 关于艾滋病的作文400字!快啊! 作文关于艾滋病的感唔600字左右。 120词英语作文《我们不应该歧视艾滋病病人》 爱滋病文章