首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > VB Dotnet >

vb的serialport有关问题

2012-03-11 
vb的serialport问题!现在做一个串口程序,怎么也得不到正确数据代码如下:ImportsSystem.IO.PortsPublicClas

vb的serialport问题!
现在做一个串口程序,怎么也得不到正确数据代码如下:
Imports   System.IO.Ports
Public   Class   serialportform
        Dim   WithEvents   serialPort   As   New   IO.Ports.SerialPort
        Private   Sub   Form1_Load(ByVal   sender   As   System.Object,   ByVal   e   As   System.EventArgs)   Handles   MyBase.Load

                For   i   As   Integer   =   0   To   My.Computer.Ports.SerialPortNames.Count   -   1
                        ComboBox1.Items.Add(My.Computer.Ports.SerialPortNames(i))
                Next
                PictureBox1.Visible   =   True

        End   Sub
        Private   Sub   DataReceived(ByVal   sender   As   Object,   ByVal   e   As   System.IO.Ports.SerialDataReceivedEventArgs)   Handles   serialPort.DataReceived

                RichTextBox2.Invoke(New   myDelegate(AddressOf   updateTextBox),   New   Object()   {})
        End   Sub

        Public   Delegate   Sub   myDelegate()

        Private   Sub   button1_Click(ByVal   sender   As   System.Object,   ByVal   e   As   System.EventArgs)   Handles   button1.Click

                If   serialPort.IsOpen   Then
                        serialPort.Close()
                End   If
                Try
                        With   serialPort
                                .PortName   =   ComboBox1.Text
                                .BaudRate   =   ComboBox2.Text
                                .Parity   =   IO.Ports.Parity.None
                                .DataBits   =   8
                                .StopBits   =   IO.Ports.StopBits.One
                                .DtrEnable()   =   True
                        End   With
                        serialPort.Open()
                Catch   ex   As   Exception
                        MsgBox(ex.ToString)
                End   Try
        End   Sub


        Public   Overridable   Function   ReadChar()   As   Char

        End   Function

        Public   Sub   updateTextBox()
                Dim   buffer   As   Char

                Dim   bufferset   As   String

                bufferset   =   serialPort.ReadChar(buffer,   0,   6)
                With   RichTextBox2

                        .AppendText(bufferset)
                        .ScrollToCaret()

                End   With
        End   Sub

        Private   Sub   Button3_Click(ByVal   sender   As   System.Object,   ByVal   e   As   System.EventArgs)   Handles   Button3.Click
                Try
                        serialPort.Write(RichTextBox1.Text)
                        With   RichTextBox1
                                .ScrollToCaret()
                        End   With
                        RichTextBox1.Text   =   String.Empty
                Catch   ex   As   Exception
                        MsgBox(ex.ToString)
                End   Try
        End   Sub
        Private   Sub   button_Click(ByVal   sender   As   System.Object,   ByVal   e   As   System.EventArgs)   Handles   Button2.Click
                Try
                        serialPort.Close()
                Catch   ex   As   Exception
                        MsgBox(ex.ToString)
                End   Try
        End   Sub
End   Class
我的问题是:
发个16进制的数据给下位机,可发现得到的是asc吗,这中间怎么转换。还有就是对serialPort.ReadChar(buffer,   0,   6)是怎么用的,是不是还要实例化,才能使用。搞了几天了,也没个眉目,还请高人指点,谢谢!!邮箱是vb2005dotnet@126.com   ,
qq:253536744.高分。
我把我的思路大体说下:做个和单片机收发的串口程序,需要发送16进制。1帧6个字节。


[解决办法]
转化成16进制数字,直接char-〉unsigned int即可。
int a=(int) 'a ';
[解决办法]
lz,串口助手的16进制发送不是说你发出去的就会自动帮你转换为16进制,而是支持你发16进制的字符!

热点排行