完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
如题,我先在程序里给仪器发送命令没反应,然后我在NI-MAX,打开VISA测试面板中,直接写入命令,也没反应,但是,当我给仪器发送*IDN?并询问返回数的时候,才执行刚才发的命令,再次发送*IDN?它才返回仪器名称啥的。然后再发送命令,还是没反应,发*IDN?才有反应,一直这样。
这是什么原因,该如何解决,, |
|
相关推荐
15个回答
|
|
给位老哥们,求个回复。
|
|
|
|
额,有可能你第一次发的数据中没有结束符(rn),然后等你发送*IDN?的时候收到了结束符,所以执行上一次的命令
|
|
|
|
这个结束符和串口配置里面的停止位是什么关系,停止位我选的默认的。 |
|
|
|
这个结束符和串口配置里面的停止位是什么关系,停止位我选的默认的。 |
|
|
|
你的程序是你自己写的吗,如果是我测试系统,我会验证指令是否正确,使用串口助手发送指令,给仪器是否会驱动,然后验证自己写的代码发送指令是否正确,可以将TX,RX用导线连接。
|
|
|
|
12F3393 发表于 2018-3-7 21:13 是我自己写的,也可以保证指令是正确的,因为发送*IDN?后,仪器按刚才的指令操作了 |
|
|
|
停止位和结束符完全是两个概念,停止位是每发一个字节都会有1-2个停止位,默认1个; 结束符是一串指令全部发完之后发1到2个字节的特定字符表示指令发送完成。 |
|
|
|
建议你使用十六进制看一下这两个指令结尾部分有什么不一样
|
|
|
|
如果是因为没有结束符,那我是不是得给每条指令后面都加个n ?还是怎么操作能统一加上结束符 |
|
|
|
blust 发表于 2018-3-8 08:55 谢谢你,那我怎么给这些指令都加上结束符,难道要手动给每条指令后面加吗 |
|
|
|
你需要确认仪器是否需要有结束符才会处理指令,以及结束符是什么,如果确认了的话,直接加在指令后面就可以,可以手动加,也可以软件自动加。 |
|
|
|
有的,结束符LF,怎么自动加呢,,,手动加的话太多了, |
|
|
|
|
|
|
|
最终,我还是解决问题了。首先确实缺少个结束符“n”,再者把字符串常量右键,将正常显示改成代码显示,则原来命令里面的空格会变成“s”,然后自己再在命令末尾手动添加“n”。
感谢各位好心人的指点,也希望能对后面遇到相同问题的朋友提供参考帮助。 |
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
用udl里的字符串信息在局域网内其他电脑连接sql数据库为什么为出现连接失败拒绝访问?
1796 浏览 2 评论
为什么同一个队列引用的全局变量,运行在两个子vi中发现队列数据丢失了
1407 浏览 0 评论
1610 浏览 0 评论
关于labview2024版本的lvanlys.dll出错的问题
3477 浏览 3 评论
1527 浏览 2 评论
浏览过的版块 |
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-24 22:18 , Processed in 0.845955 second(s), Total 108, Slave 90 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号