good at GPIO DeInit and reduce silence current to 1.6uA

This commit is contained in:
Yunhorn 2024-03-14 18:01:13 +08:00
parent 6a94129ad6
commit 2d57b3d4d5
4 changed files with 17 additions and 8 deletions

View File

@ -57,8 +57,8 @@ void MX_GPIO_Init(void)
HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
//__HAL_RCC_GPIOA_CLK_DISABLE();
//__HAL_RCC_GPIOB_CLK_DISABLE();
__HAL_RCC_GPIOA_CLK_DISABLE();
__HAL_RCC_GPIOB_CLK_DISABLE();
__HAL_RCC_GPIOC_CLK_DISABLE();
/*Configure GPIO pin Output Level */
@ -109,7 +109,7 @@ void MX_GPIO_Init(void)
GPIO_InitStruct.Pull = GPIO_PULLUP;
HAL_GPIO_Init(BUT1_GPIO_Port, &GPIO_InitStruct);
__HAL_RCC_GPIOB_CLK_ENABLE();
/*Configure GPIO pins : TOF_C_INT_Pin */
#if defined(TOF_1)
GPIO_InitStruct.Pin = TOF_C_INT_Pin;

View File

@ -116,6 +116,8 @@ int main(void)
MX_LoRaWAN_Init();
/* USER CODE BEGIN 2 */
HAL_UART_DeInit(&huart2);
vcom_DeInit();
//HAL_Delay(3000);

View File

@ -80,17 +80,19 @@ const struct UTIL_LPM_Driver_s UTIL_PowerDriver =
void PWR_EnterOffMode(void)
{
#if 1
#if 0
//HAL_GPIO_WritePin(GPIOB, GPIO_PIN_2, GPIO_PIN_RESET); /* LED OFF */
HAL_SuspendTick();
HAL_UART_DeInit(&huart2);
//LL_PWR_ClearFlag_WU();
__HAL_PWR_CLEAR_FLAG(PWR_FLAG_SB);
//__HAL_PWR_CLEAR_FLAG(PWR_FLAG_SB);
__HAL_PWR_CLEAR_FLAG(PWR_FLAG_WU);
__HAL_PWR_CLEAR_FLAG(PWR_FLAG_LPMODES);
//LL_PWR_ClearFlag_WU();
HAL_PWR_EnterSTANDBYMode();
#endif
HAL_SuspendTick();
HAL_PWR_EnterSTANDBYMode();
#if 0
LED_OFF;
HAL_UART_DeInit(&huart2);
@ -110,7 +112,7 @@ void PWR_ExitOffMode(void)
/* USER CODE BEGIN ExitOffMode_1 */
#if 1
HAL_ResumeTick();
__HAL_PWR_CLEAR_FLAG(PWR_FLAG_SB);
//__HAL_PWR_CLEAR_FLAG(PWR_FLAG_SB);
//HAL_GPIO_WritePin(GPIOB, GPIO_PIN_2, GPIO_PIN_SET); /* LED ON */
return;
#endif
@ -126,7 +128,11 @@ void PWR_ExitOffMode(void)
void PWR_EnterStopMode(void)
{
/* USER CODE BEGIN EnterStopMode_1 */
HAL_UART_DeInit(&huart2);
vcom_DeInit();
HAL_GPIO_DeInit(GPIOA,GPIO_PIN_All);
HAL_GPIO_DeInit(GPIOB,GPIO_PIN_All);
HAL_GPIO_DeInit(GPIOC,GPIO_PIN_All);
/* USER CODE END EnterStopMode_1 */
HAL_SuspendTick();
/* Clear Status Flag before entering STOP/STANDBY Mode */

View File

@ -123,6 +123,7 @@ void SystemApp_Init(void)
UTIL_LPM_Init();
/* Disable Stand-by mode */
UTIL_LPM_SetOffMode((1 << CFG_LPM_APPLI_Id), UTIL_LPM_DISABLE);
UTIL_LPM_SetOffMode((1 << CFG_LPM_UART_TX_Id), UTIL_LPM_ENABLE);
#if defined (LOW_POWER_DISABLE) && (LOW_POWER_DISABLE == 1)
/* Disable Stop Mode */