2C初始化后, I2C ISR BUSY bit为什么一直为1
我使用HAL lib, 在MX_I2C1_Init()完之后,有时候会有I2C ISR register的BUSY bit一直为1的情况出现
如果BUSY bit一直为1, 那我就会一直无法读取I2C
请问一下为什么会发生这个问题, 要怎么解决?
这是ST的bug吗?
Thanks
HAL_I2C_MspInit()
{
__HAL_RCC_I2C1_CLK_ENABLE();
HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
}
這個方法你先試試看
先開啟I2C Clock
在設定IO 你可以开始就清除,或者你看一下在初始是,IIC bus是否有电平变化..有变化也会导致busy,busy位是对外界因数的检测结果. STM32系列众多,即使相同外设或许存在细微差异,咨询问题尽量告知详细的完整芯片型号,不要只说SM32F407,stm32f103啊,甚至stm32;
很多问题跟管脚数、flash容量还有关。。。。。。
楼主提到的标志指示硬件检查结果的反馈;你得检查硬件连接和软件操作步骤;
附件资料你可以看看。
页:
[1]