2016-05-17 02:19 AM
When enable I2C3, CubeMX will generate stm32f4xx_hal_msp.c with a function named HAL_I2C_MspInit(), and in that function, the code will first config PC9 and then PA8 to be I2C pins. This order may lead to a busy state for I2C3.
This problem may occur when turned the pins to norm gpio to handle bus error.In my code, if the bus stuck in busy state, pins will be changed to norm GPIO will PP output to generate signal manually and make the bus back into normal state. This is fun with I2C1 and I2C2, but when I use I2C3, because the order for I2C1 and I2C2 in HAL_I2C_MspInit() is SCL first , but for I2C3, it's SDA first, the problem will occur, and the bus will again goto busy state2016-05-17 03:01 AM
Hi jiasu.mi,
Thanks for the feedback. I will conduct this to our CubeMx team for check.-Hannibal-2017-05-09 08:14 AM
Hello
to_deleteromancorba
,Sorry for the delay however, your issue will be fixed in CubeMX4.21 that will come very soon.
Please, upgrade your CubeMX release as soon as CubeMX4.21 is available.
BR. Eric