4174|9

9

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

stm32加入停机低功耗后工作8-9小时就会跑飞 [复制链接]

第一次用stm32,芯片是STM32F103CBT7。

工作流程是:每隔固定间隔,外部中断会将cpu唤醒进行测量,将数据存到片内flash后进入低功耗,另外,还可以通过串口将cpu唤醒读取flash中存的数据。

所以进入低功耗前是将串口tx设置成外部中断,唤醒后再设置成串口,

经过试验发现,每次都是8-9小时左右,板子就不工作了,串口也读不出数据,这是不是说明程序跑飞了呀?

低功耗时功耗1mA,唤醒后60-70mA,跑飞后一直是11mA。

重新上电仍然是开始正常工作,8-9小时跑飞,

将低功耗去掉,板子就是正常测量的,不会跑飞。

不知道有没有人遇到过类似的情况,该怎么调整呢?

此帖出自stm32/stm8论坛

最新回复

老哥你好,我最近也在弄这个低功耗的,也遇到了类似的情况,但是我的功耗一直都在10ma降不下来,想请教请教老哥这方面的,Q1787629544,老哥有空可以加个好友请教请教吗?     详情 回复 发表于 2020-3-19 17:34
点赞 关注
 

回复
举报

3416

帖子

0

TA的资源

纯净的硅(高级)

沙发
 

11mA是不是单片机挂起了?

反复进出功耗模式或者擦写flash的时候出现了硬件错误。

此帖出自stm32/stm8论坛
 
个人签名

So TM what......?

 


回复

9

帖子

0

TA的资源

一粒金砂(中级)

板凳
 
ljj3166 发表于 2020-1-20 16:39 11mA是不是单片机挂起了? 反复进出功耗模式或者擦写flash的时候出现了硬件错误。

我的程序确实是反复进出低功耗和擦写flash,但是我不主动串口唤醒的情况下,只有一个外部中断唤醒,我反复看了程序并且更改了几处也没有发现问题。不知道应该从何找起。

此帖出自stm32/stm8论坛

点评

看一下是不是进入Error_Handler了 如果是可以试试用下边的方法调试 使用仿真功能,将低功耗功能去掉,其它逻辑不变(为了仿真方便),如果低功耗模式下也可以仿真可以不去掉低功耗功能 然后改变你I/O和串口  详情 回复 发表于 2020-1-20 18:18
 
 

回复

1万

帖子

139

TA的资源

版主

4
 

不能正常工作未必就是程序跑飞,程序跑飞的话,应该发生于任何时刻,不应该与某个功能相关。如相关,可以确认是程序结构问题。定位程序问题可以先屏蔽某个功能比如串口唤醒后再测试。

此帖出自stm32/stm8论坛
 
个人签名上传了一些书籍资料,也许有你想要的:https://download.eeworld.com.cn/user/chunyang
 
 

回复

9792

帖子

24

TA的资源

版主

5
 
xiaowanzi111 发表于 2020-1-20 16:54 我的程序确实是反复进出低功耗和擦写flash,但是我不主动串口唤醒的情况下,只有一个外部中断唤醒,我反 ...

看一下是不是进入Error_Handler了

如果是可以试试用下边的方法调试

使用仿真功能,将低功耗功能去掉,其它逻辑不变(为了仿真方便),如果低功耗模式下也可以仿真可以不去掉低功耗功能

然后改变你I/O和串口的频率,把8小时缩短到方便调试的时间

在进入Error_Handler查看call stack的内容

 

查看出错的地方,分析错误原因然后解决

下边是IAR调试的到出错的位置

此帖出自stm32/stm8论坛
 
个人签名虾扯蛋,蛋扯虾,虾扯蛋扯虾
 
 

回复

7608

帖子

2

TA的资源

五彩晶圆(高级)

6
 
两个建议,第一个,把写入flash那段屏蔽掉,也就是说每次唤醒后读取同样的参数进行后续流程,排除兰姐姐说的flash写异常的因素。第二个,把唤醒和uart分开,不要复用,排除掉硬件单元配置可能产生的硬件异常。
此帖出自stm32/stm8论坛
 
 
 

回复

9

帖子

0

TA的资源

一粒金砂(中级)

7
 

来结一下帖子,将所有可能性都想到了,最后发现是时钟的原因。

我是直接拿同事其他项目的程序改过来的,因为他之前说过他的CPU虽然焊接了外部晶振,但是程序实际上用的是内部晶振,所以我的板子由于空间限制就舍去了外部晶振,也一直没往这方面想过。后来其他可能性都试过之后研究程序,发现程序上其实是用的外部晶振,由于我没有焊接外部晶振,最后自动转为内部的,但是其他外设时钟都没有设置。

随后我将程序改为内部晶振,设置了PCLK HCLK等,标题所说的那种情况就没有发生了。

检讨一下在我这种情况下,用以前的或者别人的程序框架时,应该一些基本的时钟要检查一下,由于自己的失误,导致断断续续浪费了很多时间。

此帖出自stm32/stm8论坛

点评

这个坑我也踩过,总线时钟正确,但是系统时钟超了  详情 回复 发表于 2020-3-6 14:26
 
 
 

回复

14

帖子

0

TA的资源

一粒金砂(中级)

8
 

嗯,的确是一个注意关注的问题,写软件这些方面非常重要。

此帖出自stm32/stm8论坛
 
 
 

回复

295

帖子

1

TA的资源

版主

9
 
xiaowanzi111 发表于 2020-3-6 11:21 来结一下帖子,将所有可能性都想到了,最后发现是时钟的原因。 我是直接拿同事其他项目的程序改过来的, ...

这个坑我也踩过,总线时钟正确,但是系统时钟超了

此帖出自stm32/stm8论坛
 
 
 

回复

1

帖子

0

TA的资源

一粒金砂(初级)

10
 

老哥你好,我最近也在弄这个低功耗的,也遇到了类似的情况,但是我的功耗一直都在10ma降不下来,想请教请教老哥这方面的,Q1787629544,老哥有空可以加个好友请教请教吗?

 

此帖出自stm32/stm8论坛
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/8 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表