你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

I2C SCL信号问题

[复制链接]
matttsai 提问时间:2018-4-26 19:56 /
请问一下我在I2C Init完之后, 如果都不去对I2C做read/write的动作
SCL会一直处于High吗

我用示波器接SCL pin, 发现它会一直保持High, 这是正常的吗
我只有在对I2C做Read/Write的动作时, 才会从示波器上看到SCL有发生变化

Thanks

收藏 评论8 发布时间:2018-4-26 19:56

举报

8个回答
CC4 回答时间:2018-4-26 20:24:40
不操作的时候,当然是不会变化的。

评分

参与人数 1蝴蝶豆 +2 收起 理由
zero99 + 2

查看全部评分

Angel_YY_ST 回答时间:2018-4-26 20:59:12
提示: 作者被禁止或删除 内容自动屏蔽
matttsai 回答时间:2018-4-26 21:01:37
select326 发表于 2018-4-26 20:24
不操作的时候,当然是不会变化的。

我利用HAL_I2C_Mem_Read()去读取I2C
这个API有包含把SCL拉High, 拉Low的动作吗? 在那个地方去拉High, 拉Low?

如果我去call HAL_I2C_Mem_Read() API
SCL没有被拉High/low, 问题会是什么?
CC4 回答时间:2018-4-26 22:07:23
matttsai 发表于 2018-4-26 21:01
我利用HAL_I2C_Mem_Read()去读取I2C
这个API有包含把SCL拉High, 拉Low的动作吗? 在那个地方去拉High, 拉L ...

SCL是时钟性号,只要有操作,自然就会有了拉高拉低。
七哥 回答时间:2018-4-27 00:48:40
本帖最后由 toofree 于 2018-4-27 00:49 编辑

是的,SCL不操作的时候默认就是高电平。如果发现不操作的时候SCL为低电平,反而出问题了,有可能I2C被总线上某个I2C设备给拉死了。

评分

参与人数 1蝴蝶豆 +2 收起 理由
zero99 + 2

查看全部评分

andey 回答时间:2018-4-27 07:23:44
提示: 作者被禁止或删除 内容自动屏蔽
废鱼 回答时间:2018-4-27 08:36:03
matttsai 发表于 2018-4-26 21:01
我利用HAL_I2C_Mem_Read()去读取I2C
这个API有包含把SCL拉High, 拉Low的动作吗? 在那个地方去拉High, 拉L ...

I2C模块会根据发送数据自动输出SCL,如果没有SCL,没有时钟参考,对方不知道I2C上面发送的数据是什么。I2C一般最高是400Khz。

评分

参与人数 1蝴蝶豆 +2 收起 理由
zero99 + 2

查看全部评分

jjbboox 回答时间:2018-4-27 09:41:22
楼主大惊小怪了,I2C总线空闲的时候必须为高电平,本身就需要上拉的。

评分

参与人数 1蝴蝶豆 +2 收起 理由
zero99 + 2

查看全部评分

所属标签

相似问题

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版