STM32G0B1单片机进入STOP模式休眠后,唤醒无法正常启动

[复制链接]
2407|26
 楼主| aton1986 发表于 2026-1-7 08:39 | 显示全部楼层
dffzh 发表于 2026-1-6 13:32
那是不是把串口反初始化操作改成只有这句代码,也是正常的?

是的,就加这句就行,其他不做操作也正常的
dffzh 发表于 2026-1-7 08:52 | 显示全部楼层
aton1986 发表于 2026-1-7 08:39
是的,就加这句就行,其他不做操作也正常的

串口的控制寄存器1如下所示:


如果你能不嫌麻烦,可以按下面这个方法再进一步确认一下是哪个标志位影响了?
用二分法验证会比较快:
1、用CR1=0x0000FFFF验证;
2、用CR1=0xFFFF0000验证;
这样可以确定是高16位还是低16位影响;
根据前面验证结果再用类似CR1=0x00FF和CR1=0xFF00方式进一步验证;
...
最后大概就能确定是哪个标志位影响了,先把这个找出来。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
onemoren 发表于 2026-1-9 14:17 | 显示全部楼层
你在APP进来的地方重设置了SCB->VTOR = APPLICATION_ADDRESS,这没有错;但你在STOP唤醒之后重新调用systemInit()或其它初始化函数了吧?里面可能又设置SCB->VTOR =0x8000000了吧?导致APP的中断向量表位置错误了。你查查是不是这样。
onemoren 发表于 2026-1-9 14:17 | 显示全部楼层
你在APP进来的地方重设置了SCB->VTOR = APPLICATION_ADDRESS,这没有错;但你在STOP唤醒之后重新调用systemInit()或其它初始化函数了吧?里面可能又设置SCB->VTOR =0x8000000了吧?导致APP的中断向量表位置错误了。你查查是不是这样。
 楼主| aton1986 发表于 2026-1-9 15:16 | 显示全部楼层
onemoren 发表于 2026-1-9 14:17
你在APP进来的地方重设置了SCB->VTOR = APPLICATION_ADDRESS,这没有错;但你在STOP唤醒之后重新调用system ...

应该是没有的,如果重新设置,睡眠醒过来后怎么样也跑不起来的,我也尝试过在醒来后初始化代码前重新设置中断向量地址,也没有作用,晚点我测下是串口的哪一位引起的问题
cooldog123pp 发表于 2026-1-26 13:13 | 显示全部楼层
dffzh 发表于 2026-1-5 09:20
我看了下数据手册,是不是因为USART还能正常唤醒MCU,而外部中断无法唤醒了?这么看来,难道是外部中断向 ...

老哥还是分析的到位的,唤醒的源不对头,应该只能串口唤醒。
dffzh 发表于 2026-1-26 15:31 | 显示全部楼层
cooldog123pp 发表于 2026-1-26 13:13
老哥还是分析的到位的,唤醒的源不对头,应该只能串口唤醒。

是的
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 在线客服 返回列表 返回顶部
0