STM32L151系列MCU,移植硬件IIC,IIC时钟使能后直接总线Busy

2019-07-20 06:00发布

很多人说STM系列MCU的硬件IIC有bug,现在已经调通F103的硬件IIC主机了。但移植到L151芯片,单步调试,发现IIC时钟线使能之后,Busy状态位直接被置1了(不可软件操作)。后面的的操作就无法进行。   自己猜测有可能是L151是低功耗系列,导致IIC时钟线使能后IIC复用的俩引脚GPIOB6、GPIOB7直接被置位低电平,所以进入了Busy状态。不懂是不是这样看,现在直接卡在这里,有没有经验丰富的大神,帮帮忙呀。

PS:不要提用软件模拟IIC的方案了。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
3条回答
xiaokun
2019-07-20 15:38
本帖最后由 xiaokun 于 2018-9-19 14:55 编辑

今天又遇到同样的问题。
情况是这样:
   本想把在F1实现的硬件IIC主机代码一直到L1项目所需工程, 首先是基于L151建立了工程,编写IIC主机代码,结果出现楼上的问题。
今天,我把L151项目的工程移植到F1开发板,结果在两块F1战舰v3的板子  一块出现IIC时钟使能(RCC_APBPeriphClockCmd(RCC_Periph_I2C1,ENABLE))后的状态寄存器SR2的BUSY位置位的情况, 另一块板子没有问题, 可以执行。
问题是,之前编写的F1测试例程,在两块F1战舰板子上均可执行。现在一块可以,另一块出问题。
不懂什么原因。
甚至怀疑是MDK编译器的问题,把部分不该优化的地方优化了。 有大佬解答吗

一周热门 更多>