老程序卡住了怎么办?

时间:2025-06-13  作者: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,弹出错误提示。

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

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


审核编辑:刘清

猜您喜欢

现代电子产品中,连接器是非常重要的配件。CONN_9.1X5.6MM_SM是一款非常受欢迎的连接器,因其优异的性能和的应用领域而受到青睐。本文将深入探讨这一连接...
2025-04-22 21:00:09

随着电力电子技术的不断发展,碳化硅(SiC)二极管因其优越的性能而受到关注。特别是1200V碳化硅二极管,因其在高压、大功率应用中的出色表现,成为了电力电子行业...
2025-04-01 20:00:02

尖扁锉是常见的手工工具,应用于金属加工、木工和模型制作等领域。根据不同的用途和形状,尖扁锉可以分为几种主要分类。首先是标准尖扁锉,两面均为平面,适合用于平整和去...
2012-01-15 00:00:00


贴片电阻的检验标准涵盖多个方面,确保其性能和可靠性符合要求。一般来说,这些标准包括外观、尺寸、电性能和环境适应性等几个关键方面。外观方面,主要检查电阻表面是否存...
2024-11-29 10:26:16

绝缘工具套装主要优势有哪些?绝缘工具套装是电工和维修工人必备的安全装备,其主要优势体现在以下几个方面。绝缘材料能够有效防止电流通过,降低触电风险,保障使用者的安...
2021-01-05 00:00:00

钽电容、贴片电容、贴片电阻、电感和二三极管是电子电路中常见的五种基础元件,它们各自扮演着不同的角色。钽电容: 体积小、容量大、稳定性好,适用于对体积和性能要求较...
2024-11-26 11:29:50

现代科技发展迅速的背景下,计算机硬件的性能直接影响到用户的使用体验。DDR3 超频电压,作为一种提升内存模块性能的方式,正逐渐成为广大科技爱好者与普通用户关注的...
2024-10-29 00:00:00

DC-DC控制器,作为当代电源管理的核心组件,在电子设备的能效提升和性能优化中是很重要的配件。无论是在智能手机、笔记本电脑还是电动汽车中,DC-DC控制器都以其...
2024-11-03 00:00:00

在选择卡扣时,了解其规格尺寸非常重要。卡扣的尺寸通常包括宽度、长度和厚度,这些参数直接影响到卡扣的适用性和牢固性。常见的卡扣规格有多种,比如常用的塑料卡扣一般宽...
2025-02-06 00:00:00