VB_RS232 以二进制方式收发数据

我现在需要通过VB界面向RS232收发16进制数据,收端可以正确接收从FPGA发来的数据。我把RS232收发短接如果直接从界面发数据收到的就不对。比如发12收到居然是31... 我现在需要通过VB界面向RS232收发16进制数据,收端可以正确接收从FPGA发来的数据。我把RS232收发短接如果直接从界面发数据收到的就不对。比如发12收到居然是31 32 。我希望把12当成一个字节,收到就是12。我想应该是发端程序有问题,在网上搜了一下,应该要定义变量,字节。但是试了还是不对。
MSComm1.InputMode = comInputModeBinary,希望程序能实现发什么就收什么
请高手帮忙。
上面问题基本解决,但还有点小问题
我采用二进制的inputmode,有个问题是,我只能以十进制方式发,或是发不带字母的十六进制数.因为在发送要用到 val(tex.txt)输入十进制是不会有问题,但带字母十六进制数就会有问题
展开
 我来答
firsthua
2008-10-24 · TA获得超过1781个赞
知道大有可为答主
回答量:2034
采纳率:0%
帮助的人:792万
展开全部
不知道你是要收发些什么数据.
你不要管是什么进制的发.
rs232 是把字节变成串行传输然后又以字节接收.
也就是说,你可以看成是一个个字节的数据.
而字节是指机器的数.而不是你在屏幕上看到的数.
你所说的十进制和十六进制都是你编辑时的可视化数.
对232 都会转成2进制.简单点说就是用ascii码发的.
比如说,你在文本框里输入:1,2,3,4
或者:H01,H33 ,H0F
都是字符串而以.
而十进制的数字和字母刚好是一个字符对应一个ASCII码.
程序就可以直接把他们发出去.
而十六进制是一个数是用好几个字符组成.比如:H0A .
程序就会发出:H,0,A 三个字符的ASCII码.如果你在接收时没做出处
那么可能你就会觉得出错.
你要用十六进制表示.就不能用VAL(TEXT)来发送.
而要用另一个函数.
萍水e相逢
2008-10-23 · TA获得超过3万个赞
知道大有可为答主
回答量:5.9万
采纳率:46%
帮助的人:1.4亿
展开全部
31 32 不正是 字符 1 2 的十六进制码 嘛?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
yuhongw
2008-10-24
知道答主
回答量:2
采纳率:0%
帮助的人:0
展开全部
要发送什么样的数据?看你的数据是从哪来的,是什么格式的数据.如果是二进制数据,直接读入到字节数组,如果是字符串,需要转换成字节数组在发送
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式