如何用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
-------------------------------------------------------------------- 這是一個用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 請問有無看懂?在給我MAIL 我把程式碼給你 請問是指有BS2p能這樣做嗎?!?!我看大家貼有關RS232的 範例都是 PIN:16
如果是BS2就不能嗎!?
BS2與BS2P 不就差在IO腳及容量大小嗎? 剛剛查了一下!! 其他的BS2晶片 也沒有 PIN:16 這隻腳位阿?!
看飆給的範例 也是PIN16?
是為蛇?! 不好意思,可以請問我用VB轉parallax bs2晶片的
程式要怎麼寫BS2才會接收呢?
我要傳出去的按鍵 "W A S D"控制前進 左邊 右邊 後退
麻煩指教一下感恩. 打擾了!我也想請教程式碼的問題!?
一樣是想轉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 http://iccl.nkmu.edu.tw/playrobot/search.php?searchid=1&orderby=lastpost&ascdesc=desc&searchsubmit=yes
這裡有許多VB範例 這網址以過期了,想請問用VB連接藍芽鄉郭範例嗎?
頁:
[1]