求助高手:消息队列结构下的串口读取问题

2019-07-17 08:53发布

背景:利用visa读取串口数据,解析及实时显示出X-Y曲线。
问题:利用状态机编写的程序读取显示都没有问题,而用消息队列结构写的程序读取的数据不对,不对的判断是从曲线上看出来的,测量工况是Y值维持0,X值不断变化。(正确如fig1,fig2是队列结构下的曲线,明显乱了),疑问是这两种仅仅是程序结构不同,但串口读取、解析及显示部分的程序都是一样的,请问高手知道这个问题产生的原因是什么?
状态机下读取的曲线 状态机下读取的曲线
队列结构下读取的曲线 队列结构下读取的曲线
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
7条回答
老蜗牛
1楼-- · 2019-07-17 12:45
你确定fig1正确吗?fig2会不会是噪音?而fig1是不是没有输出。用一个标准输出(比如2N的)测试一下先。
tigergang
2楼-- · 2019-07-17 16:36
Fig1做过测试,Y值输出正常,这里只是为了方便比较,没有施加Y值。Fig2像是噪声,但从串口读出来,再到解析的这个过程没有变过,不知道为啥会产生这种类似噪声的数据
老蜗牛
3楼-- · 2019-07-17 16:51
tigergang 发表于 2018-5-11 11:54
Fig1做过测试,Y值输出正常,这里只是为了方便比较,没有施加Y值。Fig2像是噪声,但从串口读出来,再到解析的这个过程没有变过,不知道为啥会产生这种类似噪声的数据

用两种程序,在同一硬件状态下(如果空载都空载,如果负载就用同一负载),然后名义环境保持一致(温湿度,环境噪音等),先测试A程序再测试B程序,接着,先测试B程序再测试A程序(以排除时序上的变异)。最后比较两者测试结果,确认是否是程序问题。
sushu
4楼-- · 2019-07-17 21:39
目测程序问题,
tigergang
5楼-- · 2019-07-18 00:57
 精彩回答 2  元偷偷看……
tigergang
6楼-- · 2019-07-18 01:15
经过探针监视发现是数据存储的问题,但是都是同样的寄存器+数组插入方式,为啥fig2数组里面的Y值每循环一次就变化一次。。理论上存储下来的值就不会变化了啊,如X值就一直没变化。
BBFFA77C-33EC-4702-B056-9359F8663DD4.jpeg
56ED5DF0-608C-42F4-B950-0225D2A961D3.jpeg

一周热门 更多>