[已解决+happy]串口发送 “Ctrl+C” 看过学习套件之后的疑问
解决方法:直接在visa write上创建一个“写入缓冲区”,将其改成16进制显示,输入20(如果显示为0200,则将20复制进去即可,输入是不行的)
运行程序,写入缓冲区显示20,串口接受就显示的是空格
终于解决了,很开心!下面是改好的程序,点击生产模式来发送ctrl+c
此程序需要安装visa才能够运行
ps:谢谢cpubbs的帮助!
废话不多说,见下方的问题描述:
使用学习套件2中的 change ascii to string.vi ,在string中输入一个“空格”,显示结果如下所示:
在后面板中,可以看到探针3的数值为32,经过转换后,hex intrger string 显示 20(20即空格的ascii值)
我把此程序略作修改,应用到我自己的vi中:
后面板,略去了前面的部分,直接输入 32(也就是空格) ;
vi的前面板,白色底显示的字符为我串口收到的字符,16进制显示(把串口2、3短接了),灰色的即为后面板的字符串输出,正常显示
可以看到,“字符串”输出的值正确,而串口发送后收到的值就不对了
也就是说,32这个值,经过转换后得到的16进制20,串口直接发送字符串20,而不是十六进制的20(不是空格)
其他资料也查了很多,但是都没有描述到和我这个问题相类似的现象;
希望达到的目标:如何通过串口发送空格的ascii值,接收到之后正常显示下是空格,十六进制显示为20呢?
如果这个问题能够解决,那么发送ctrl就ok了
不知道我说了这么一大堆,有没有说清楚
有劳各位前辈,非常感谢你们
[ 本帖最后由 satage 于 2008-10-4 00:21 编辑 ] 这个NUMERIC TO HEX STRING转换后,是NORMAL DISPLAY形式下的20,但真实以HEX DISPLAY下它并不是这个,而是二个字节了,是0X32,0X30这二字节! 您直接连一个STRING,右击它还是HEX DISPLAY,然后再输入20就可以了!
页:
[1]