2020-03-23 05:59 AM
I have two hardware boards mount with STM32H750 . I want to set the GPIO G11 to high , the code as below :
__HAL_RCC_GPIOG_CLK_ENABLE();
HAL_GPIO_WritePin(GPIOG, GPIO_PIN_11, GPIO_PIN_SET);
GPIO_InitStruct.Pin = GPIO_PIN_11;
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
GPIO_InitStruct.Pull = GPIO_PULLUP;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
HAL_GPIO_Init(GPIOG, &GPIO_InitStruct);
One board work but another don't .
The corresponding bit on the "GPIO input data register" on failure board will not set after i run the above codes.
Any idea ?
Thanks
Solved! Go to Solution.
2020-03-23 06:31 AM
If the pin is shorted to ground through a hardware error, setting it to output high will have no effect other than sinking ~30mA of current. The IDR will still show up as low even if the ODR bit is high. Might be what is happening here.
2020-03-23 06:31 AM
If the pin is shorted to ground through a hardware error, setting it to output high will have no effect other than sinking ~30mA of current. The IDR will still show up as low even if the ODR bit is high. Might be what is happening here.
2020-03-23 07:21 AM
Going to have to validate the design more critically. Make sure you don't have other things on the net, and that all the VDD pins are connected.
Review the register content in the debugger.
2020-03-23 11:04 PM
Thanks for your reply , That was our fault after hardware guys confirmed the G11 short to ground through another failure component .