串口通信,为什么发送命令后仪器没反应,再发送*IDN?的时候它才执行刚才的命令

2019-07-17 13:36发布

如题,我先在程序里给仪器发送命令没反应,然后我在NI-MAX,打开VISA测试面板中,直接写入命令,也没反应,但是,当我给仪器发送*IDN?并询问返回数的时候,才执行刚才发的命令,再次发送*IDN?它才返回仪器名称啥的。然后再发送命令,还是没反应,发*IDN?才有反应,一直这样。
   这是什么原因,该如何解决,,
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
14条回答
blust
1楼-- · 2019-07-18 14:43
阿神009 发表于 2018-3-7 20:01
这个结束符和串口配置里面的停止位是什么关系,停止位我选的默认的。

停止位和结束符完全是两个概念,停止位是每发一个字节都会有1-2个停止位,默认1个;
结束符是一串指令全部发完之后发1到2个字节的特定字符表示指令发送完成。
张华强1212
2楼-- · 2019-07-18 16:48
建议你使用十六进制看一下这两个指令结尾部分有什么不一样
阿神009
3楼-- · 2019-07-18 22:09
张华强1212 发表于 2018-3-8 09:35
建议你使用十六进制看一下这两个指令结尾部分有什么不一样

如果是因为没有结束符,那我是不是得给每条指令后面都加个 ?还是怎么操作能统一加上结束符
阿神009
4楼-- · 2019-07-19 00:17
 精彩回答 2  元偷偷看……
blust
5楼-- · 2019-07-19 04:18
阿神009 发表于 2018-3-8 09:54
谢谢你,那我怎么给这些指令都加上结束符,难道要手动给每条指令后面加吗

你需要确认仪器是否需要有结束符才会处理指令,以及结束符是什么,如果确认了的话,直接加在指令后面就可以,可以手动加,也可以软件自动加。
阿神009
6楼-- · 2019-07-19 06:29
blust 发表于 2018-3-8 13:33
你需要确认仪器是否需要有结束符才会处理指令,以及结束符是什么,如果确认了的话,直接加在指令后面就可以,可以手动加,也可以软件自动加。

有的,结束符LF,怎么自动加呢,,,手动加的话太多了,

一周热门 更多>