×
单片机 > 单片机程序设计 > 详情

在stm32中使用while循环导致程序卡死

发布时间:2020-09-02 发布时间:
|

今天在使用stm32的过程中发现这样一个问题,程序莫名卡死。

先来看导致卡死的代码

    while ( ReadRawRC ( CommandReg ) & 0x10 );1

这是我们在程序中经常用到的写法,容易理解,程序的作用的读出一份数据,然后判断他的第4位是否为0,如果为0,则跳出循环,否则程序卡死等待。

也正因为这里的等待,导致读出的数据第4位不为0时程序卡死。

我自己的建议是: 
(1)如果程序需要写成while卡死等待的形式,可以在while循环后面加一句串口输出,当程序卡死时,如果没有串口输出数据,就证明程序是卡死在了while循环处 
(2)加超时判断,这是我们单片机老师在讲课的时候提到的,当等待的时间超过一定限度时,很明显单片机不能总在这里等待,可以在超时时返回一个错误报告,进而让程序可以执行其他的任务。


关键字:stm32  while循环  程序卡死 

『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
stm32 总线矩阵介绍