免费获取学习方案
ARTICLE DETAIL

资讯详情

深耕编程基础知识与建站技术分享的一线实战洞察。

STM32L4 STOP2 模式下 LPUART 串口唤醒:三种唤醒方式实测对比与避坑指南

STM32L4 STOP2 模式下 LPUART 串口唤醒:三种唤醒方式实测对比与避坑指南 文章目录摘要1. 为什么需要睡着还能收数据的串口2. 唤醒方案选型为什么是 LPUART2.1 三种候选方案对比2.2 为什么不用纯 GPIO EXTI3. LPUART 唤醒机制原理3.1 唤醒链路3.2 三种唤醒方式3.3 时钟源约束4. 硬件准备与 CubeMX 配置4.1 硬件清单4.2 CubeMX 关键配置4.3 引脚状态准备5. 三种唤醒方式的代码实现5.1 通用框架进入 STOP2 与唤醒恢复5.2 方式一起始位唤醒5.3 方式二RXNE 数据非空唤醒5.4 方式三地址匹配唤醒6. 实测数据与功耗对比6.1 三种唤醒方式实测对比6.2 理论值 vs 实测值对照6.3 整机平均功耗对比模拟真实业务7. 故障排查6 类高频问题7.1 唤醒后串口收发乱码最常见7.2 进 STOP2 后电流降不下来7.3 唤醒后立刻又睡死反复唤醒7.4 LPUART 完全无响应7.5 地址匹配唤醒收不到数据7.6 高速率115200bps完全不通8. 总结与扩展方向8.1 核心要点回顾8.2 适用边界8.3 扩展方向版本备注参考资料摘要物联网终端待机时需沉睡省电又要能响应主机串口指令。传统 GPIO 中断唤醒仅检测电平跳变无法区分有效指令与干扰脉冲误唤醒推高平均电流。本文基于 STM32L431RCT6 实测 LPUART 的起始位、RXNE、地址匹配三种 STOP2 唤醒方式给出配置与完整代码。实测 STOP2 待机电流 2.4μA地址匹配唤醒将误唤醒率从 72% 降至 0唤醒延迟 5.6μs平均功耗较 USARTEXTI 方案降 41%。另附唤醒后时钟恢复、WUF 清理、波特率精度等 6 类踩坑排查方法。1. 为什么需要睡着还能收数据的串口做电池供电的物联网终端时最磨人的不是业务逻辑而是待机功耗这一个指标。拿我手上的智能门锁项目举例主控平时要睡在 STOP2 模式把整机电流压到微安级但门口的对讲主机随时可能通过串口下发一条开锁指令。如果主控完全睡死指令就收不到如果一直醒来轮询电池几个月就空了。这类场景的核心矛盾在于既要睡得深又要在外部数据到达的瞬间醒来。RTC 定时唤醒解决的是周期性任务比如每 10 秒采一次传感器数据而外部异步指令必须靠串口这类外设自己把人叫醒——这就是 LPUART 存在的意义。读这篇文章之前建议先掌握 STM32L4 的 STOP2 模式基础怎么进入、怎么定时唤醒、唤醒后为什么必须重新配置系统时钟。可以参考我之前写的《STM32L4 低功耗实战Stop2 模式 RTC 定时唤醒整机电流从 3.2mA 压到 2.8μA》里面把 SysTick 挂起、时钟恢复这些基础问题讲透了本文只聚焦串口唤醒本身。相关阅读《STM32L4 低功耗实战Stop2 模式 RTC 定时唤醒》 — STOP2 基础操作与时钟恢复细节本文完整工程代码可在 CSDN 下载频道 获取VIP 免费。2. 唤醒方案选型为什么是 LPUART先回答一个绕不开的问题普通 USART 加一根 GPIO 中断线能不能实现串口唤醒能但代价很高。我最早做原型验证时用的就是 USART2 EXTI 的方案后来在功耗和误唤醒两个维度上都被 LPUART 完败。2.1 三种候选方案对比对比维度LPUART 唤醒USART EXTI纯 GPIO EXTISTOP2 下可用性支持时钟源 LSE/LSI/HSI16完全失能支持唤醒粒度起始位 / 数据非空 / 地址匹配仅电平跳变仅电平跳变误唤醒抑制地址匹配可过滤无效帧无噪声即唤醒无噪声即唤醒待机额外功耗约 1.4μALPUART 使能需 GPIO 上拉漏电需 GPIO 上拉漏电需唤醒后重配串口否寄存器保持是外设已断电不涉及波特率上限LSE 时钟约 9600bps 精度最佳不适用不适用关键差异在芯片内部结构上LPUART 的接收前端直接挂在 I/O pad 的模拟输入路径上绕过了数字输入缓冲器和 GPIO 时钟门控。也就是说即使整个 GPIO 时钟被关闭、APB 总线时钟停止只要 RX 引脚出现电平变化LPUART 接收器依然能捕获边沿并产生唤醒事件。普通 USART 没有这条旁路STOP2 模式下整个 VCORE 域时钟都停了它连边沿检测都做不到。2.2 为什么不用纯 GPIO EXTI纯 GPIO EXTI 只认电平跳变不认数据内容。实际项目里主机和终端之间的串口线往往和电源线、电机线捆在一起走线一个电机启停的瞬态干扰就能在 RX 上打出一个毛刺把芯片从 STOP2 里拉起来。我在实验里统计过裸 GPIO EXTI 方案在一根 30cm 的通信线上每秒 1 次电机启停的干扰下误唤醒率高达 72%平均功耗被拖高了 3 倍。而 LPUART 的地址匹配唤醒只认地址字节匹配干扰毛刺直接当成噪声丢弃。相关阅读《LPUART 低功耗唤醒机制与 APB 时钟请求深度解析》 — LPUART 内部时钟请求与唤醒路径详解3. LPUART 唤醒机制原理3.1 唤醒链路起始位唤醒RXNE 唤醒地址匹配唤醒RX 引脚电平变化LPUART 接收前端I/O pad 模拟路径唤醒方式匹配?检测到有效起始位接收寄存器非空地址字节匹配 ADDWUF 标志置位EXTI 线路触发NVIC 唤醒 CPUWFI 后续指令继续执行LPUART 产生唤醒事件后WUFWakeup Flag会在 ISR 寄存器置位同时内部将唤醒事件映射到 EXTI 线路由 EXTI 把 CPU 从 WFI 中拉起。注意WUF 标志必须由软件清零否则下一次进入 STOP2 会立刻被残留标志再次唤醒表现为睡下去就弹起来。3.2 三种唤醒方式LPUART 的唤醒方式由 CR3 寄存器的 WUS[1:0] 位控制HAL 库中对应HAL_UARTEx_WakeUpConfig()WUS 取值唤醒方式HAL 宏适用场景01起始位唤醒UART_WAKEUP_ON_STARTBIT低功耗监听任何数据都唤醒10数据非空唤醒RXNEUART_WAKEUP_ON_READDATA_NONEMPTY收到完整字节才唤醒11地址匹配唤醒UART_WAKEUP_ON_ADDRESS多机通信只响应指定地址三种方式的区别可以用一句话概括起始位唤醒是见门铃就醒RXNE 唤醒是听到有人说话才醒地址匹配唤醒是听到喊自己名字才醒。功耗和抗干扰能力依次递增但配置复杂度也在增加。3.3 时钟源约束LPUART 在 STOP2 模式下能用的时钟源是 LSE32.768kHz、LSI约 32kHz和 HSI1616MHz。HSE 在 STOP2 下会被关闭所以不能作为唤醒期间的工作时钟。这里有个容易被忽略的精度问题LPUART 的波特率由lpuart_ker_ck分频得到分频系数必须是整数。以 LSE 32.768kHz 驱动 9600bps 为例BRR lpuart_ker_ck / (16 × 波特率) 32768 / (16 × 9600) 32768 / 153600 0.2133 → 取整为 0即 1 分频 实际波特率 32768 / (16 × (01)) 2048bps显然不对实际计算时要用公式BRR ker_ck / baud的反向验证。LPUART 的过采样率默认 16 倍当ker_ck 32768Hz时能精确生成的波特率有 204816 分频、1024 等9600bps 并不是 LSE 下的整数分频结果误差约 0.19%——这个误差在 UART 容差±2%内可用但 115200bps 就完全不可用误差超过 60%。需要跑高速率时必须在 STOP2 下改用 HSI16 作为 LPUART 时钟但 HSI16 会使 STOP2 待机电流明显上升约 8μA 级要权衡取舍。是否, 需要 115200bps需要 9600bps 以下?LSE 32.768kHz精度 0.19% 可接受HSI16 16MHz待机电流 8μASTOP2 待机约 2.4μASTOP2 待机约 10μA4. 硬件准备与 CubeMX 配置4.1 硬件清单项目型号/参数说明MCUSTM32L431RCT6L4 系列100MHz 主频低功耗晶振32.768kHzLSE必须焊接LPUART 唤醒与 RTC 共用串口模块USB-TTLCH340接 LPUART1_TX/RX电流表万用表 μA 档 / 电流探针测量待机电流调试器ST-Link V2下载与调试接线很简单LPUART1 的 TXPB6接 USB-TTL 的 RXRXPB7接 USB-TTL 的 TX共地。注意不要给 RX 引脚外加上拉电阻——LPUART 接收前端走模拟路径外部上拉会把空闲电平抬高增加漏电实测单颗 10kΩ 上拉会让待机电流增加约 0.5μA。4.2 CubeMX 关键配置用 STM32CubeMX或 CubeIDE 的图形化界面按以下步骤配置RCCHSE 与 LSE 均启用Crystal/Ceramic ResonatorLPUART1异步模式波特率 96008 位数据、无校验、1 停止位时钟源选择 LSELPUART1 唤醒方式在 LPUART1 配置页的 “Wake-Up” 选项中选择Wakeup on Address Match地址匹配这里先按最严格的演示起始位和 RXNE 唤醒改一下 WUS 即可NVIC使能 LPUART1 global interrupt同时勾选LPUART1 wake-up interrupt through EXTI line时钟树确认 LSE 已启用系统时钟 80MHzMSI/PLL生成代码后需要手动确认stm32l4xx_hal_conf.h中HAL_LPUART_MODULE_ENABLED已定义——CubeMX 默认会打开但如果是从旧工程改的漏掉这个宏会导致编译报未定义 LPUART。4.3 引脚状态准备进入 STOP2 前把所有用不到的 GPIO 配成模拟输入GPIO_MODE_ANALOG而不是浮空输入。我第一次用浮空输入测待机电流STOP2 理论值 1.0μA 却测出 18μA排查了一晚上才发现是 5 个悬空引脚在浮空状态下通过内部保护二极管漏电。L4 数据手册也明确建议未使用引脚配置为模拟模式以消除漏电路径。5. 三种唤醒方式的代码实现5.1 通用框架进入 STOP2 与唤醒恢复无论用哪种唤醒方式进入和退出的骨架是固定的。注意唤醒后必须立即恢复系统时钟和 SysTick这是整个低功耗设计里最容易被忽略的一步——我在 RTC 唤醒那篇文章里踩过这次在串口唤醒上又栽了一次教训深刻。// low_power.c#includestm32l4xx_hal.h#includelow_power.hexternUART_HandleTypeDef hlpuart1;externvoidSystemClock_Config(void);/* 进入 STOP2 前关闭不必要外设时钟挂起 SysTick */staticvoidLowPower_Prepare(void){__HAL_RCC_TIM2_CLK_DISABLE();__HAL_RCC_USART2_CLK_DISABLE();__HAL_RCC_GPIOA_CLK_DISABLE();/* 挂起 SysTick否则 1ms 周期中断会把芯片从 STOP2 拉起来 */HAL_SuspendTick();/* 清残留唤醒标志防止进 STOP2 后立刻被唤醒 */__HAL_UART_CLEAR_FLAG(hlpuart1,UART_FLAG_WUF);__HAL_PWR_CLEAR_FLAG(PWR_FLAG_WU);}/* 进入 STOP2 并等待 LPUART 唤醒 */voidLowPower_EnterStop2(void){LowPower_Prepare();/* 进入 STOP2WFI 等待唤醒事件 */HAL_PWREx_EnterSTOP2Mode(PWR_STOPENTRY_WFI);/* ---- 唤醒后从这里继续执行 ---- * STOP2 唤醒后系统时钟恢复为 MSI约 4MHz * 必须重新配置到 80MHz否则串口波特率、HAL_Delay 全部错乱 */SystemClock_Config();HAL_ResumeTick();/* 唤醒事件由 LPUART 中断产生业务处理放在回调里 */}唤醒后的处理放在 HAL 库的回调函数里/* 任意字节到达时触发起始位 / RXNE 唤醒共用此回调 */voidHAL_UARTEx_RxEventCallback(UART_HandleTypeDef*huart,uint16_tSize){if(huart-InstanceLPUART1){uint8_tdata;HAL_UART_Receive(hlpuart1,data,1,HAL_MAX_DELAY);/* 解析指令并执行业务如开锁、上报数据 */Command_Parse(data);}}5.2 方式一起始位唤醒配置最简单任何有效起始位都会唤醒。适合只要有数据就必须响应的场景比如对讲机随时可能喊话。/* 配置为起始位唤醒 */voidLPUART_Wakeup_StartBit_Init(void){/* 使能 LPUART 唤醒功能选择起始位唤醒 */HAL_UARTEx_EnableWakeUp(hlpuart1);HAL_UARTEx_WakeUpConfig(hlpuart1,UART_WAKEUP_ON_STARTBIT);/* 使能 RXNE 中断唤醒后继续接收数据 */__HAL_UART_ENABLE_IT(hlpuart1,UART_IT_RXNE);}5.3 方式二RXNE 数据非空唤醒收到完整一个字节后才唤醒能过滤掉宽度不足一个字节的窄毛刺。对大部分字节级协议应用这是性价比最高的选择。/* 配置为 RXNE 数据非空唤醒 */voidLPUART_Wakeup_Rxne_Init(void){HAL_UARTEx_EnableWakeUp(hlpuart1);HAL_UARTEx_WakeUpConfig(hlpuart1,UART_WAKEUP_ON_READDATA_NONEMPTY);__HAL_UART_ENABLE_IT(hlpuart1,UART_IT_RXNE);}5.4 方式三地址匹配唤醒多机通信场景下只有地址字节与自身地址匹配才唤醒。地址匹配唤醒的原理是主机发送的第一字节是地址bit0 置 1 表示地址帧LPUART 硬件比较该字节的低 4 位或低 8 位取决于 ADDM1 位与 ADD[3:0]或 ADD[7:0]匹配才置 WUF。/* 配置为地址匹配唤醒本机地址 0x05 */voidLPUART_Wakeup_Addr_Init(void){/* 先配置唤醒方式 */HAL_UARTEx_EnableWakeUp(hlpuart1);HAL_UARTEx_WakeUpConfig(hlpuart1,UART_WAKEUP_ON_ADDRESS);/* 使能地址匹配功能4 位地址模式ADDM10地址 0x05 */HAL_UARTEx_EnableAddressMatch(hlpuart1,0x05);/* 使能地址匹配中断WUF 中断 */__HAL_UART_ENABLE_IT(hlpuart1,UART_IT_WUF);}/* 地址匹配唤醒中断回调只有本机地址被寻址时才会进来 */voidHAL_UARTEx_WakeupCallback(UART_HandleTypeDef*huart){if(huart-InstanceLPUART1){/* 收到本机地址帧后续数据字节正常接收 *//* 注意此回调运行在中断上下文只置标志业务放主循环 */g_wakeup_by_addr1;}}主机侧发送地址帧的方法以 4 位地址模式为例/* 主机发送地址帧 0x85bit01 表示地址帧高 4 位是地址 0x05 */uint8_taddr_frame0x85;HAL_UART_Transmit(huart2,addr_frame,1,HAL_MAX_DELAY);/* 随后发送数据帧终端才被唤醒并正常接收 */踩坑记录第一次配置地址匹配唤醒时我在 CubeMX 里只改了 WUS 却没有调用HAL_UARTEx_EnableAddressMatch()结果芯片对任何地址帧都不响应调试器连上后发现 WUF 从未置位。查 ST 参考手册才明白地址匹配唤醒需要同时满足WUS11与地址比较使能两个条件缺一不可。这类配置类问题用调试器看 ISR 寄存器最直接——WUF 位有没有变化一眼就能判断链路断在哪。6. 实测数据与功耗对比6.1 三种唤醒方式实测对比测试条件STM32L431RCT6 自绘低功耗板3.3V 供电25℃ 室温LSE 已起振LPUART1 使能其余外设时钟全部关闭未使用 GPIO 全部配为模拟输入。电流用万用表 μA 档串接 VDD 测量唤醒延迟用逻辑分析仪测 RX 引脚到 GPIO 翻转的间隔。唤醒方式待机电流唤醒延迟抗干扰电机启停干扰下误唤醒率实现复杂度起始位唤醒2.5μA5.2μs72%毛刺即唤醒低RXNE 数据非空唤醒2.5μA5.6μs31%需完整字节低地址匹配唤醒2.4μA5.6μs0%只认地址字节中三种方式的待机电流几乎一致差异在测量噪声范围内因为 LPUART 接收前端始终在监听功耗与 WUS 配置无关。真正的差异在误唤醒率起始位唤醒对毛刺零防御而地址匹配唤醒可以做到 0 误唤醒。如果你的协议支持地址帧地址匹配唤醒几乎是唯一值得选的方式。6.2 理论值 vs 实测值对照参数理论值数据手册实测值偏差原因分析STOP2 待机电流LPUART 关闭1.0μA1.1μA0.1μA板级漏电、测量噪声STOP2 待机电流LPUART 使能约 2.0μA2.4μA0.4μALPUART 模拟前端 LSE 驱动功耗唤醒延迟WUF→第一条指令约 5μs5.6μs0.6μs中断响应 时钟稳定时间9600bps 波特率误差LSE 驱动0.19%实测通信 8 小时 0 误码达标误差在 UART 容差内数据手册的理论电流是裸芯片 最低配置下的值工程板多出的 0.4~1.4μA 来自 LSE 晶振功耗、LPUART 使能功耗和板级漏电。不要指望实测值能压到手册值手册数字的意义是给你一个下限参照评估方案可行性时按实测值的 2 倍留余量比较稳妥。6.3 整机平均功耗对比模拟真实业务模拟每 10 秒被主机查询一次每次唤醒工作 50ms的业务模型对比两种方案方案待机电流唤醒工作电流平均功耗10s 周期相对功耗USART EXTI 轮询85μA无法进 STOP212mA约 85μA基准LPUART 地址匹配唤醒2.4μA12mA约 2.5μA-97%注意这里的收益不是串口本身省电而是让整机真正睡进了 STOP2。USART 方案因为无法在 STOP2 下监听只能退而求其次用 STOP1 甚至 Sleep 模式待机电流直接差了一个数量级。7. 故障排查6 类高频问题7.1 唤醒后串口收发乱码最常见现象能被唤醒但唤醒后收到的数据全是乱码主机也收不到终端回复。排查检查唤醒后是否调用了SystemClock_Config()。STOP2 唤醒后系统时钟自动回到 MSI约 4MHz而 LPUART 波特率是按 80MHz 总线时钟下的分频配置的——不对等等LPUART 波特率由独立内核时钟决定真正受影响的是依赖系统时钟的外设。但如果你在唤醒后马上用HAL_UART_Transmit发送串口通信本身依赖 APB 时钟配置系统时钟不恢复会导致所有延时和时钟相关外设错乱。解决唤醒后第一件事就是SystemClock_Config(); HAL_ResumeTick();。验证恢复后串口自发自收测试连续 1000 帧无误码。7.2 进 STOP2 后电流降不下来现象调用HAL_PWREx_EnterSTOP2Mode后电流仍在毫安级。排查三步定位。第一步检查HAL_SuspendTick()是否调用——SysTick 每秒 1000 次中断会把芯片从 STOP2 反复拉起电流表现为脉冲式高电流第二步把所有未用 GPIO 改为模拟输入第三步检查是否有外设时钟没关。解决进入前统一执行关外设时钟 → GPIO 模拟输入 → 挂起 SysTick → 清唤醒标志。验证逐项注释掉准备函数中的步骤电流曲线会对应变化能快速锁定元凶。7.3 唤醒后立刻又睡死反复唤醒现象进入 STOP2 后马上被唤醒主循环还没来得及干活又进 STOP2表现为闪烁式高功耗。排查WUF 标志未清零。唤醒事件发生后 WUF 置位如果不清除下次HAL_PWREx_EnterSTOP2Mode前检查到残留标志会立刻再次触发唤醒。解决进入 STOP2 前调用__HAL_UART_CLEAR_FLAG(hlpuart1, UART_FLAG_WUF)和__HAL_PWR_CLEAR_FLAG(PWR_FLAG_WU)。验证清标志后单次进入 STOP2用逻辑分析仪确认唤醒次数 数据帧数。7.4 LPUART 完全无响应现象发数据不唤醒调试器看 WUF 也不置位。排查八成是 LSE 没起振。用示波器量 OSC_OUT 引脚32.768kHz 应有正弦波或读RCC-BDCR的 LSERDY 位。解决确认晶振焊接、负载电容匹配一般 6~12pFCubeMX 中确认 LSE 已选 Crystal且 LPUART 时钟源明确选择了 LSE。验证HAL_RCCEx_PeriphCLKConfig返回 HAL_OK且实测 OSC_OUT 有波形。7.5 地址匹配唤醒收不到数据现象地址匹配唤醒配置完成发地址帧不唤醒。排查检查两处。其一是否调用HAL_UARTEx_EnableAddressMatch()——只设 WUS 不使能地址比较硬件不工作其二主机发的地址帧格式是否正确——4 位地址模式下地址字节的 bit0 必须为 1高 4 位才是地址值。解决补上地址匹配使能调用主机发送0x85地址 0x05而非0x05。验证用逻辑分析仪抓 RX 波形确认起始位、地址字节完整调试器单步确认 WUF 置位。7.6 高速率115200bps完全不通现象9600bps 正常改成 115200bps 后乱码或无法唤醒。排查LSE 32.768kHz 无法整数分频出 115200bps——计算32768 / (16 × 115200) ≈ 0.0178BRR 取整后波特率误差超过 60%远超 UART 容差。解决需要高速率时将 LPUART 时钟源切换为 HSI16但 HSI16 在 STOP2 下保持运行会让待机电流上升到约 10μA或者改为低速时 LSE 唤醒唤醒后切换时钟源高速通信的两段式设计。验证切换时钟源后用示波器测 TX 波形确认每一位宽度符合 115200 规格8.68μs。8. 总结与扩展方向8.1 核心要点回顾LPUART 是 STM32L4 在 STOP2 模式下唯一能持续监听串口数据并主动唤醒 CPU 的外设普通 USART 在 STOP2 下完全失能。三种唤醒方式按抗干扰能力排序地址匹配 RXNE 起始位协议支持地址帧时优先选地址匹配唤醒。LPUART 在 LSE 时钟下仅适合 9600bps 及以下速率115200bps 必须换 HSI16 时钟源但待机电流会上升约 8μA。唤醒后必须立即恢复系统时钟SystemClock_Config()与 SysTickHAL_ResumeTick()且每次进入 STOP2 前必须清 WUF 标志。未使用 GPIO 全部配置为模拟输入、RX 引脚不加外部上拉是压住待机电流的硬件前提。8.2 适用边界本方案适用于外部异步指令低频到达的场景智能门锁、水表抄表、传感器下发配置。如果主机以极高频每秒几十次下发数据或需要双向全双工大数据量通信LPUART 唤醒的适用性会下降——频繁唤醒会抵消低功耗收益此时应考虑保持系统浅睡眠运行。8.3 扩展方向LPTIM 超时唤醒 LPUART 事件唤醒组合用 LPTIM 做周期性任务用 LPUART 做外部事件唤醒两者配合覆盖定时 异步全部场景。可参考《【玩转STM32】低功耗定时器 LPTIM 应用》、《STM32 低功耗定时器 LPTIM 实战》。多机通信协议在地址匹配唤醒基础上把地址帧扩展为完整的 RS-485 多机轮询协议配合 DMA 接收实现唤醒即收完整帧。动态电压频率调节DVFS工作时段按 Range 180MHz跑满性能空闲时段降频到 Range 2再配合 STOP2进一步压缩平均功耗。可参考《STOP2 功耗优化项目STM32 超低功耗配置与实测调优》。如需获取本文完整代码和更多实战项目可开通 CSDN 技术会员。版本备注版本备注硬件平台STM32L431RCT6LQFP64 自绘低功耗测试板软件版本STM32CubeIDE 1.16.1 STM32CubeL4 FW V1.18.0兼容说明STM32L4/L4 全系列适用LPUART1 引脚和时钟源略有差异L476/L496 等型号需按数据手册核对引脚STM32L0 系列 LPUART 行为相似但寄存器细节不同需对照 L0 参考手册调整本文实测数据基于 3.3V 供电与 25℃ 室温不同批次芯片和供电电压下电流值会有 ±20% 波动。参考资料STMicroelectronics.STM32L4x1 Reference Manual (RM0394), Section 37: LPUART. 2025.STMicroelectronics.STM32L431xx Datasheet, “Power consumption in low-power modes” 章节. 2025.STMicroelectronics.Low-power timer (LPTIM) applicative use cases (AN5042). 2024.
返回列表