VB6 MSComm1_OnComm 問題,懂的請進

程式如下:
Private Sub Command1_Click()
Dim Buf As Byte
Buf = &HAA

Text1 = ""
MSComm1.Output = Chr(Buf)
Text1 = "Send Data = AA"
End Sub
-------------------------------------------------------------------------------

Private Sub Form_Load()

If (MSComm1.PortOpen = True) Then MSComm1.PortOpen = False

MSComm1.CommPort = 4
MSComm1.Settings = "9600,N,8,1"
MSComm1.InputMode = comInputModeBinary

If (MSComm1.PortOpen = False) Then MSComm1.PortOpen = True

Text1 = ""
End Sub

照理應該發送1 byte data 0xAA
但是用示波器觀看確是一串數據,有懂的人可以解答嗎?
VB6初學感謝您!
2011-04-14 19:59 發佈
0xAA = 10101010
所以示波器上會出現這樣

個性決定一生 wrote:
程式如下:Priva...(恕刪)

Private Sub Command1_Click
Dim Buf As Byte
Buf = &HAA

Text1 = ""
MSComm1.Output = Chr(Buf)
Text1 = "Send Data = AA"
End Sub

你按下去之後Buf當然被改變成AA(hex)

一直會送Buf的值
所以你會看到一堆
你可以MSComm1.Output = Chr(Buf)之後寫個delay的副程式(抱歉vb6年代已遠,不知道有沒有內建delay函數)
或者控制timer
發送完之後在把Buf變數內的值清空
Dim Buf As Byte
Buf = &HAA

Text1 = ""
MSComm1.Output = Chr(Buf)<====這行怪怪的
Text1 = "Send Data = AA"
End Sub
你用chr會把輸出轉成&HAA代表的字元,如果你真的要送出&HAA,
MSCOMM1.OUTPUT=BUF即可
至於在示波器上看到一串波形也沒錯,因為他把並列轉成串列輸出了
內文搜尋
X
評分
評分
複製連結
Mobile01提醒您
您目前瀏覽的是行動版網頁
是否切換到電腦版網頁呢?