We are running a survey to help us improve the experience for all of our members. If you see the survey appear, please take the time to tell us about your experience if you can.
Good afternoon,
using here the STM32F429ZIT6 Discovery board and Keil uVision 5.14 I am developing a prototype for a DSP project with a GUI that makes use of the touch screen. The DSP part works ok, as it does the GUI display built with GUIBuilder. The problem is in the touch interface... the touch controller makes use of the I2C3 port, which has been configured as per the example program contained in apnt_268, i.e. with I2C3_SCL assigned to PA8 and I2C3_SDA assigned to PC9.
What happens is that the program apparently hangs. I traced its execution and found this sequence of calls : GUI_Init => GUI_X_Init => GUI_TOUCH_Initialize => Touch_Initialize => Touch_Write
Inside Touch_Write there is this statement :
while (ptrI2C->GetStatus().busy);
Well, that is where the program hangs... it looks like the I2C controller is always busy and the while loops continuously...
Does anybody have words of wisdom to help me to surpass this impasse ? Thanks
Alberto
Thanks Reinhard and Robert,
following your advice I manually edited the file
\Keil_v5\ARM\Pack\Keil\STM32F4xx_DFP\2.4.0\CMSIS\Driver\I2C_STM32F4xx.c
replacing that 42000000 value with 45000000 in two places. Now everything works beautifully at 180 MHz clock speed.
TNX again