在发现板 STM32L0 和 LoRaWAN 的停止模式上工作了几天后,我来到了那里。
我试图生成一个什么都不做的新项目,按照数据表使用 RTC 测试停止模式并测量电流消耗。我这样做有一些问题。
我在 JP2 上使用万用表测量电路板由 USB 供电时的消耗。在没有停止模式的情况下,消耗在 11 mA 左右,而当我在暂停 Tick 后激活停止模式时,电流消耗在 3.1 mA 左右,与数据表中提到的消耗还有很大的差距。
您可以找到我的主要关注者,也许您可以帮助我找到如何正确进入停止模式?
谢谢您的帮助 !
int main(void)
{
/* Reset of all peripherals, Initializes the Flash interface and the Systick. */
HAL_Init();
/* Configure the system clock */
SystemClock_Config();
/* Initialize all configured peripherals */
MX_GPIO_Init();
MX_RTC_Init();
MX_SPI1_Init();
MX_USART2_UART_Init();
/* USER CODE BEGIN 2 */
/* LOW POWER CODE */
HAL_Delay(1000);
HAL_SuspendTick();
__HAL_RCC_PWR_CLK_ENABLE();
HAL_PWREx_EnableUltraLowPower(); // Ultra low power mode
HAL_PWREx_EnableFastWakeUp(); // Fast wake-up for ultra low power mode
HAL_DeInit();
MX_GPIO_Disable();
// TCXO disabled with JP9 on 1-2
__HAL_RCC_SPI1_CLK_DISABLE();
__HAL_RCC_USART2_CLK_DISABLE();
__HAL_RCC_ADC1_CLK_DISABLE();
__HAL_RCC_TIM21_CLK_DISABLE();
__HAL_PWR_CLEAR_FLAG(PWR_FLAG_WU); // clear wake up flag
HAL_PWR_EnterSTOPMode(PWR_LOWPOWERREGULATOR_ON, PWR_STOPENTRY_WFI);
HAL_ResumeTick();
SystemClock_Config();
/* LOW POWER CODE END */
/* Infinite loop */
while (1)
{
/* Blink LEDs */
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_5, GPIO_PIN_SET);
HAL_Delay(500);
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_5, GPIO_PIN_RESET);
HAL_Delay(500);
}
}