You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This happens at least on the NucleoL476 example board implementation. I had a quick look at the other STM32 examples and it appears to happen there too. The issue is that GpioMcuRemoveInterrupt doesn't initialize the Pull field in the GPIO_InitStructure struct. It then calls HAL_GPIO_Init, which bitwise ORs the uninitialized Pull field with the GPIO PUPDR register, causing random values to be written to the pull-up and pull-down registers.
Our internal fix was to zero-initialize the struct to make sure that nothing was being changed in the PUPDR register:
This happens at least on the NucleoL476 example board implementation. I had a quick look at the other STM32 examples and it appears to happen there too. The issue is that GpioMcuRemoveInterrupt doesn't initialize the Pull field in the GPIO_InitStructure struct. It then calls HAL_GPIO_Init, which bitwise ORs the uninitialized Pull field with the GPIO PUPDR register, causing random values to be written to the pull-up and pull-down registers.
Our internal fix was to zero-initialize the struct to make sure that nothing was being changed in the PUPDR register:
The text was updated successfully, but these errors were encountered: