老程序卡住了怎么办?

时间:2025-09-10  作者:Diven  阅读:0

昨天某学员联系我,给我拍了这么一个图,问怎么解决。

老程序卡住了怎么办?

f47c2bea-36ac-11ee-9e74-dac502259ad0.jpg

我一看,这不简单嘛,就是串口缓存不够溢出了。

解决方法就是:读快点,缓存搞大点,把延时去掉或者改小不就OK了么?

给了答案后,过了半天回复,仍旧没有解决,现象是程序就只执行了一次,卡住了,不执行。

晚上10点又在问我,这工作劲。我想那就远程看程序了。

远程一打开,顿时感觉程序是“意大利面”,看起来心烦意乱。不过为了解决BUG,我决定静下心来分析。

学员说这个一个国外合作的很久前的LabVIEW的采集程序,硬件啥都有,只是程序在,跑程序的老电脑不在了。换了台新电脑,驱动啥的都装好了。就几个串口,还有DAQ采集的。然后领导要恢复起来,能运行。

看的很头大,程序总共就一个while里面,while里面有FOR循环,FOR循环里面还有定时循环。

这1个while循环里面,有5个仪器的读写程序,还有2个DAQ采集卡。都在一个while里面。感觉写程序的,哪里有空位,就写到哪里。反正已给字:乱。

我心里第一想的,这么乱的程序,不如自己重写。

但是,重写工作量大,先解决问题为主吧。人家只要能用就行。

尝试运行一次,果然卡住,由于程序就一个while,高亮执行很久,单步也一样。只能导出打探针看看执行情况。

终于发现了原因,有个仪器有个设置程序,设置之后,会读取仪器是否有设置成功的指令返回。结果这个程序,用了一个while循环,不停的读取串口缓冲,判断是否有某个字符串,收到这个字符串,才退出while。

而实际这个仪器设置有问题,没有回复正确字符串,while循环退不出,把这个程序卡住了。而且这个while,作为子vi的子vi的子vi的程序,嵌套很深。后来把仪器设置对了,问题解决。

原版程序不方便截图,大概如下图所示,大家自己内心体会一下。

f4a1e6be-36ac-11ee-9e74-dac502259ad0.png

全程远程1小时5分钟。

所以这里不得不说,有些人写代码确实能跑,但是稍微不注意,就跑不起来。包括这个等待仪器回复的这个while,按常理,不应该用一个while判断,即使判断,也要设置一个超时,等待一定时间后后,自动退出while,弹出错误提示。

所以,很多人问的一个简单问题,背后可能是其更大的问题。

希望我们都不要遇到和接手“祖传”代码。


审核编辑:刘清

猜您喜欢

保险丝作为重要的过流保护元件,有着着关键作用。MERSEN作为全球知名的电气保护产品制造商,其一次性保险丝凭借优良的品质和稳定的性能,应用于各类工业和民用领域。...
2022-05-23 15:14:30

电子元器件中,电阻器是最常见的元件。插件电阻良好的稳定性和可靠性,被应用于各种电子设备中。选择合适的电阻器,不仅需要考虑其功率和尺寸,还需了解之间的关系。本文将...
2025-04-19 10:31:14

本文概要了解网络基础设施功能迅速增长的一种便捷方法是回顾一下过去四十年的发展历程(如下图所示)。蜂窝网络技术的创新,加上新型的数据存储和搜索技术,正在转变行业...
2020-12-16 12:05:00

二极管是电子电路中常见的元件,主要用于整流、限流和保护电路等功能。二极管在使用过程中可能会出现故障,导致电路无法正常工作。了解如何用电阻测量二极管的好坏,可以帮...
2025-04-15 11:00:11


电子元件中,二极管是基础而重要的元件,应用于整流、开关和信号处理等领域。在众多的二极管类型中,肖特基二极管和普通二极管是常见的两种。尽管在功能上有相似之处,但在...
2025-03-28 19:30:02

现代电子设备中,封装技术的选择对产品的性能和可靠性很重要。TDFN-10_3X3MM-EP(薄型双列扁平无引脚封装)因其独特的设计和优越的性能,已成为许多电子应...
2025-02-21 11:56:00

精密电阻作为电子电路中不可少的重要元件,其性能和质量直接影响着整个系统的稳定性和可靠性。ROHM(罗姆)作为全球知名的半导体和电子元器件制造商,其精密电阻产品凭...
2020-02-08 02:09:20

专用集成电路(ASIC)采用硬接线的固定模式,而现场可编程门阵列 (FPGA)则采用可配置芯片的方法,二者差别迥异。可编程器件是目前的新生力量,混合技术也将在未...
2018-04-18 13:28:00

日前,英飞凌科技(中国)有限公司(以下简称“英飞凌”)与中移物联网有限公司(以下简称“中移物联”)签署合作协议。英飞凌将以其在感知、计算、执行、连接、安全等物联...
2023-09-14 16:03:00