2019-12-10 04:26 PM
The HAL_I2C_Transmit_IT() in the STM32H7 HAL respond incorrectly, when the I2C bus returns NAK.
In case of NAK, the I2C error interrupt must be triggered immediately, but it is triggered few seconds later. This is wrong response.
The attached zip file contains a demonstration project for the Nucleo H743ZI. Once you run, you will see the Start message, and then error message. While the error message have to be displayed immediately, you have to wait several second.
Note : You must pull up the I2C1 bus (PB8, PB9) correctly, and must not connect device on the I2C address 0x00.
I have tested this program with following environment.
Please check.
2020-03-23 12:13 AM
> I found a good report to recommend not-to-pull-up internally
So you found it. Maybe you should also read it? That issue is for a case of 5V pull-ups! For a typical 3,3V use pull-ups are recommended as they increase robustness.
> I strongly recommend you to change the default Maximum output speed.
But I strongly recommend fixing the hardware and/or software. For me I2C works flawlessly on L1, L4 and F7 with internal (and external, of course) pull-ups at low speed as per datasheet.