打印

k60的I2C做从机,把I2C模块的中断关了,主机发数据,仍然回复ack

[复制链接]
1981|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
snakeemail|  楼主 | 2013-2-23 16:05 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
I2c, K60, ck, AC, vi
1.k60的I2C做从机,把I2C模块的中断和模块使能都关了,主机发数据,仍然回复ack,结果主机认为从机正确接收了命令
2.接着我把I2C报给NVIC的中断关了,不回ack了。
又看了一遍datasheet,发现正确的做法是:从机在处理完一帧数据后,应该把TXAK这个bit置1,即接到数据,不自动回ack。(默认是0,即接到数据,自动回ack)。先把这一帧数据处理完,然后在把TXAK设置为自动回ack。
这样主机就知道从机好忙,没功夫鸟你。

问题:1.怎么关了NVIC的中断,就不回ack了呢,我的自动回ack的标志位TXAK没动呀?
问题2:我把I2C的模块的使能都关了,还能回ack?不可能吧?

相关帖子

沙发
jlass| | 2013-2-25 10:16 | 只看该作者
没用过K60,不过估计你多看几遍datasheet,应该就能自己解决了。

使用特权

评论回复
板凳
dirtwillfly| | 2013-2-25 10:36 | 只看该作者
楼上说的是

使用特权

评论回复
地板
snakeemail|  楼主 | 2013-3-2 10:16 | 只看该作者
对。发现寄存器写错了

使用特权

评论回复
5
linqing171| | 2013-3-2 17:05 | 只看该作者
最好不能收数据的时候把I2C关了。关了外部的上拉电阻会自动替你回NACK的。
如果开着,但是中断关了,按照标准,他会一直拉低时钟,等着软件处理的。

使用特权

评论回复
6
yinhaix| | 2015-12-3 13:50 | 只看该作者

使用特权

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

本版积分规则

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

547

主题

1910

帖子

8

粉丝