NI LabVIEW,CVI,数据采集等产品讨论区

取消
显示结果 
搜索替代 
您的意思是: 

mscomm串口

我用Mscomm控件编写串口发送和接受数据程序,数据源为双精度浮点数,在发送程序中,首先将待发数据转换为字节数组,再将这个数组以字符串的形式发出去,当某一字节的数大于128时接受遍出现问题了,收到的都是00,网上说是由于系统为“双字符集”。我接受程序的处理方式是将接收到的字符串逐个字符解析,再转化成字节数组,有了这个字节数组就可以得到发送的双精度实数了,请问诸位高手老师我的思路有没有问题,我的问题该如何解决。
0 项奖励
1 条消息(共 5 条)
5,249 次查看

觉得你思路没有问题,在NI网站http://zone.ni.com/devzone/cda/epd/p/id/3719下载的历程在字符串超过80(16进制表示时)也会有同样的效果,估计是Mscomm的问题。

试试NI带的程序吧,这个在16进制表示时超过80完全没有问题

0 项奖励
2 条消息(共 5 条)
5,224 次查看
谢谢您的解答
0 项奖励
3 条消息(共 5 条)
5,203 次查看
或者可以直接使用Number To Decimal String Function直接将U8的数字转换为字符串,这样也不会出现不正确的情况
0 项奖励
4 条消息(共 5 条)
5,194 次查看

实际测试发现,用MSComm发送的首个字符值大于0x80就会发不出。比如发送“AE 02 03",只能发出”3F 03“两个字;而发送”01 02 03“,则可以正常发出三个字,这是什么原因?

0 项奖励
5 条消息(共 5 条)
1,528 次查看