未来的门户网站,平面设计培训网,办公室装修费用会计分录,WordPress上展示PDF前两天在做项目时发现#xff0c;当用VISA串口读取指令时出现了回复异常的情况#xff0c;不管发什么东西就一直乱回#xff0c;针对这个情况#xff0c;后面在VISA串口中加了一个VISA寄存器清零的函数。加了之后果然好多了#xff0c;不会出现乱回的情况#xff0c;但是…前两天在做项目时发现当用VISA串口读取指令时出现了回复异常的情况不管发什么东西就一直乱回针对这个情况后面在VISA串口中加了一个VISA寄存器清零的函数。加了之后果然好多了不会出现乱回的情况但是出现了少回的情况。 这里需要的是21个字节但是回复的是6个字节或者18个字节这里肯定是不对的这里试了强制回复21个字节数但是也是不行然后在后面加了一些字节判断和CRC校验当验证值为正确的时才把缓冲区的数据解析出来。 可以看到这里加了一个while循环当读出的结果不对时就进行重发当到达五次时就过掉while循环进行下一步操作这里为了不让程序卡在此处也加了CRC和字节数判断来确保得到的是正确的数据。
但是这样虽然降低了错误发生情况让用户无法察觉但是根本的错误还是存在后面经过大哥的指导发现问题出现在VISA配置中没有把启用终止符这个关掉串口读取缓冲区的时候他会比对读出的值如果遇到定义的这个值和预期定义的值一致就会认为这条报文结束了就出现了回复一半回复不全的情况。