打印

STM32 I2C的疑惑

[复制链接]
2546|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
deep_2008|  楼主 | 2011-11-7 15:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
边学边研究STM32有半年多了,每一部分都基本上调过程序,现在把众多功能放到一起时I2C不知道和什么地方冲突了,初始化完了之后,进入读就卡住了,START过了,卡在了while里,看了下寄存器值SR1和SR2一直是0,又回头调了一下以前的单独的例子,SR1和SR2在START之后会变非0, 可我集成的时候为啥不变呢,网上找找原因说可能速度太大,然后我调小了,原来300M我改成1M,200M,10M。。。都不管用,貌似没理由啊,把EEPROM的读写放到最入口地方,它倒是初始化完了,也读完了,然后加了屏幕,按键,SRAM等等的部分之后,再次读EEPROM,还是卡在了那里,无语了,不知咋整了,各位给个建议吧,拜托了

相关帖子

沙发
deep_2008|  楼主 | 2011-11-7 15:08 | 只看该作者
扣图了两张,确定我单独读写EEPROM可以用的

使用特权

评论回复
板凳
deep_2008|  楼主 | 2011-11-7 15:11 | 只看该作者

使用特权

评论回复
地板
fastolf| | 2011-11-7 16:00 | 只看该作者
我用的富士通的MCU初始化I2C的时候也出现了同样问题,因为I2C初始化代码是官方下的,木有怀疑其正确性,但是问题就出在I2C的初始化。一般把SDA、SCL的IO设置为INPUT,然后置高,是在初始化最开始进行的,但是官方却将这一步放在I2C的其他初始化之后,结果就造成I2C初始化不是很稳定,有时候能起来,有时候就出现你说的卡死在while处。将SDA、SCL的IO设置为INPUT,然后置高这一步提到I2C初始化的第一步,最后问题解决了,I2C工作也很稳定。楼主可以看下是不是这个问题。

使用特权

评论回复
5
mugenwon| | 2011-11-7 17:07 | 只看该作者
我买了个开发板,搞到这地方作者说STM32对IIC支持太复杂,于是他用软件模拟了,你说晕不?

使用特权

评论回复
6
rockli| | 2011-11-7 17:35 | 只看该作者
stm32软件模拟i2c的飘过

使用特权

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

本版积分规则

0

主题

3

帖子

1

粉丝