打印

熬夜调到现在,怎么I2C1的SR1和SR2一直为零?

[复制链接]
2561|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
masashinakayama|  楼主 | 2009-2-19 15:48 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
只做硬件的eeprom读,卡死在while
翻了前面的帖子,多是讲I2C不好用,但基本上卡死是出了I2C异常没做周全
模拟I2C就算了,硬件再难我也要把它调通
外设时钟全部打开了,难道还有什么地方开关没开?
那位高人也遇到SR1和SR2一直为0的情况?
俺洗耳恭听
沙发
masashinakayama|  楼主 | 2009-2-19 16:21 | 只看该作者

我还要抽丝剥茧下

刚才做了试验,while读SR2,
1。把SCL接触地,BUSY位有反应
2。把所有while用delay代替,有波形输出了
看来有曙光

使用特权

评论回复
板凳
lut1lut| | 2009-2-19 16:24 | 只看该作者

正常情况下,通信结束后SR1和SR2恢复0

用置顶帖子里的查询方式试过么,我这里跑,都是好的。你看看。

使用特权

评论回复
地板
masashinakayama|  楼主 | 2009-2-19 16:33 | 只看该作者

多谢lut1lut

我现在查出SR1,SR2都是活的,只不过悄悄变而已
用了delay,连续的I2C时序出来了,不乱搞就不死
后面我仔细分析下SR1和SR2的变化
话说回来,还是ATMEL的TWI好用,不论AVR还是AT91xx,
英文资料查阅起来也是顺风顺水,
看ST的资料,即使中文有点崩溃,同看北航MSP430那本书感觉一样

使用特权

评论回复
5
lut1lut| | 2009-2-19 17:05 | 只看该作者

你用的while查询方式是用ST软件库里的那个读写e2prom的例子么

那里例子有点问题,在置顶帖子的查询方式实现,有个文档说明了一些,可以看看。

使用特权

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

本版积分规则

317

主题

1957

帖子

4

粉丝