您的位置:首页 > 财经 > 金融 > 青岛h5建站模板_内容营销公司_外贸订单一般在哪个平台接?_品牌营销策划包括哪些内容

青岛h5建站模板_内容营销公司_外贸订单一般在哪个平台接?_品牌营销策划包括哪些内容

2025/1/17 3:35:56 来源:https://blog.csdn.net/m0_46295154/article/details/143753587  浏览:    关键词:青岛h5建站模板_内容营销公司_外贸订单一般在哪个平台接?_品牌营销策划包括哪些内容
青岛h5建站模板_内容营销公司_外贸订单一般在哪个平台接?_品牌营销策划包括哪些内容

  STM32 L4系列单片机的STOP2模式。

目录

    • 一、应用场景
    • 二、设计思路
    • 三、关键代码
    • 四、功能验证

一、应用场景

  在实际的项目开发过程中,有些产品是要求有睡眠模式的,比如智能手表、对讲机等移动设备,在不使用的时候希望设备不要耗电来延长设备工作时间。这里提供一种解决思路:收到睡眠指令(或某个按键按下时)进入睡眠模式并开启唤醒按键的GPIO中断,当唤醒按键按下时退出睡眠模式。

二、设计思路

1、关闭已打开的外设(包括调试烧录口)
2、所有GPIO设置为模拟输入
3、关闭所有GPIO时钟
4、开启GPIO中断(中断唤醒用,如果不用GPIO中断唤醒不用开)
5、进入STOP模式

三、关键代码

/* 关闭调试口 */
HAL_DBGMCU_DisableDBGStopMode();
HAL_DBGMCU_DisableDBGSleepMode();
HAL_DBGMCU_DisableDBGStandbyMode();/* 关闭串口1时钟 */
LL_USART_DeInit(USART1);
__HAL_RCC_USART1_CLK_DISABLE();/* 设置所有引脚为模拟输入 */
GPIO_InitTypeDef GPIO_InitStruct = {0};
GPIO_InitStruct.Pin = GPIO_PIN_All;
GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
GPIO_InitStruct.Pull = GPIO_NOPULL;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
HAL_GPIO_Init(GPIOC,&GPIO_InitStruct);
HAL_GPIO_Init(GPIOH,&GPIO_InitStruct);
HAL_GPIO_Init(GPIOA,&GPIO_InitStruct);
HAL_GPIO_Init(GPIOB,&GPIO_InitStruct);
HAL_GPIO_Init(GPIOD,&GPIO_InitStruct);/* 关闭所有GPIO时钟 */
__HAL_RCC_GPIOC_CLK_DISABLE();
__HAL_RCC_GPIOH_CLK_DISABLE();
__HAL_RCC_GPIOA_CLK_DISABLE();
__HAL_RCC_GPIOB_CLK_DISABLE();
__HAL_RCC_GPIOD_CLK_DISABLE();//开启GPIO中断唤醒MCU
__HAL_RCC_GPIOA_CLK_ENABLE();
GPIO_InitStruct.Pin = OK_key_Pin;
GPIO_InitStruct.Mode = GPIO_MODE_IT_FALLING;
GPIO_InitStruct.Pull = GPIO_PULLUP;
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
HAL_NVIC_SetPriority(EXTI15_10_IRQn, 5, 0);
HAL_NVIC_EnableIRQ(EXTI15_10_IRQn);HAL_PWR_DisablePVD();								//禁用电源电压检测器(PVD)
HAL_SYSCFG_DisableVREFBUF();						//禁用内部电压基准缓冲器(VREFBUF)
HAL_SYSCFG_DisableIOAnalogSwitchBooster();			//禁用I/O模拟量开关电压升压器。
__HAL_PWR_PVM3_EXTI_DISABLE_RISING_FALLING_EDGE();	//禁用PVM3中断
__HAL_PWR_PVM4_EXTI_DISABLE_RISING_FALLING_EDGE();	//禁用PVM4中断/* 降低核心工作电压,需要根据实际工作频率设置,建议在Cubemx内的RCC项目中配置  */
__HAL_PWR_VOLTAGESCALING_CONFIG(PWR_REGULATOR_VOLTAGE_SCALE2);
HAL_SuspendTick(); 									// 暂停滴答时钟,防止通过滴答时钟中断唤醒
__HAL_PWR_CLEAR_FLAG(PWR_FLAG_WU);  				// 清除唤醒标记
__HAL_RCC_PWR_CLK_ENABLE();							//运行电源管理时钟 //进入STOP模式2
HAL_PWREx_EnterSTOP2Mode(PWR_STOPENTRY_WFI); 

四、功能验证

  可以将设备接在稳压源或专门的功耗测试设备上,对比正常工作下的电流和睡眠模式下的电流大小。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com