2024-11-28 12:02 AM
Hi !
i have found that if you try to select power voltage detector in (external input analog voltage) on Cube Ide there is a missing line in the code generated that make the code don't work
here an example of code generated for the option with the internal analog voltage:
void HAL_MspInit(void)
{
/* USER CODE BEGIN MspInit 0 */
/* USER CODE END MspInit 0 */
PWR_PVDTypeDef sConfigPVD = {0};
__HAL_RCC_SYSCFG_CLK_ENABLE();
__HAL_RCC_PWR_CLK_ENABLE();
/* System interrupt init*/
/* Peripheral interrupt init */
/* PVD_VDDIO2_IRQn interrupt configuration */
HAL_NVIC_SetPriority(PVD_VDDIO2_IRQn, 0, 0);
HAL_NVIC_EnableIRQ(PVD_VDDIO2_IRQn);
/** PVD Configuration
*/
sConfigPVD.PVDLevel = PWR_PVDLEVEL_RISING_0|PWR_PVDLEVEL_FALLING_0;
sConfigPVD.Mode = PWR_PVD_MODE_IT_RISING_FALLING;
HAL_PWR_ConfigPVD(&sConfigPVD);
/** Enable the PVD Output
*/
HAL_PWR_EnablePVD();
/** Disable the internal Pull-Up in Dead Battery pins of UCPD peripheral
*/
HAL_SYSCFG_StrobeDBattpinsConfig(SYSCFG_CFGR1_UCPD1_STROBE | SYSCFG_CFGR1_UCPD2_STROBE);
/* USER CODE BEGIN MspInit 1 */
/* USER CODE END MspInit 1 */
}
here the code for the external input analog voltage:
void HAL_MspInit(void)
{
/* USER CODE BEGIN MspInit 0 */
/* USER CODE END MspInit 0 */
PWR_PVDTypeDef sConfigPVD = {0};
__HAL_RCC_SYSCFG_CLK_ENABLE();
__HAL_RCC_PWR_CLK_ENABLE();
/* System interrupt init*/
/* Peripheral interrupt init */
/* PVD_VDDIO2_IRQn interrupt configuration */
HAL_NVIC_SetPriority(PVD_VDDIO2_IRQn, 0, 0);
HAL_NVIC_EnableIRQ(PVD_VDDIO2_IRQn);
/** PVD Configuration
*/
sConfigPVD.Mode = PWR_PVD_MODE_IT_RISING_FALLING;
HAL_PWR_ConfigPVD(&sConfigPVD);
/** Enable the PVD Output
*/
HAL_PWR_EnablePVD();
/** Disable the internal Pull-Up in Dead Battery pins of UCPD peripheral
*/
HAL_SYSCFG_StrobeDBattpinsConfig(SYSCFG_CFGR1_UCPD1_STROBE | SYSCFG_CFGR1_UCPD2_STROBE);
/* USER CODE BEGIN MspInit 1 */
/* USER CODE END MspInit 1 */
}
the line sConfigPVD.PVDLevel = is missing!
to make the code for the external input analog voltage you have to add the missing line with the value PWR_PVDLEVEL_7
so here the correct lines of code:
sConfigPVD.PVDLevel = PWR_PVDLEVEL_7;
sConfigPVD.Mode = PWR_PVD_MODE_IT_RISING_FALLING;
HAL_PWR_ConfigPVD(&sConfigPVD);
is it possible to correct this issue in the next release?
thank you
Solved! Go to Solution.
2024-11-29 07:44 AM
Hi @ABasi.2 ,
I confirm the reported issue.
I raised it internally (#197410) to be fixed in coming releases.
-Amel
To give better visibility on the answered topics, please click on Accept as Solution on the reply which solved your issue or answered your question.
2024-11-29 07:44 AM
Hi @ABasi.2 ,
I confirm the reported issue.
I raised it internally (#197410) to be fixed in coming releases.
-Amel
To give better visibility on the answered topics, please click on Accept as Solution on the reply which solved your issue or answered your question.
2024-11-29 11:39 AM
thank you!
best reguards