找回密码
 立即注册

QQ登录

只需一步,快速开始

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

新手求助 关于I2C时序问题

[复制链接]
跳转到指定楼层
楼主
ID:77726 发表于 2015-4-22 15:58 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
i2c协议中的一个时序问题:SCL为高电平是,SDA由低到高的过程为停止信号。
void stop()
{
        sda=0;
        delay();
        scl=1;
        delay();
        sda=1;
        delay();
}
这个函数能够让我的程序达到预期目的。

void stop(void)
{
        scl=1;
        delay();
        sda=0;
        delay();
        sda=1;
        delay();
}这个函数却不能了,
仅仅是SCL=1的位置不同,
但是我觉的下面这个函数也满足了协议要求啊。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:77740 发表于 2015-4-22 17:54 | 只看该作者
路过     。。。。
回复

使用道具 举报

板凳
ID:76471 发表于 2015-4-23 08:20 | 只看该作者
SCL时钟线一般是边沿触发,在上升沿或下降沿对数据进行读或写操作,SCL的变化在数据变化之前,数据的读写操作就失败了

评分

参与人数 1黑币 +35 收起 理由
admin + 35 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

地板
ID:27916 发表于 2015-4-23 12:38 | 只看该作者
下面的有可能会实现起始命令,但不一定

IIC 的SDA信号线是在SCL为低的时候才可以改变,否则就是起始、停止命令

评分

参与人数 1黑币 +35 收起 理由
admin + 35 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

5#
ID:77726 发表于 2015-4-23 16:53 | 只看该作者
青苹果 发表于 2015-4-23 12:38
下面的有可能会实现起始命令,但不一定

IIC 的SDA信号线是在SCL为低的时候才可以改变,否则就是起始、停 ...

非常感谢您的回答
回复

使用道具 举报

6#
ID:77726 发表于 2015-4-23 16:54 | 只看该作者
panzishi123456 发表于 2015-4-23 08:20
SCL时钟线一般是边沿触发,在上升沿或下降沿对数据进行读或写操作,SCL的变化在数据变化之前,数据的读写操 ...

谢谢您的回答,
您能帮我看下下面这个问题吗
http://www.51hei.com/bbs/dpj-33740-1.html
回复

使用道具 举报

7#
ID:77726 发表于 2015-4-23 16:58 | 只看该作者
panzishi123456 发表于 2015-4-23 08:20
SCL时钟线一般是边沿触发,在上升沿或下降沿对数据进行读或写操作,SCL的变化在数据变化之前,数据的读写操 ...

非常感谢您的回答
回复

使用道具 举报

8#
ID:78505 发表于 2015-4-30 08:52 | 只看该作者
I2C要在时钟上升沿发送数据,你这个上升沿时没有把数据发出

评分

参与人数 1黑币 +35 收起 理由
admin + 35 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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