96SEO 2026-02-23 12:48 13
工作模式#xff08;高功耗-低功耗#xff09;#xff1a;运行、睡眠、停止、待机。

若备份域电源正常供电#xff0c;备份域内的RTC都可以正常运行#xff0c;备份域内的寄存器的数据会被保存#xff0c;不…
若备份域电源正常供电备份域内的RTC都可以正常运行备份域内的寄存器的数据会被保存不受功耗模式影响。
当检测到VDD的电压低于阈值VPOR及VPDR时无需外部电路辅助STM32芯片会自动保持在复位状态防止因电压不足强行工作而带来严重的后果。
在刚开始电压低于VPOR时约1.92VSTM32保持在上电复位状态PORPower
Reset。
当VDD电压持续上升至大于VPOR时芯片开始正常运行。
而在芯片开始正常运行的时候当检测到VDD电压下降至低于VPDR阈值约1.88V会进入掉电复位状态PDRPower
PVD可监控VDD的电压当它低于阈值时可产生PVD中断以让系统进行紧急处理这个阈值可以直接使用库函数PWR_PVDLevelConfig配置成某一个的阈值等级。
进入各种低功耗模式时都需要调用WFI或WFE命令实质上都是内核指令在库文件
这两个指令调用后都能进入低功耗模式需要使用__WFI();和__WFE();来调用因为__wfi和__wfe是编译器内置的函数函数内部调用了相对应的汇编指令。
直接调用WFI和WFE指令可以进入睡眠模式而进入停止模式这还需要在调用指令前设置一些寄存器位STM32
HAL库把这部分的操作封装到HAL_PWR_EnterSTOPMode()。
当稳压器在低功率模式下工作时从停止模式唤醒时会产生额外的启动延迟。
*
通过在停止模式中保持内部稳压器打开虽然启动时间减少但消耗更高。
*
*/assert_param(IS_PWR_REGULATOR(Regulator));assert_param(IS_PWR_STOP_ENTRY(STOPEntry));/*
清除PWR寄存器中的PDDS位以指定当CPU进入深度睡眠时进入停止模式
根据稳压参数值通过在PWR寄存器中设置LPDS位来选择稳压模式
((uint32_t)SCB_SCR_SLEEPDEEP_Msk));/*
以下的程序是当重新唤醒时才执行的清除内核系统控制寄存器的SLEEPDEEP位
((uint32_t)SCB_SCR_SLEEPDEEP_Msk));
进入停止模式后STM32的所有I/O都保持在停止前的状态而当它被唤醒时STM32使用HSI作为系统时钟8MHz运行由于系统是在会影响很多外设的工作状态所以一般我们在唤醒后会重新开始HSE把系统时钟设置成原来的状态。
HAL库把这部分的操作封装到HAL_PWR_EnterSTANDBYMode()。
设置内核系统控制寄存器的SLEEPDEEP位*/SET_BIT(SCB-SCR,
((uint32_t)SCB_SCR_SLEEPDEEP_Msk));/*
存储操作完毕时才能进入待机模式使用以下语句确保存储操作执行完毕
在进入待机模式后除了被使能用于唤醒的I/O其余I/O都进入高阻态而从待机模式唤醒后想防御复位STM32芯片程序重新从头开始执行。
使用外部可调电源调节成5V输出连接到开发板5V和GND排针给板子进行供电
向下调节可调电源的电压大约降到4V时LED为红色。
程序中控制PVD监控电压约为2.8V当5V降到4V时连接STM32的VDD电源会降于2.8V产生PVD事件在中断中控制亮红灯。
注意其他电源线都拔掉包括下载器、USB线。
不能远高于5V而导致烧坏开发板。
*/__HAL_RCC_PWR_CLK_ENABLE();/*
*/HAL_NVIC_SetPriority(PVD_IRQn,
,0);HAL_NVIC_EnableIRQ(PVD_IRQn);
(PVD检测电压的阈值为2.8VVDD电压低于2.8V时产生PVD中断具体数据可查询数据手册获知)
具体级别根据自己的实际应用要求配置*/sConfigPVD.PVDLevel
PWR_PVD_MODE_IT_RISING_FALLING;HAL_PWR_ConfigPVD(sConfigPVD);/*
配置PVD当电压过低时会进入中断服务函数亮红灯PVD_Config();while(1){}
运行一段时间后自动进入睡眠时间通过按键key1或key2唤醒。
睡眠状态下DAP下载器无法给STM32下载程序可唤醒后再下载或按复位键使芯片处于复位状态下下载后松开复位键。
(1){LED绿灯HAL_Delay(2000);LED红灯HAL_SuspendTick();
//暂停滴答时钟防止通过滴答时钟中断唤醒//进入睡眠模式HAL_PWR_EnterSLEEPMode(PWR_MAINREGULATOR_ON,
K1或K2按键中断LED蓝灯HAL_ResumeTick();
//被唤醒后恢复滴答时钟HAL_Delay(2000);//继续执行while循环}
LED绿灯表示本次复位是上电或引脚复位红灯待机状态蓝灯刚被唤醒。
长按KEY2按键会进入待机模式待机模式下KEY1按键可唤醒唤醒后系统会复位。
可通过检测PWR_CSRWUF标志确定复位来源。
待机模式下DAP下载器无法给STM32下载程序可唤醒后再下载。
注意由于WKUP引脚PA0必须使用上升沿才能唤醒待机状态的系统所以硬件设计PA0引脚连接到KEY1且按下KEY1时会在PA0引脚产生上升沿从而可实现唤醒的功能。
(HAL_GPIO_ReadPin(KEY2_GPIO_PORT,
*/__HAL_RCC_PWR_CLK_ENABLE();//检测复位来源if
(__HAL_PWR_GET_FLAG(PWR_FLAG_WU)
复位前为待机模式__HAL_PWR_CLEAR_FLAG(PWR_FLAG_WU);LED蓝灯}else{//
(KEY2_LongPress()){LED红灯HAL_Delay(1000);/*清除WU状态位*/__HAL_PWR_CLEAR_FLAG(PWR_FLAG_WU);/*
使能WKUP引脚的唤醒功能使能PA0*/HAL_PWR_EnableWakeUpPin(0x00000100U);//暂停滴答时钟防止通过滴答时钟中断唤醒HAL_SuspendTick();/*
*/HAL_PWR_EnterSTANDBYMode();}}
开机正常运行绿灯。
长按KEY2按键显红灯过1s后进入待机模式LED灭。
按下KEY1按键退出待机模式自动复位显蓝灯。
按下复位键重新运行绿灯。
运行一段时间后自动进入停止时间通过按键key1或key2唤醒。
待机模式下DAP下载器无法给STM32下载程序可唤醒后再下载。
注意由于WKUP引脚PA0必须使用上升沿才能唤醒待机状态的系统所以硬件设计PA0引脚连接到KEY1且按下KEY1时会在PA0引脚产生上升沿从而可实现唤醒的功能。
从停止模式唤醒后配置系统时钟:启用HSE、PLL并选择PLL作为系统时钟源。
*
*/__HAL_RCC_PWR_CLK_ENABLE();/*
*/HAL_RCC_GetOscConfig(RCC_OscInitStruct);/*
*/RCC_OscInitStruct.OscillatorType
RCC_OSCILLATORTYPE_HSE;RCC_OscInitStruct.HSEState
RCC_HSE_ON;RCC_OscInitStruct.PLL.PLLState
(HAL_RCC_OscConfig(RCC_OscInitStruct)
*/HAL_RCC_GetClockConfig(RCC_ClkInitStruct,
RCC_CLOCKTYPE_SYSCLK;RCC_ClkInitStruct.SYSCLKSource
(HAL_RCC_ClockConfig(RCC_ClkInitStruct,
进入停止模式亮红灯,按KEY1或KEY2按键可唤醒LED_RED;HAL_SuspendTick();
*/HAL_PWR_EnterSTOPMode(PWR_MAINREGULATOR_ON,
被唤醒亮蓝灯指示LED蓝灯SystemCoreClockUpdate();
//根据时钟寄存器的值更新SystemCoreClock变量//获取唤醒后的时钟状态
HAL_RCC_GetHCLKFreq();PCLK1_Frequency
HAL_RCC_GetPCLK1Freq();PCLK2_Frequency
HAL_RCC_GetPCLK2Freq();SYSCLK_Source
__HAL_RCC_GET_SYSCLK_SOURCE();/*
选择PLL作为系统时钟源(HSE和PLL在停止模式下被禁用)*/SYSCLKConfig_STOP();HAL_ResumeTick();
//被唤醒后恢复滴答时钟//获取重新配置后的时钟状态SYSCLK_Frequency
HAL_RCC_GetHCLKFreq();PCLK1_Frequency
HAL_RCC_GetPCLK1Freq();PCLK2_Frequency
HAL_RCC_GetPCLK2Freq();SYSCLK_Source
__HAL_RCC_GET_SYSCLK_SOURCE();HAL_Delay(2000);
作为专业的SEO优化服务提供商,我们致力于通过科学、系统的搜索引擎优化策略,帮助企业在百度、Google等搜索引擎中获得更高的排名和流量。我们的服务涵盖网站结构优化、内容优化、技术SEO和链接建设等多个维度。
| 服务项目 | 基础套餐 | 标准套餐 | 高级定制 |
|---|---|---|---|
| 关键词优化数量 | 10-20个核心词 | 30-50个核心词+长尾词 | 80-150个全方位覆盖 |
| 内容优化 | 基础页面优化 | 全站内容优化+每月5篇原创 | 个性化内容策略+每月15篇原创 |
| 技术SEO | 基本技术检查 | 全面技术优化+移动适配 | 深度技术重构+性能优化 |
| 外链建设 | 每月5-10条 | 每月20-30条高质量外链 | 每月50+条多渠道外链 |
| 数据报告 | 月度基础报告 | 双周详细报告+分析 | 每周深度报告+策略调整 |
| 效果保障 | 3-6个月见效 | 2-4个月见效 | 1-3个月快速见效 |
我们的SEO优化服务遵循科学严谨的流程,确保每一步都基于数据分析和行业最佳实践:
全面检测网站技术问题、内容质量、竞争对手情况,制定个性化优化方案。
基于用户搜索意图和商业目标,制定全面的关键词矩阵和布局策略。
解决网站技术问题,优化网站结构,提升页面速度和移动端体验。
创作高质量原创内容,优化现有页面,建立内容更新机制。
获取高质量外部链接,建立品牌在线影响力,提升网站权威度。
持续监控排名、流量和转化数据,根据效果调整优化策略。
基于我们服务的客户数据统计,平均优化效果如下:
我们坚信,真正的SEO优化不仅仅是追求排名,而是通过提供优质内容、优化用户体验、建立网站权威,最终实现可持续的业务增长。我们的目标是与客户建立长期合作关系,共同成长。
Demand feedback