none
求SerialPort使用方法 RRS feed

  • 问题

  • 本人想利用vb.net做一个来电显示软件软件!
    但对通信控件了解太少!在网上了解了下!要用到SerialPort控件!
    看了许多资料,是越看越一头雾水?
    
    故求了解此控件用法的!
    望有大虾指教!
    如能有实例更好!
    2011年1月16日 8:00

答案

全部回复

  • 您好

    http://social.msdn.microsoft.com/Forums/zh-CN/vbasiczhchs/thread/44ed84c0-0bf3-4264-bab8-88fa4356ed0d/

    請參考

    Serial Port通訊檢測 文中有個 SerialMonitor2.rar 範例您可以下載測試看看

    MSDN - SerialPort 類,也有相關說明與範例

    http://msdn.microsoft.com/zh-cn/library/system.io.ports.serialport(v=VS.100).aspx


    歡迎參觀我的Blog.NET菜鳥自救會
    2011年1月16日 18:37
  • Imports System.Text


    Public Class Form1
    ——————————————————————————————————————————————————

        Dim buffB(30) As Byte  '串口接收缓冲区 如果接收字符很长最好设的大点

     

        Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load


            SerialPort1.BaudRate = 9600 '波特率设为9600


            SerialPort1.PortName = "com3" '端口为串口1


            If SerialPort1.IsOpen = False Then SerialPort1.Open() '打开串口


        End Sub

    ——————————————————————————————————————————————————

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


            SerialPort1.Read(buffB, 0, 30)


            'System.Threading.Thread.Sleep(10000)


            MsgBox("")


            BeginInvoke(New EventHandler(AddressOf ONMLoadA), SerialPort1.BytesToRead()) '使用委托方式显示接收到的字符串


        End Sub

     

        Sub ONMLoadA(ByVal sender As System.Object, ByVal e As System.EventArgs)


            TextBox1.Text = Encoding.ASCII.GetString(buffB, 0, 30) '显示


          
            MsgBox(TextBox1.Text)


            MsgBox(SerialPort1.Read(buffB, 0, 30))


            ' MsgBox(TextBox1.Text)


        End Sub

    ——————————————————————————————————————————————————

     

        Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click


            Dim data() As Byte


            Dim str As String


            data = System.Text.Encoding.Unicode.GetBytes("asdfasd")


            Str = Convert.ToBase64String(Data)


            SerialPort1.WriteLine(str) '发送字符串


            MsgBox("写入成功")


        End Sub


    End Class

    ————————————————————————————————————————————————

    以上为网站的代码

    但是 SerialPort1_DataReceived中的代码根本就不执行!

    还望你指教!谢谢!

    2011年1月17日 7:02
  • 这是我以前写的代码,不用组件,性能更高

    http://topic.csdn.net/u/20081226/19/69ac6c9a-b131-45cb-a105-5ee8506e37f7.html

    2011年1月23日 4:33
  • 虽然是c#语法的,如果你能看懂语法,可以看看我的博客系列文章。

    http://blog.csdn.net/wuyazhe/category/695097.aspx


    2011 c# mvp China
    2011年1月26日 5:58