打印
[应用相关]

for循环语句中,循环过程中,程序卡死的问题

[复制链接]
1714|15
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
laocuo1142|  楼主 | 2023-9-22 16:38 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
  • void pulse(char *ON, char* OFF)
  • {
  • usart1_puts("a");
  • systick_delay(300);
  • usart1_puts("b");
  • }

[color=rgb(51, 102, 153) !important]复制代码


整个程序在板子上运行时,在两层的for循环语句里,每次第一层走第一遍没问题,第二层走完十次,再次进行第一层进行判断循环时,第二层循环有时候走一次,有时候走两次,或者不走,然后整个程序就停住卡死了,我软件调试的结果也是卡在这不动了;
当我去掉循环里的延时函数,以及定义pulse里面的延时函数时,就没有这个问题了,可以正常循环。但是我又需要延时操作,要怎么改程序

使用特权

评论回复
沙发
jcky001| | 2023-9-23 16:29 | 只看该作者
最常见的问题是循环条件始终为真,导致程序陷入无限循环。确保循环条件在某个时刻为假,或者设置合适的退出条件。

使用特权

评论回复
板凳
cr315| | 2023-9-23 16:29 | 只看该作者
如果循环中执行了某些耗资源的操作,比如大量计算或者读写文件,可能会导致系统资源耗尽,从而使程序卡死。优化代码,减少不必要的资源消耗。

使用特权

评论回复
地板
elephant00| | 2023-9-23 16:30 | 只看该作者
在多线程或者并发环境下,如果存在竞态条件或者死锁,也可能导致程序卡死。

使用特权

评论回复
5
一只眠羊| | 2023-10-13 20:40 | 只看该作者
程序卡死?卡死不就重启了么

使用特权

评论回复
6
MessageRing| | 2023-10-13 21:08 | 只看该作者
为啥会卡死啊

使用特权

评论回复
7
在曼谷的春| | 2023-10-13 23:00 | 只看该作者
一般循环卡死的话,是逻辑有问题了,才会这样

使用特权

评论回复
8
月亮一键变蓝| | 2023-10-14 02:00 | 只看该作者
是不是用到什么判断了啊,然后还没有相应的结果,就卡住了

使用特权

评论回复
9
失物招領| | 2023-10-14 04:30 | 只看该作者
其实可以用仿真的方式试试,就知道程序为何卡死了

使用特权

评论回复
10
白马过平川| | 2023-10-14 08:00 | 只看该作者
你用断点,或者串口log的方式,试试程序杂执行的,然后分析一下呗

使用特权

评论回复
11
将爱藏于深海| | 2023-10-14 10:30 | 只看该作者
感觉是因为有些函数有问题了,就会这样

使用特权

评论回复
12
aimie| | 2023-10-14 11:06 | 只看该作者
把CPU资源时间分片。。。定时执行你需要的代码。。。如果是一个子代码里面再有分片。。就用Switch

使用特权

评论回复
13
西洲| | 2023-10-14 12:30 | 只看该作者
是不是因为你的延时函数有故障了呢?

使用特权

评论回复
14
捧一束彼岸花| | 2023-10-14 15:00 | 只看该作者
可以自己写个延时函数,一般就能好一些

使用特权

评论回复
15
故意相遇| | 2023-10-14 18:00 | 只看该作者
你这个延时函数用的是什么定时器做的吗?是不是没有数值变化啊?

使用特权

评论回复
16
风凉| | 2023-10-14 22:00 | 只看该作者
一般卡死都是哪里初始化不对,或者是外设没启动,再或者就是程序逻辑的问题

使用特权

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

本版积分规则

1191

主题

5214

帖子

12

粉丝