
我需要实现的功能:干电池提供电源持续使用5年以上。外部接口只有3个,2个GPIO和1个USART。2个GPIO用于外部中断,USART用于和上位机通信。项目使用STM32CubeMX生成代码,模板选择的LL,干电池电压为3V,容量为1000mAh。STM32L010K8T6上电初始化,重要代码如下:
初始化完成立即进入STOP模式,代码如下:
请问上述代码是存在寄存器设置错误?如何让USART2在产生RXNE中断信号时唤醒MCU?谢谢! |
STM32H755生成的stm32CubeIde的TouchGFX designer生成代码出错。
STM32H755的TouchGFX不能选择M7内核
STM32H755的TouchGFX如何使能Cortex-M7
TouchGFX Designer如何修改生成工程的脚本
STM32H743 LAN8720 CUBEMX配置lwIP无法ping通,分配pbuf失败
stm32Cube Visual studio code 如何设置STM32H7的下载算法
vscode如何使用CUBECTL
stm32f746g-disco开发板的串口通讯连接方式
关于STM32L芯片静态电流无故波动问题
STM32CubeG4 HAL库 V1.6.1 版本中的 stm32g4xx_hal.h 文件宏定义BUG
K8T6这款32PIN,没有引出LPUSART1引脚。
我刚才看的参考手册还不是针对32L010的,STM32L010对应的参考手册是 RM0451.
刚看了下,STM32L010x8的 UART2 是 支持STOP唤醒的。
你现在使用LL库组织的代码,此刻没法一眼看出问题出在哪里。
可能要找相应的开发板做些调试验证后才知道。
你看看是否少了类似这样的函数:
void LL_EXTI_EnableEvent_0_31(uint32_t ExtiLine); 这里UART 事件映射的中断线为26.
先基于手册做好确认,然后自己慢慢调试。
嗯,补充下。
我刚才看的参考手册还不是针对32L010的,STM32L010对应的参考手册是 RM0451.
刚看了下,STM32L010x8的 UART2 是 支持STOP唤醒的。
你现在使用LL库组织的代码,此刻没法一眼看出问题出在哪里。
可能要找相应的开发板做些调试验证后才知道。
你看看是否少了类似这样的函数:
void LL_EXTI_EnableEvent_0_31(uint32_t ExtiLine); 这里UART 事件映射的中断线为26.
先基于手册做好确认,然后自己慢慢调试。
可以先测试一下,不进入低功耗,看看串口2能否工作。然后再缩小范围检查。
补充一下,要实现低功耗下UART2的唤醒,需要配置UART2的时钟为HSI或者LSE。系统默认的PCLK1的时钟是实现不了。建议使用LSE为UART2 详细说明请参考手册中相关章节 21.5.17 Wakeup from Stop mode using USART