找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 4149|回复: 1
打印 上一主题 下一主题
收起左侧

关于单片机IIC总线模拟起始和终止信号的问题!

[复制链接]
跳转到指定楼层
楼主
ID:404479 发表于 2018-11-30 14:03 来自手机 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
我搞不懂,模拟终止信号为什么SCL时钟线电平为什么要拉低,按道理来说,模拟起始信号和终止信号都是时钟线电平处于高电平状态,然后变幻的是数据线sda,起始是由高到低,终止是由低到高过程中,不是说时钟信号都保持高电平吗?如图,为什么模拟终止信号时,需要将时钟电平拉低,要知道,模拟起始和终止信号时,无论时钟线的电平是高还是低,数据线的电平都可以任意变化的!起始信号我能理解,我就搞不懂为什么偏偏模拟终止信号,要去将时钟电平拉低在拉高,我不管时钟电平可以吗?比如我这样:

单片机源程序:

void  aaa()
{
     SCL=1;     //首先时钟为高电平状态下
     SDA=0;    //终止信号先低后高
     delay(200);  //低电平延时5us
     SDA=1;       //终止信号先低后高
     delay(200);   //高电平延时5us
}

     

      

Screenshot_20181130-035009.png (78.46 KB, 下载次数: 74)

Screenshot_20181130-035009.png

Screenshot_20181130-035029.png (111.27 KB, 下载次数: 77)

Screenshot_20181130-035029.png
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶1 踩
回复

使用道具 举报

沙发
ID:401564 发表于 2018-11-30 17:28 | 只看该作者
IIC有严格的时序的,也就是说,你得照着人家的协议一步一步的来,那么问题来了:为什么要先拉低时钟线呢?
如果你不管它,你就不知道刚才时钟线是什么状态的,如果是高电平呢?那么你SDA在时钟线为高的时候,产生的所有变化都会被视为起始或者停止信号,明白了没有?
逻辑关系这种东西是死的,是怎么样就怎么样,所以,一定要确定状态。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表