【STM32】HAL库开发教程(六)—低功耗唤醒

前言

不必害怕未知,无需恐惧犯错,做一个Creator!

本文主要介绍STM32_HAL库开发中低功耗唤醒的使用。

一、开发步骤

1.STM32CubeMX配置

  1. 在左侧引脚配置处勾选RTC进行配置
  2. 在RTC模式处勾选“Wakeup”唤醒使能RTC唤醒模式
  3. 在RTC参数配置处进行参数配置:RTC时钟、Wakeup唤醒时钟、Wakeup唤醒计数器以及勾选”NVIC Settings”使能外部中断

在这里插入图片描述

2.进低功耗程序编写

void startSleep(uint32_t _RTCsecond) //进入低功耗模式函数
{
	SystemPower_Config();	
	HAL_RTCEx_DeactivateWakeUpTimer(&hrtc);//关闭计数器 
	RTCWakeUp(_RTCsecond);//自定义唤醒计数器
	HAL_PWR_EnterSTOPMode(PWR_LOWPOWERREGULATOR_ON, PWR_STOPENTRY_WFI);//进入低功耗停机模式
}
void SystemPower_Config(void) //进入低功耗时钟配置
{
	  GPIO_InitTypeDef GPIO_InitStructure = {0};
     //使能低功耗模式时钟
	  __HAL_RCC_PWR_CLK_ENABLE();
	  //关闭所有IO口时钟
	  __HAL_RCC_GPIOA_CLK_DISABLE();
	  __HAL_RCC_GPIOB_CLK_DISABLE();
	  __HAL_RCC_GPIOC_CLK_DISABLE();
	  __HAL_RCC_GPIOD_CLK_DISABLE();
	  __HAL_RCC_GPIOH_CLK_DISABLE();
	  __HAL_RCC_GPIOE_CLK_DISABLE();
}

3.出低功耗程序编写

void initAfterSleep(void)
{
    //各个初始化配置
	HAL_Init();
	SystemClock_Config();
	 MX_GPIO_Init();
	MX_USART2_UART_Init();
	MX_SPI1_Init();
	MX_TIM2_Init();
	MX_UART4_Init();
	MX_RTC_Init();
	MX_USART1_UART_Init();
	__HAL_UART_ENABLE_IT(&huart4, UART_IT_RXNE);
	__HAL_UART_ENABLE_IT(&huart1, UART_IT_RXNE);
	HAL_TIM_Base_Init(&htim2);
	HAL_TIM_Base_Start_IT(&htim2);
	
	//回调函数的初始化非常重要!
	HAL_UART_MspInit(&huart1);
	HAL_UART_MspInit(&huart2);
	HAL_UART_MspInit(&huart4);
	HAL_SPI_MspInit(&hspi1);	
}

二、主要函数接口

1. HAL库进入低功耗模式函数

HAL_PWR_EnterSTOPMode(PWR_LOWPOWERREGULATOR_ON, PWR_STOPENTRY_WFI);
进入低功耗模式的接口,执行该函数后进入低功耗模式。

2. HAL库唤醒计数器设置函数

RTCWakeUp(RTCsecond);
开发人员可根据需要自定义中断唤醒计数值。
根据已经在STM32CubeMX中配置的Wakeup时钟频率和计数值设置低功耗时间。

3. HAL库RTC唤醒参数配置函数

HAL_RTCEx_SetWakeUpTimer_IT(RTC_HandleTypeDef *hrtc, uint32_t WakeUpCounter, uint32_t WakeUpClock)
RTC唤醒的参数进行配置(STM32CubeMX需要进行首次配置)。
对RTC唤醒的时钟和计数值进行配置。

三、注意事项

1. 待机模式唤醒:

1.唤醒形式直接产生中断就能唤醒。
2.唤醒后不会进入中断函数
3.唤醒后程序复位,重新执行

2. 停机模式唤醒:

1.需要对标志位清除,并且时钟要重新配置。
2.唤醒后进入中断函数
3.唤醒后程序从停机的位置继续运行。没有复位,单片机寄存器里的各种变量值仍然保留!


总结

本项目中低功耗唤醒的使用主要可以归纳为:
1.RTC低功耗唤醒参数配置
2.调用void startSleep(uint32_t _RTCsecond)进低功耗模式程序
3.调用void initAfterSleep(void)配置出低功耗模式


提示:若有错误不足,欢迎批评指正。该系列文章仅供参考,欢迎互相学习交流。

感谢你的阅读,期待你的关注收藏点赞!

### 回答1: STM32HAL库是一种基于STM32芯片的开发库,用于加速嵌入式系统的开发STM32HAL库开发手册PDF提供了完整的STM32HAL库的手册和文档,其中包括STM32HAL库的基本概念和用法,常用的寄存器和操作,以及各种常用的例程和实例代码。这个PDF文档是STM32开发者们了解和使用STM32HAL库的必备工具。 STM32HAL库开发手册PDF从基础开始,对于初学者来说非常友好。随着阅读的深入,用户可以学习如何初始化STM32芯片,如何通过外设进行数据传输,如何控制GPIO,USART,SPI等外设,以及如何使用DMA等高级特性。此外,还提供了多个实例代码和示例,让开发者们更加快速地入门和掌握开发技巧。 此外,STM32HAL库开发手册PDF定期更新,以确保内容符合最新的STM32HAL库版本。对于长期使用STM32HAL库的用户来说,这个更新的手册非常有用,可以确保他们掌握最新和最优化的开发技术和方法。 总之,STM32HAL库开发手册PDF对于希望快速掌握STM32HAL库开发者来说是一个非常友好和必备的工具。通过这个手册,开发者可以领会STM32HAL库的各种特性和功能,并快速掌握STM32芯片的使用技巧。无论是初学者还是经验丰富的开发者,都应该将这个手册放在自己的阅读列表中。 ### 回答2: STMicroelectronics公司开发stm32hal库是一种面向STM32芯片的开发库,主要提供了一系列的硬件抽象层,便于开发人员更方便、高效地与硬件进行交互。stm32hal开发手册是STM32HAL库的详细介绍和API参考手册,对于STM32开发人员来说,是一个非常重要的参考资料。 stm32hal开发手册一共包含4个部分,分别是概述、HAL库API参考手册、HAL库以太网API参考手册和HAL库标准外设API参考手册。其中,HAL库API参考手册是最重要的一部分,详细列出了HAL库所提供的所有API函数,包括初始化、读写寄存器、中断控制、时钟控制等方面。该手册还包含了许多示例代码,方便开发人员快速上手。 除了API参考手册,stm32hal开发手册的概述部分介绍了HAL库的整体架构、HAL库的移植方式、HAL库的编译和调试等内容。这些内容对于理解HAL库的原理和使用方式非常重要。 HAL库以太网API参考手册和HAL库标准外设API参考手册分别对HAL库支持的以太网和标准外设提供了详细的介绍和API函数列表。对于需要使用这些功能开发人员来说,这两个手册也是非常重要的参考资料。 总之,stm32hal开发手册是STM32开发人员必备的参考资料之一,它详细地介绍了HAL库的使用方法和API函数列表,有助于开发人员更高效地进行硬件开发。同时,该手册还提供了大量的示例代码和细致的说明,方便开发人员快速上手和调试。 ### 回答3: stm32hal库开发手册PDF是使用STM32芯片进行软件开发时最重要的参考资料之一。STM32 MCU(Microcontroller Unit)是由意法半导体公司推出的一款代表最新技术的微控制器。这款MCU具有先进的功能和性能,适用于许多应用领域,包括工业,消费电子和照明。通过STM32HAL库开发手册PDF作为参考,开发者可以深入了解STM32 MCU架构,学习如何使用HAL库进行各种应用程序的开发。 在STM32HAL库开发手册PDF中,开发者可以找到大量与STM32 MCU有关的信息,如MCU介绍,逻辑架构,物理特性,引脚展开图,以及外设功能和性能。开发者还可以学习如何使用HAL库进行开发,如使用HAL库来控制外设,如GPIO,USART,SPI和I2C,以及诸如时钟,低功耗模式和DMA等更高级功能的使用。此外,在PDF中,还提供了大量的代码示例和案例,以加快开发者的学习过程。 STM32HAL库开发手册PDF还提供了有关如何进行固件升级和调试的详细信息。这些信息是非常重要的,因为它们让开发者更加了解如何使用开发板和IDE(Integrated Development Environment)来导航和调试他们的代码。开发者还可以了解到如何使用JTAG和SWD协议进行远程调试,以及如何运行固件升级来更新STM32 MCU上的程序。 总之,STM32HAL库开发手册PDF对于想要使用STM32 MCU进行软件开发开发者来说,是一份非常有价值和必要的参考资料。它可以帮助开发者快速了解STM32 MCU的各项功能和性能,以及如何使用HAL库进行开发。无论是初学者还是有经验的开发者,这份手册都能帮助他们在开发STM32 MCU的应用程序时更加高效和优秀。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值