OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 2442|回复: 2

IIC代码理解问题:停止信号代码

[复制链接]

3

主题

3

帖子

0

精华

新手上路

积分
20
金钱
20
注册时间
2017-9-25
在线时间
1 小时
发表于 2017-9-25 11:49:55 | 显示全部楼层 |阅读模式
1金钱
void IIC_Stop(void)
{
        SDA_OUT();//sda线输出
        IIC_SCL=0;
        IIC_SDA=0;//STOP:when CLK is high DATA change form low to high
        delay_us(4);
        IIC_SCL=1;
        IIC_SDA=1;//发送I2C总线结束信号
        delay_us(4);                                                                  
}
这个代码中的第三行,解释是说:when CLK is high DATA change form low to high,那不是意味着起始状态IIC_SCL=1;但是为什么代码中写的为IIC_SCL=0;
新手小白初学,问的问题太水,忘大家包涵,也希望大神能回答下小弟的疑问,小弟不甚感激。




正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

54

主题

372

帖子

0

精华

高级会员

Rank: 4

积分
979
金钱
979
注册时间
2016-6-15
在线时间
474 小时
发表于 2017-9-25 13:03:38 | 显示全部楼层
本帖最后由 shuaigew88 于 2017-9-25 13:05 编辑

CLK=1是不可能的,起始信号之后的任何数据发送和接收完成后CLK都必须保持低电平,直到停止信号后CLK才能保持高。简单的说就是CLK=1时不允许SDA有任何电平变化。
回复

使用道具 举报

8

主题

28

帖子

0

精华

初级会员

Rank: 2

积分
107
金钱
107
注册时间
2017-10-16
在线时间
16 小时
发表于 2017-10-16 11:07:43 | 显示全部楼层
为什么SDA_OUT();是低电平?
对于你的问题,要我说程序是写成了那样,放所有的环境里面,前面肯定设置了
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-10 02:26

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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