matttsai 发表于 2018-4-27 09:57:53

2C初始化后, I2C ISR BUSY bit为什么一直为1

我使用HAL lib, 在MX_I2C1_Init()完之后,
有时候会有I2C ISR register的BUSY bit一直为1的情况出现
如果BUSY bit一直为1, 那我就会一直无法读取I2C
请问一下为什么会发生这个问题, 要怎么解决?
这是ST的bug吗?

Thanks

hungchieh1029 发表于 2018-5-3 10:55:53


HAL_I2C_MspInit()
{
__HAL_RCC_I2C1_CLK_ENABLE();
HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
}

這個方法你先試試看
先開啟I2C Clock
在設定IO

butterflyspring 发表于 2018-5-7 12:30:50

你可以开始就清除,或者你看一下在初始是,IIC bus是否有电平变化..有变化也会导致busy,busy位是对外界因数的检测结果.

xmshao 发表于 2018-5-9 16:02:41

STM32系列众多,即使相同外设或许存在细微差异,咨询问题尽量告知详细的完整芯片型号,不要只说SM32F407,stm32f103啊,甚至stm32;
很多问题跟管脚数、flash容量还有关。。。。。。

楼主提到的标志指示硬件检查结果的反馈;你得检查硬件连接和软件操作步骤;

附件资料你可以看看。
页: [1]
查看完整版本: 2C初始化后, I2C ISR BUSY bit为什么一直为1