请教用VB.NET向串口发送16进制的数的方法

我现在正在用VB.NET写一个串口调试的程序,向大虾们请教下怎么通过串口发送16进制的数据。我写的程序需要向DSP发送16进制的数据,如果不是16进制的,DSP会不能正确识别。
如果有现成的代码,希望能给我一份,我的邮箱565306139@qq.com;没有代码,但知道原理的,也请赐教。
一定要是VB.NET的啊,最好是2005或以上版本的,VB的我看不怎么懂,在网上找了些,基本都是用VB写的。郁闷。
网上有人说用write(buffer() as byte ,offset as integer,count as integer)方法,我试了不行,也用了hex(string as string)进行转换,但是我的DSP都不能识别,DSP的程序是正确的,我用了串口调试助手进行了测试的,就是自己写的串口调试的程序不行。

应该是你的转换格式不正确,下面代码就是将文本框中以一个空格隔开的十六进制转为字节的代码,文本框中数字格式为:01 02 03
Dim TestArray() As String = Split(TextBox1.Text)
Dim hexBytes() As Byte
ReDim hexBytes(TestArray.Length - 1)
Dim i As Integer
For i = 0 To TestArray.Length - 1
hexBytes(i) = Val("&h" & TestArray(i))
Next

SerialPort.Write(hexBytes, 0, hexBytes.Length)
如果有问题可以再联系。
温馨提示:内容为网友见解,仅供参考
第1个回答  2010-06-04
我用03做过串口通迅程序,跟VB一个样的啊。没啥区别。输出时候做成一个byte数组,按顺序把你的数值赋进去,比如你填255,发出去的时候就是FF,加一个串口控件,把参数设置成与终端区配的。然后
dim aa(1) as byte
aa(0)=35
comm1.outbuffer=aa
第2个回答  2010-06-03
用Byte数组已经是最基本的方式了!与系统无关,与平台无关,与开发语言无关,与进制无关.........
第3个回答  2010-06-03
VB串口通信,有一套非常好的技术资料,600M多,你在淘宝搜索"太阳雨VB串口通信技术资料"就可以找到 / ..

请教用VB.NET向串口发送16进制的数的方法
我写的程序需要向DSP发送16进制的数据,如果不是16进制的,DSP会不能正确识别。如果有现成的代码,希望能给我一份,我的邮箱565306139@qq.com;没有代码,但知道原理的... 展开 网上有人说用write(buffer() as byte ,offset as integer,count as integer)方法,我试了不行,也用了hex(string as string)进行转换,...

用VB.net 里面的SerialPort1.Write( )串口控件,怎么才能发送出去一个16...
直接发数字1。一般可以直接发10进制的数字,当然要转换,比如16进制的21,你可以直接发33

VB.NET串口通讯怎么发送和接收十六进制?
串口通信最终都是用二进制传输的,你用代码把二进制转化成十六进制就可以了。不需要额外设置。

批处理向串口发送16进制编码
使用串口类软件,很轻松,如下图的格西烽火,串口模式下,可以发送Hex,字符串等格式的数据。

如何用“C#”对串口发送16进制数?
在C#中,对串口发送16进制数,可以通过将16进制数转换为字节序列,然后使用SerialPort类的Write方法发送这些字节。详细解释如下:在C#中,与串口通信主要依赖于`System.IO.Ports.SerialPort`类。当你需要向串口发送16进制数据时,实际上是在发送这些16进制数对应的字节序列。因此,首要步骤是将16进制数转换...

VB.net 串口传送回数据处理的问题
使用委托方式处理:Public Class Form1 Dim mSTR As String Dim strData As String Dim strDat As String Dim mRecvByte() As Byte Dim Hexsj As String Dim form2 As Form Private Sub SerialPort1_DataReceived(ByVal sender As Object, ByVal e As System.IO.Ports.S...

vb.net 串口收发数据有问题
不知道你是不是用51单片机往串口发数据,是的话那是因为51的sbuf最多存放8个字节,所以你发12个字节会分成两次发完。还有在接收的时候最好定义好通信协议,比如加一个侦头,一个侦尾,通过这两个字节的内容来接收数据。老兄,提问还是给点悬赏分嘛,不要吝啬哪点分,知识是无价的,你给得越多,...

vb.net+判断串口发送是否空?
在 VB.NET 中,判断串口发送是否为空可以通过判断 SerialPort 类的 IsOpen 和 BytesToWrite 属性来实现。IsOpen 属性可以判断串口是否已经打开,如果串口没有打开,则无法发送数据,因此 IsOpen 属性可以用来判断串口发送是否可行。BytesToWrite 属性可以获取当前串口发送缓冲区中待发送的字节数,如果 BytesTo...

用vb.net做串口通讯程序要调用哪些api函数?
16位下的串口通信程序最大的特点就在于:串口等外部设备的操作有自己特有的API函数;而32位程序则把串口操作(以及并口等)和文件操作统一起来了,使用类似的操作。 在MFC下的32位串口应用程序 32位下串口通信程序可以用两种方法实现:利用ActiveX控件;使用API 通信函数。 使用ActiveX控件,程序实现非常简单,结构清晰,缺点是...

VB.NET使用AxMSComm实现串口通信的发送读取问题?
OnComm,有数据接收应该能触发,至于为什么没有触发,要看看你的接收方是否已经收到你的发出指令,是否已经有响应数据回发。建议分开调试,用一个通用的串口助手,如格西烽火串口助手之类的,分别调试你的上位机和下位机。格西烽火串口助手能轻松的定制如你上面的发送数据。

相似回答