0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

老程序卡住了怎么办?

jf_4uwpxRjJ 来源:小草手把手LabVIEW 2023-08-10 09:54 次阅读

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

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,弹出错误提示。

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

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





审核编辑:刘清

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • LabVIEW
    +关注

    关注

    1974

    文章

    3656

    浏览量

    324281
  • DAQ
    DAQ
    +关注

    关注

    6

    文章

    91

    浏览量

    32229
  • 缓存器
    +关注

    关注

    0

    文章

    63

    浏览量

    11673
  • 延时器
    +关注

    关注

    1

    文章

    36

    浏览量

    15124
  • for循环
    +关注

    关注

    0

    文章

    61

    浏览量

    2512

原文标题:【粉丝排BUG记录】老程序卡住了怎么办?

文章出处:【微信号:小草手把手LabVIEW,微信公众号:小草手把手LabVIEW】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    程序运行过程中,有些数据被莫名修改了怎么办

    导读:程序运行过程中,有些数据被莫名修改了,在哪里修改的?又是怎么修改的?这个代码我只想知道是否运行过,或者运行了多少次,但是不想让程序停下来,或者仅打印调试信息,怎么办?当这个变量设置成某个数据后,我想让
    的头像 发表于 08-10 09:11 2546次阅读
    <b class='flag-5'>程序</b>运行过程中,有些数据被莫名修改了<b class='flag-5'>怎么办</b>?

    使用adss软件编译程序卡住了的原因?

    使用 adss软件编译程序卡住在40 %,此时显示编译已经基本结束,CPU(因特尔i9-13)占用率从80% 降低到了 5 %,说明此时CPU基本已经停止编译工作。但是编译无法正常结束,卡住一小时后
    发表于 01-19 06:46

    正在学51,但是被卡住了

    刚刚把郭老师的视频看完,但是在使用自己的单片机学习板的时候,感觉串口通信以及AD/DA这两方面被卡住了,有点难以继续推进。。。AD芯片用的是PCF8591,现在这阶段应该怎么学习呢。。。
    发表于 05-23 16:19

    labview选项卡每次第一次运行点击了按钮以后程序卡住了,请问是为什么?如何解决?

    `我做了一个选项卡界面 里面右按钮 。每次第一次运行 点击了按钮以后程序卡住了没有执行我设置的事件结构,请问这是为什么?第一次运行程序点击按钮后就卡住了,不运行测试
    发表于 07-06 15:43

    程序在执行CSEC_WriteCommandHeader的时候卡住了怎么解决?

    大家好, 程序在执行CSEC_WriteCommandHeader的时候卡住了,查了几个方向,寄存器都没有报错,现在想知道是不是需要特殊访问CSE_PRAM。
    发表于 06-08 06:30

    诺基亚n70白屏怎么办

    诺基亚n70白屏怎么办
    发表于 09-01 15:58 3555次阅读
    诺基亚n70白屏<b class='flag-5'>怎么办</b>

    显示桌面没了怎么办

    显示桌面没了怎么办 我的windows xp的显示桌面的图标没有了怎么办。下载一个放到系统目
    发表于 01-18 19:00 3854次阅读

    硬盘自检死机怎么办

    硬盘自检死机怎么办    江西李功:我的电脑每次开机都要进行硬盘检查(WinXP系统),但总是在34%时就卡住不动,这时候
    发表于 02-25 10:28 1750次阅读

    NTDETECT失败怎么办

    NTDETECT失败怎么办    问:我的电脑有时用闪存或光驱拷贝一些文件或安装程序后,电脑就自动关机了。当再启动时就进不了系
    发表于 02-25 11:08 2009次阅读

    电池换新无法可依怎么办

    电池坏了怎么办?修。修不好怎么办?换。
    发表于 03-19 11:23 1406次阅读

    linux无法识别U盘怎么办

    linux无法识别U盘怎么办
    发表于 05-19 09:08 1.7w次阅读
    linux无法识别U盘<b class='flag-5'>怎么办</b>

    日本味精企业竟卡住了全世界芯片脖子?

    前不久,一篇名为《一家日本味精公司,卡住了全世界芯片的脖子》的文章热度颇高,由此引发了笔者的思考。
    的头像 发表于 03-01 11:25 1923次阅读

    电脑死机画面卡住不动

    在使用电脑的时候,电脑有时候难免会出现一些问题,比如电脑死机或者蓝屏什么的,电机死机是很常见的问题,电脑死机的时候就说画面卡住不动并且什么都动不了。那么电脑死机画面卡住不动该怎么办呢?下面小编就为
    的头像 发表于 06-25 09:33 8.1w次阅读

    电机过热怎么办

    电机过热怎么办?WAYON维安PPTC有方案
    的头像 发表于 11-01 15:08 734次阅读
    电机过热<b class='flag-5'>怎么办</b>?

    pcb钻孔偏孔了怎么办

    pcb钻孔偏孔了怎么办
    的头像 发表于 11-22 11:10 3613次阅读
    pcb钻孔偏孔了<b class='flag-5'>怎么办</b>?