野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 10999|回复: 5

模拟I2C中,SCL和SDA的操作问题

[复制链接]
发表于 2018-3-20 10:48:39 | 显示全部楼层 |阅读模式
问题一:产生停止信号的函数,最后需不需要把SCL拉低?为什么?
             例程中,产生起始信号的函数,最后将SCL拉低,但是在产生停止信号的函数中却没有这样做。


问题二:读取字节前,需不需要将SDA拉高?为什么?
             例程中,等待响应函数,先将SDA拉高以释放SDA总线,但是在读取字节函数中却没有这样做。
QQ截图20180320101542.png
2018-03-20_103651.png
回复

使用道具 举报

发表于 2018-3-20 11:15:40 | 显示全部楼层
楼主知道IIC空闲时SDA和SCL的状态吗
回复 支持 反对

使用道具 举报

发表于 2018-3-20 11:18:29 | 显示全部楼层
其实程序里有些操作是冗余的,有些地方加不加释放都可以
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-3-20 11:38:24 | 显示全部楼层
随风 发表于 2018-3-20 11:18
其实程序里有些操作是冗余的,有些地方加不加释放都可以

意思是这个操作是不必要的,加不加都可以是吧
回复 支持 反对

使用道具 举报

发表于 2018-3-20 17:00:56 | 显示全部楼层
起始标识 后接  从设备地址+传输方向 后续需要变化的信号 所以拉低没问题  当结束后 需要释放sda和scl 都要拉高   在数据传输过程中 需要通过拉高后延时在拉低 来锁住sda信号
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-3-21 08:39:22 | 显示全部楼层
q491790850 发表于 2018-3-20 17:00
起始标识 后接  从设备地址+传输方向 后续需要变化的信号 所以拉低没问题  当结束后 需要释放sda和scl 都要 ...

感谢!回答的太好了!
回复 支持 反对

使用道具 举报

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

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-5-22 14:30 , Processed in 0.029979 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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