OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 4238|回复: 10

stm32低功耗停止模式退出后LCD显示不正常问题

[复制链接]

13

主题

31

帖子

0

精华

初级会员

Rank: 2

积分
187
金钱
187
注册时间
2019-7-30
在线时间
34 小时
发表于 2019-9-9 16:24:22 | 显示全部楼层 |阅读模式
1金钱
我用STM32H7的停止模式,外部中断触发,唤醒后LCD显示不正常,详情看图,  串口输出表明程序是接着停止前继续运行的

唤醒后

唤醒后
    想请教一下是怎么回事?

唤醒前

唤醒前
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

2

主题

16

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
207
金钱
207
注册时间
2019-5-8
在线时间
72 小时
发表于 2019-9-9 16:26:00 | 显示全部楼层
大概是:休眠后屏需要重新初始化。估计你没有,我猜的
回复

使用道具 举报

11

主题

1044

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3718
金钱
3718
注册时间
2011-5-23
在线时间
2012 小时
发表于 2019-9-9 16:30:14 | 显示全部楼层
估计休眠期间的IO状态不稳定,LCD已经被复位了吧。
不管是否被复位,推出休眠后,重新初始化一下。
另外,LCD也可以休眠降低功耗。
RT-Thread RTOS 音频,WIFI,蓝牙
回复

使用道具 举报

122

主题

294

帖子

0

精华

高级会员

Rank: 4

积分
712
金钱
712
注册时间
2015-11-14
在线时间
868 小时
发表于 2019-9-9 16:40:10 | 显示全部楼层
我用H7  从STOP 中唤醒后偶尔也有点毛病。不知道怎么解决,干脆唤醒后来个软件复位,包治百病。   
回复

使用道具 举报

13

主题

31

帖子

0

精华

初级会员

Rank: 2

积分
187
金钱
187
注册时间
2019-7-30
在线时间
34 小时
 楼主| 发表于 2019-9-9 17:11:35 | 显示全部楼层
你有用LCD显示吗?   显示有没有问题    软件复位啥意思   ?  我现在就是唤醒后显示有问题  不知道哪里出了问题   交流下  
回复

使用道具 举报

13

主题

31

帖子

0

精华

初级会员

Rank: 2

积分
187
金钱
187
注册时间
2019-7-30
在线时间
34 小时
 楼主| 发表于 2019-9-9 17:13:20 | 显示全部楼层
pentsum 发表于 2019-9-9 16:26
大概是:休眠后屏需要重新初始化。估计你没有,我猜的

这就是已经初始化过的  不然屏都不显示
回复

使用道具 举报

13

主题

31

帖子

0

精华

初级会员

Rank: 2

积分
187
金钱
187
注册时间
2019-7-30
在线时间
34 小时
 楼主| 发表于 2019-9-9 17:13:44 | 显示全部楼层
walker168 发表于 2019-9-9 16:40
我用H7  从STOP 中唤醒后偶尔也有点毛病。不知道怎么解决,干脆唤醒后来个软件复位,包治百病。

你有用LCD显示吗?   显示有没有问题    软件复位啥意思   ?  我现在就是唤醒后显示有问题  不知道哪里出了问题   交流下  
回复

使用道具 举报

1

主题

882

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3071
金钱
3071
注册时间
2018-2-7
在线时间
285 小时
发表于 2019-9-10 10:27:09 | 显示全部楼层
估计你重新初始化的时候,没有将寄存器先复位然后再初始化,有可能寄存器中有其他位被改变了。导致初始化之后LCD显示还是异常。一种方法是初始化之前,先将寄存器复位,然后再初始化。另一种方法是整个单片机复位,调用系统软件复位命令  NVIC_SystemReset(); 这个命令就相当于按下了复位按键,单片机会被整体复位。
回复

使用道具 举报

13

主题

31

帖子

0

精华

初级会员

Rank: 2

积分
187
金钱
187
注册时间
2019-7-30
在线时间
34 小时
 楼主| 发表于 2019-9-10 10:38:46 | 显示全部楼层
HXYDJ 发表于 2019-9-10 10:27
估计你重新初始化的时候,没有将寄存器先复位然后再初始化,有可能寄存器中有其他位被改变了。导致初始化之 ...

调试了一段时间,也发现可能是IO状态问题或者寄存器出了错, 将寄存器复位要怎么操作呢?   不能软件复位  现在目标就是要从当前位置开始继续运行的
回复

使用道具 举报

1

主题

882

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3071
金钱
3071
注册时间
2018-2-7
在线时间
285 小时
发表于 2019-9-10 10:47:52 | 显示全部楼层
zgzx12345 发表于 2019-9-10 10:38
调试了一段时间,也发现可能是IO状态问题或者寄存器出了错, 将寄存器复位要怎么操作呢?   不能软件复位 ...

在芯片手册中看寄存器复位值默认是多少,直接给寄存器赋值,或者在库函数中调用复位函数。
回复

使用道具 举报

13

主题

31

帖子

0

精华

初级会员

Rank: 2

积分
187
金钱
187
注册时间
2019-7-30
在线时间
34 小时
 楼主| 发表于 2019-9-10 11:19:53 | 显示全部楼层
HXYDJ 发表于 2019-9-10 10:47
在芯片手册中看寄存器复位值默认是多少,直接给寄存器赋值,或者在库函数中调用复位函数。

库函数里有一个SystemInit(); 就是复位所有的RCC寄存器  , 这样试了一下  还是不行,   具体应该调用什么复位函数呢?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-5-16 11:16

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表