当前位置:编程学习 > C#/ASP.NET >>

vb.net串口通讯

RS232Com.dll和RS232ComForSms.dll是什么东西,有RS232ComForSms.dll的反编译代码吗?最好还有使用说明书。
如果哪位大虾有现成的vb.net串口通讯代码也可以,问题解决100分 --------------------编程问答-------------------- 估计反编译要自己去完成了~~~ --------------------编程问答-------------------- RS232ComForSms.dll这个Dll不能反编译,可能有壳 --------------------编程问答-------------------- .Net2.0就有SerialPort类来操作串口。

参考
http://www.cnblogs.com/hocylan/archive/2008/03/13/1103624.html

http://blog.chinaunix.net/u/15586/showart_189530.html --------------------编程问答-------------------- 这个链接太笼统了 --------------------编程问答-------------------- 参考"VB.NET2008的串口工程" 

http://download.csdn.net/source/1070246 --------------------编程问答-------------------- 是用 System.IO.SerialPort 完全可以解决。
MSDN 的帮助是在使用的过程中遇到问题看的,而不是做为教科书看的。 --------------------编程问答-------------------- 现在都用SerialPort类 --------------------编程问答-------------------- 网上搜去吧,太多了。 帮你顶一下~~~~ --------------------编程问答-------------------- serialport类 --------------------编程问答-------------------- 用SerialPort确实可以读出串口数据,但是读出来之后怎么处理啊,哪位大虾有这方面的源代码啊 --------------------编程问答-------------------- 给你个我写过的例子吧(当然也是东拼西凑的拼出来的):

'初始化部分
——————————————————————————————————
ComboBox1.SelectedIndex = 0
        Try
            For Each sp As String In SerialPort.GetPortNames
                cbPort.Items.Add(sp)
            Next
            cbPort.Sorted = True
            cbPort.SelectedIndex = 0
            RS232.PortName = cbPort.SelectedItem.ToString
            RS232.Encoding = Encoding.Default
        Catch ex As Exception
            MsgBox("串口出现错误!")
        End Try

        Try
            RS232.Open()
        Catch ex As Exception
            MsgBox("串口已被占用,请检查!!", MsgBoxStyle.OkOnly, "错误")
            Exit Sub
        End Try
—————————————————————————————————————
这部分可以将可用串口号填到一个combox中,并打开第一个可用串口(通常为com 1)
然后在串口控件(如RS232)的 DataReceived事件中填代码:
—————————————————————————————————————
'判断接收数据是否为字符
        If e.EventType <> SerialData.Chars Then Exit Sub
        '定义数组长度为1024
        Dim recvData(2048) As Byte
        Dim non As Integer = 0
        '微软的RS232控件有问题??目前解决方法为加延时处理。问题原因:软件接收与硬件发送速度不同步???
        Do While (RS232.BytesToRead > 0)
            non += 1
            recvData(non - 1) = RS232.ReadByte
            If non < 30 Then
                TimeDelay(1)
            End If
        Loop
————————————————————————————————————
到这里,你已经将所有接收到的数据保存到了recvdata数组中了,注意数组长度
如果你想得到的是GB2312码的字符串,请将得到的数组保存为string,然后传到这个函数中
————————————————————————————————————
    Private Function hexstr2str(ByVal hexstring As String) As String
        Dim Encode As System.Text.Encoding = System.Text.Encoding.GetEncoding("GB2312")
        Dim b As Byte() = New Byte(hexstring.Length / 2) {}
        Dim i As Integer = 0
        While i < hexstring.Length / 2
            b(i) = Convert.ToByte("0x" + hexstring.Substring(i * 2, 2), 16)
            System.Math.Max(System.Threading.Interlocked.Increment(i), i - 1)
        End While
        Return Encode.GetString(b)
    End Function
————————————————————————————————————
至此……你还有什么其它问题么…… --------------------编程问答-------------------- 现在我想要的功能是使用.Net2005(VB.Net)的serialport类,在一个文本框中读出串口进来的数字,这里指的重量,小弟比较晕,最好有源代码、工程我的QQ号是1010499021,问题解决立刻给分,小弟不胜感激,在线急等 --------------------编程问答-------------------- 是不是短消息群发的啊? --------------------编程问答-------------------- 接收和处理数据主要涉及到线程间通过委托方法相互通知和传递数据,因为serialport工作在单独的线程。
在界面的类里定义一个委托,在datareceive事件里调用(BeginInvoke)这个委托。 --------------------编程问答-------------------- http://download.csdn.net/source/2250829
这里有个串口类.还有CRC校验. VB.NET源码
--------------------编程问答-------------------- 还没解决吗 前几天刚写了一个简单的串口通信的程序 --------------------编程问答-------------------- AT串口通信,楼主可以百度一些这个方面的资料 --------------------编程问答-------------------- 为什么不用SerialPort,挺好用的..net framework提供. --------------------编程问答-------------------- 最近自己写了一个WIN CE下的串口通讯控件,不晓得是否符合你的要求! --------------------编程问答-------------------- 引用using System.Runtime.InteropServices;
然后不是可以直接调用串口方法么??
或者用Serialport类 --------------------编程问答-------------------- 同步的最简单:
dim sp as new serialport("COM1",9600)

sub send(byval tx() as byte)
sp.write(tx,0,tx.length)
endsub

sub read(byref rx() as byte)
dim l as long=sp.bytestoread
sp.read(rx,0,l)
endsub

简单吧

--------------------编程问答-------------------- 路过,学习一下
补充:.NET技术 ,  VB.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,