首页 > 技术 > 内容

老程序卡住了怎么办?

时间:2026-01-23  作者: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,弹出错误提示。

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

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


审核编辑:刘清

猜您喜欢


薄膜电阻因其高精度和稳定性被应用于各种电子设备中。作为薄膜电阻行业的重要品牌,金凤冠凭借其高品质的产品和良好的市场口碑,成为众多电子工程师和制造商的首选。本文将...
2021-09-23 12:12:13
电容是电子元件中常见的器件。的内部结构复杂,影响其性能。本文将简单介绍电容的内部结构。电容的基本组成电容内部主要有三部分。分别是电极、介质和外壳。电极一般是金属...
2025-03-26 17:30:02
你是否想过,为什么你的手机、电脑和其电子设备在使用电池供电时,依然能够稳定运行?这背后的功臣,就是ldo稳压器,就像一个电压管家,默默守护着电子设备的正常运转。...
2024-06-15 00:00:00
咪头和麦克风虽然在日常用语中常常被混用,但实际上有着明显的区别。咪头通常指的是麦克风的一个部分,专门用于收音,尤其是在演出和录音中起到非常重要的作用。咪头的设计...
2011-01-30 00:00:00
9月7日下午五点,Micradar“云帆朋友圈”系列直播正式开播。Micradar作为行业领先的毫米波雷达解决方案提供商,深耕行业以来已经赋能上千家生态客户的产...
2023-09-09 08:01:00
薄膜电阻作为电子元器件中的重要组成部分,受到了关注。Uniohnm(厚声)作为国内领先的薄膜电阻品牌,很好的性能和高品质的服务在市场上占据了一席之地。本文将详细...
2017-12-29 12:29:30
在现代机器人技术中,如何感知和操控柔软、易碎的物体(如生物组织、易碎食物及柔性电子器件)一直是一个巨大挑战。现有的基于视觉的触觉机器人主要集中在刚性物体的感知与...
2024-10-22 18:31:00
贴片电阻2512指的是其尺寸为2.5mm长,1.2mm宽。这个尺寸在贴片电阻中属于中等偏大尺寸,通常用于功率稍大或需要更好散热的场合。是否合适取决于您的具体应用...
2024-11-29 10:26:22