请问HAL_I2C_IsDeviceReady用途是什么?

2019-07-18 17:28发布

请问一下, 在I2C init完之后, 需要call HAL_I2C_IsDeviceReady()这一支function吗

如果这一支function返回的是not ready
这时去读I2C是否很容易造成Bus busy(ISR BUSY bit一直被设为1)

我是不是一定要先check device 是否ready后再去读I2C?

Thanks
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
5条回答
ctwewer
1楼-- · 2019-07-18 21:40
IIC器件一般是被动器件,等待主机发送指令后执行操作。楼主应该阅读所操作的IIC器件说明,根据相关时序发送指令、接收数据。
sunbingfeng
2楼-- · 2019-07-18 23:25
我有时候会有遇到Busy bit一直为1的情况
在这种情况下, I2C就无法再使用了
I2C ISR的busy bit为什么会被一直设为1??


Thanks
ctwewer
3楼-- · 2019-07-19 02:14
sunbingfeng 发表于 2019-5-23 11:31
我有时候会有遇到Busy bit一直为1的情况
在这种情况下, I2C就无法再使用了
I2C ISR的busy bit为什么会被一直设为1??

如果在等待器件发来应答信号时被某个中断例程打断,就可能出现这种情况
sunbingfeng
4楼-- · 2019-07-19 05:29
 精彩回答 2  元偷偷看……
ctwewer
5楼-- · 2019-07-19 10:47
sunbingfeng 发表于 2019-5-23 11:52
除了中断, 还有其他因素吗
目前观查, 似乎没有看到中断

STM32的IIC最好用软件模拟方式。

一周热门 更多>