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

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

串口通讯,用VISA发送字符串的过程

已解决!
转到解答

现在遇到一个问题,在串口通讯中,用VISA发送字符串,是一个一个的发吗?例如:我要发一个整数26给单片机,是不是必须转换为字符串26,然后将26字符串发送出去,先发2,再发6,发两个字节,还是26一起发,一个字节发送出去?

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

可以连续发。26可以一起发。发送的数据格式可以有两种:1.字符串;2.十六进制数。

0 项奖励
2 条消息(共 5 条)
4,293 次查看
解答
接受人 Suweich

VISA发送一个整数26给单片机可以有几种不同的定义。

1. 发送“26”字符串,数据长度2 Bytes;

2. 发送HEX数据 0x1A(其值为26),数据长度1 Byte。

2010-09-28_VISA_Write.png

 

 

3 条消息(共 5 条)
4,292 次查看

谢谢啦!我也找到方法了,和你的一样,一个16位的可以先发高8位,在发低8位是吧。发送一个16位的整数先将其转换为4个宽度的十六进制字符串,再分成高8位和低8位,将高低8位组成一个数组,再转换为字符串。是不是这样处理的呢?还有其他的更好方法吗?

0 项奖励
4 条消息(共 5 条)
4,264 次查看

您说的很对!不管是16位的整数还是32位,64位的浮点数,在使用VISA发送时,都需要现将按照内存中的“值”转成对应的字符串。对于这种常见转换,还可以使用 Mathematic >> Numeric >> Data Manipulation >> Flatten to String.vi 来实现这种转换。

0 项奖励
5 条消息(共 5 条)
4,242 次查看