打印

MCU作为I2C从机,如何处理读数据问题?

[复制链接]
950|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
snakeemail|  楼主 | 2015-1-13 19:52 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
现在遇到很多用户,通讯要求我们是从机I2C,仿照EEPROM的方式读取和写入。
当读的时候,从机收到地址,将地址对应的数据放到寄存器中,主机再发时钟就可以读回。
但是当要求读的数据是short型2个字节,就会遇到数据一致性的问题。
例如主机发来地址,从机先返回高字节,然后返回低字节。

第一种方法:
如果从机在中断中直接读取2个字节数据,那么先发出去的高字节,这个时候主程序把低字节变了,那么再发低字节,数据就不一致了。

第二种方法:
放到主程序处理,当从机在中断中收到地址后,置标志位,告诉主循环,主循环不再更新数据,知道这一帧数据处理完毕。好处是数据一致性有保证,坏处是主循环要求很快,MCU来不及告诉主循环不要更新数据。

大家有什么好招介绍一下?

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:提供500W线性 交流电源。0~300VAC,45~500Hz 提供10KW,0-330V直流电源,具体见http://blog.21ic.com/user1/3639/archives/2012/88528.html

547

主题

1910

帖子

8

粉丝