打印
[STM32F4]

程序运行一段时间卡死

[复制链接]
2804|17
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
skybbuy|  楼主 | 2018-11-7 11:25 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 skybbuy 于 2018-11-7 11:30 编辑

如图,遇到个很郁闷的问题,数据采集每20ms进一次中断 ,先进行EF2_OFF;
EF3_OFF;
Timing_usDelay(10);
EF1_ON;
EF4_ON;
过20ms后进行下面操作如此循环
EF1_OFF;
EF4_OFF;
Timing_usDelay(10);
EF2_ON;
EF3_ON;


加上这几个io操作我的程序运行30分钟左右卡死,没有进入HardFault_Handler中断,单纯的卡死,不知道怎么查

不加以上io操作整个程序就不会卡死,不知道怎么去分析,有没有人提供点思路。。
沙发
观海| | 2018-11-7 11:46 | 只看该作者
打个断点 进行io操作的时候看看是卡在哪里了

使用特权

评论回复
板凳
guanjiaer| | 2018-11-7 12:07 | 只看该作者
如果不运行io操作就一直也不卡死吗

使用特权

评论回复
地板
heimaojingzhang| | 2018-11-7 12:12 | 只看该作者
把除去io操作的不必要的代码屏蔽试试

使用特权

评论回复
5
天灵灵地灵灵| | 2018-11-7 12:26 | 只看该作者
这种还真难查,只能想法每个可疑位置前后设置print打印位置看看最后停在哪儿了

使用特权

评论回复
6
skybbuy|  楼主 | 2018-11-7 12:43 | 只看该作者
是delay函数卡死了。提高定时器中断优先级试试。

使用特权

评论回复
7
skybbuy|  楼主 | 2018-11-7 12:44 | 只看该作者
观海 发表于 2018-11-7 11:46
打个断点 进行io操作的时候看看是卡在哪里了

是我delay函数卡死了在判断条件了

使用特权

评论回复
8
skybbuy|  楼主 | 2018-11-7 12:45 | 只看该作者
heimaojingzhang 发表于 2018-11-7 12:12
把除去io操作的不必要的代码屏蔽试试

是我delay函数卡死了。谢谢了

使用特权

评论回复
9
renzheshengui| | 2018-11-7 12:57 | 只看该作者
把 其他的都屏蔽 一种一种的试试

使用特权

评论回复
10
wakayi| | 2018-11-7 13:01 | 只看该作者
建议除了io的都屏蔽掉试试

使用特权

评论回复
11
wowu| | 2018-11-7 13:37 | 只看该作者
把这部分代码屏蔽试试

使用特权

评论回复
12
mohanwei| | 2018-11-7 14:07 | 只看该作者
Timing_usDelay估计也是用定时器的不支持重入

使用特权

评论回复
13
木木guainv| | 2018-11-7 14:43 | 只看该作者
延时函数增加试试

使用特权

评论回复
14
skybbuy|  楼主 | 2018-11-7 16:19 | 只看该作者
mohanwei 发表于 2018-11-7 14:07
Timing_usDelay估计也是用定时器的不支持重入

是的 我现在就是运行一段时间后卡死在Timing_usDelay里面了

使用特权

评论回复
15
mohanwei| | 2018-11-7 16:36 | 只看该作者
skybbuy 发表于 2018-11-7 16:19
是的 我现在就是运行一段时间后卡死在Timing_usDelay里面了

明显你在外面还用了这个延时函数

最简单的就是另外写个延时函数,用指令延迟的方式,给定时器中断专用

使用特权

评论回复
16
zhuomuniao110| | 2018-11-7 18:11 | 只看该作者
最后是哪儿的问题?

使用特权

评论回复
17
Silence`| | 2018-11-7 21:53 | 只看该作者
设置断点之后,单步调试找找卡在哪里了

使用特权

评论回复
18
晓伍| | 2018-11-8 12:18 | 只看该作者
别用系统的延时函数 用for语句延时

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

22

主题

164

帖子

0

粉丝