标题:
一段I2C通讯的代码看不懂,想请教一下
[打印本页]
作者:
mioooo
时间:
2024-9-7 17:14
标题:
一段I2C通讯的代码看不懂,想请教一下
为什么在程序中检查到从机应答会停止总线呀,看到这里有点蒙了
无标题.png
(163.76 KB, 下载次数: 1)
下载附件
2024-9-7 17:13 上传
程序图片
作者:
huashanhui20
时间:
2024-9-7 22:15
if(MPU_IIC_Wait_Ack())中这个函数MPU_IIC_Wait_Ack()应答成功的话返回值应该是0,返回1肯定是应答失败的情况才会执行if{}里面的语句退出,并且返回1告诉调用的地方通信失败
作者:
xxxevery
时间:
2024-9-7 22:31
你得把MPU_IIC_Stop函数发上来看看啊。不过据我的认识应该是主机释放数据总线,把数据线拉高,这样从机应答信号才能把数据线拉低,主机才能读到正确的应答信号
作者:
51jia
时间:
2024-9-7 22:32
没有应答,就是出现了问题,停止总线,返错误代号1.
作者:
donglw
时间:
2024-9-8 01:12
IIC属于半双工器件,任一时段主机只能和唯一指定的从机通讯。
作者:
lightday
时间:
2024-9-9 09:00
这边应该是没有应答的逻辑控制。
作者:
uck
时间:
2024-9-10 10:08
看不太出来,需要抓波形吧
作者:
ydatou
时间:
2024-11-22 13:52
注意:MPU_Write_Byte函数iic操作成功返回0,失败返回1.
不管iic操作是否成功都要通过MPU_IIC_Stop函数释放总线。
估计MPU_IIC_Wait_Ack函数的作用是100uS内有应答返回0,无应答返回1.
楼主可能习惯把1看成成功,0看成失败,才有疑问。
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1