xzy032 發表於 2009-5-27 17:42:15

如何用VB 2005和BS2溝通??

各位大大好,我想用VB 2005來跟BS2做溝通,我是用Boe-BS2PX USB的,使用baudrate 9600,8N1,VB的serialport也有設定好com port等等,因為我對VB才剛接觸,可以幫我看一下程式哪裡有錯,程式大致上是利用一個button和textbox,當我按下button,然後傳出dat,接著BS2收到dat之後,回傳給PC,但是執行VB則是顯示"通訊埠已經關閉"的訊息,拜託懂的人出個聲吧,或是有什麼方法提供一下,現在只是想簡單測試VB跟BS2的溝通。

-------VB 程式--------------------------------------------------------
Public Class Form1
    Dim dat(2) As Byte
    Dim readbf(2) As Byte
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
      Dim A As Byte
      dat(0) = 5
            SerialPort1.Write(dat, 0, 1)      '在這裡顯示==>"通訊埠已經關閉"
            System.Threading.Thread.Sleep(1)
      
             SerialPort1.DiscardInBuffer()
             SerialPort1.Read(readbf, 0, 1)
      readbf(0) = A
      TextBox1.Text = A

    End Sub
End Class
--------------------------------------------------------------------

----BS2程式-------------------------------
' {$STAMP BS2px}
' {$PBASIC 2.5}
dat VAR Byte
DO
SERIN 16,16780,
DEBUG ? dat,CR
IF dat>0 THEN
SEROUT 16,16780,
ENDIF
LOOP
END
--------------------------------------------------------------------

ghostwolf90 發表於 2009-7-19 20:07:45

這是一個用VB傳字串給RS232的程式,一個ComboBox,三個Button,兩個Textbox,程式碼如下
Imports System.IO.Ports
Public Class Form1
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
      btnOpenPort.Text = "開啟"
      btnSend.Text = "傳送"
      btnReceive.Text = "接收"
      Label1.Text = "通訊"
      Label2.Text = "傳送的資料"
      Label3.Text = "收到的資料"
      cmbPort.Items.Clear()
      For Each PortName As String In SerialPort.GetPortNames
            cmbPort.Items.Add(PortName)
      Next
      cmbPort.SelectedIndex = 0
    End Sub
    Private Sub btnOpenPort_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnOpenPort.Click
      If SerialPort1.IsOpen Then
            SerialPort1.Close()
            'btnOpenPort.imagkey = "open"
            btnOpenPort.Text = "開啟"
            txtSend.Text = " "
            txtReceive.Text = " "
            btnSend.Enabled = False
            btnReceive.Enabled = False
      Else
            SerialPort1.PortName = cmbPort.SelectedItem.ToString
            SerialPort1.BaudRate = 9600
            SerialPort1.Parity = Parity.None
            SerialPort1.DataBits = 8
            SerialPort1.StopBits = StopBits.One
            SerialPort1.Open()
            btnOpenPort.Text = "關閉"
            btnSend.Enabled = True
            btnReceive.Enabled = True
      End If
    End Sub
    Private Sub btnSend_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSend.Click
      SerialPort1.Write(txtSend.Text)
    End Sub
    Private Sub btnReceive_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnReceive.Click
      txtReceive.Text = SerialPort1.ReadExisting()
    End Sub
End Class

BS2板程式沒有太大變化
84如果不行直接改回16780
----BS2程式-------------------------------
' {$STAMP BS2px}
' {$PBASIC 2.5}
dat VAR Byte
DO
SERIN 16,84,
DEBUG ? dat,CR
IF dat>0 THEN
SEROUT 16,84,
ENDIF
LOOP
END

ghostwolf90 發表於 2009-9-11 01:22:46

請問有無看懂?在給我MAIL 我把程式碼給你

robot2009 發表於 2010-2-3 17:33:31

請問是指有BS2p能這樣做嗎?!?!我看大家貼有關RS232的 範例都是 PIN:16

如果是BS2就不能嗎!?

BS2與BS2P 不就差在IO腳及容量大小嗎?

robot2009 發表於 2010-2-4 00:18:11

剛剛查了一下!! 其他的BS2晶片 也沒有 PIN:16 這隻腳位阿?!

看飆給的範例 也是PIN16?

是為蛇?!

andrew_benimaru 發表於 2010-7-26 22:36:17

不好意思,可以請問我用VB轉parallax bs2晶片的
程式要怎麼寫BS2才會接收呢?
我要傳出去的按鍵 "W A S D"控制前進 左邊 右邊 後退
麻煩指教一下感恩.

max 發表於 2011-3-9 00:34:48

打擾了!我也想請教程式碼的問題!?
一樣是想轉VB的形式,想問如何用VB PING BS2晶片的腳位及動作(下列為超音波程式碼)
----------------------BS2-------------------------
PingA         PIN      7
A:
    GOSUB Get_SonarA                           ' get sensor value
    cm = rawDist ** RawToCm                     ' convert to centimeters
    PUT 0,Word cm
    GOTO B
Get_SonarA:
    PingA = IsLow                                  ' make trigger 0-1-0
    PULSOUT PingA, Trigger                         ' activate sensor
    PULSINPingA, IsHigh, rawDist               ' measure echo pulse
    rawDist = rawDist */ Scale                  ' convert to uS
    rawDist = rawDist / 2                         ' remove return trip
    RETURN

playrobot 發表於 2011-3-12 09:08:39

http://iccl.nkmu.edu.tw/playrobot/search.php?searchid=1&orderby=lastpost&ascdesc=desc&searchsubmit=yes

這裡有許多VB範例

max 發表於 2011-4-5 09:56:06

這網址以過期了,想請問用VB連接藍芽鄉郭範例嗎?
頁: [1]
查看完整版本: 如何用VB 2005和BS2溝通??