首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

IICS_BUSY位的问题

IICS_BUSY位的问题

假设MCU在做slave接收一组数据(长度不定),在从IAAS位变为1到接收完毕检查到STOP位之间,是否IICS_BUSY位一直为1?
应该如何来判断一组数据已经接收完毕了?
在路上
IICS_BUSY位只是指示总线的状态。在总线上出现START和STOP之间的时间里,IICS_BUSY都为1。当接收到一组数据后,IICIF会置位并产生中断。
海纳百川  有容乃大
我的意思是说一组数据里有很多个字节,但是个数还不确定,所有字节都收完了才能进行数据处理.应该怎么判断所有的字节都收完了?不引入额外的引脚做握手信号能不能进行判断?
在路上
IIC协议本身是通过ACK信号进行握手的。主机也可以发STOP信号中断一次传输。或者你也可以自己定义一个结束字节,表示一组数据结束。
海纳百川  有容乃大
当我的MCU做从发送的时候,可以从收到的ACK信号来判断是否要停止发送.如果是做从接收的话每接收一个字节都要发送一个ACK,并不能判断是否还有数据要接收.
如果主机发STOP信号可以中断一次传输,但是从机方面有哪个寄存器是可以判断诊测到STOP信号的?
如果有明确字节的确可以方便的判断是否传输结束,但是现在我碰到的情况是通讯协议中并不包括这样的结束字节,所以比较麻烦.
在路上
接收到STOP信号之后,IICS_BUSY位就为0了。
海纳百川  有容乃大
返回列表