看板 Visual_Basic 關於我們 聯絡資訊
※ 引述《BASG (123)》之銘言: : ※ 引述《hillyean (醜男大作戰)》之銘言: : 小弟提供一下挫見.... : : 我想問一下,8051傳到電腦的值是字串嗎?那要怎麼打 : : Dim buf As String : : Private Sub Form_Load() : : MSComm1.CommPort = 1 : : MSComm1.Settings = "9600,N,8,1" : Baud Rate要先確定和8051所設定的是一樣的 : : MSComm1.InputMode = comInputModeBinary : : MSComm1.PortOpen = True : : End Sub : : Private Sub Timer1_Timer() : : buf = MSComm1.Input : : Text1.Text = buf : : End Sub : 這一段怪怪的,我猜你問題有可能出在這 : 8051和PC com port溝通一般是用它的UART Port,這個的Protocol : 基本上和RS-232一樣,只有voltage level不同,所以一定要加上level shift ic : 既然protocol一樣,基本上是用MSComm的 on_comm event去處理所接到的data : 只要MSComm1.Input收到一個byte的data他就會觸發這個事件 : 你用timer設時間去收怪怪的-你固定時間去確認有沒有收到,應該不會很準 : 語法大約如下..... : Private Sub MSComm1_OnComm() : Select Case MSComm1.CommEvent : Case comEvReceive : ............ 再加上你要把接到的data丟去那 : : 這是我的程式...這樣有錯嗎?為什麼我出現的都是問號! : : 不是我要的值,還有就是是MScomm1的屬性表要怎麼設定,有哪些要改? : : 謝謝... : 有一些細節要注意的是-8051是只管0 1這樣丟,但是這8 Bits的data組合起來 : 不見得是ASCII Code中的可顯示字元...這時你會發現你收到的是空字元 : 不過你收到的是問號我比較不解 可能要去對一下8051的Code : 收到?號表示51丟出來的是「?」給你 也就是8051丟出來的BYTE是 3F : 基本上如果8051丟出來的不是ASCII中的可顯示字元的話,你是收不到的 : 這時要在8051將DATA丟出前做一些處理,將他轉成可顯示字元再丟 : VB收到後再收一段程式式自已轉回你要的Data : 希望有幫到你.. 請問一下 為什麼您的寫的方式..... 後面跟這網指寫得有一點不同 網頁上看到的程式好少..... http://myurl.com.tw/8un2 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 123.195.0.12
BASG:你給的網址中只有提到送data給51,沒有從51收data的code 11/21 00:26
BASG:我上面的寫法是指當51送data給PC時的處理方式 11/21 00:27
CuckooBoy:喔~有啦只是這網址的圖怪怪的 11/21 12:56
CuckooBoy:他的VB CODE裡也是送一個字元給 51的樣子說 11/21 12:57
BASG:不好意思,我真的找不到,你要不要直接PO它的Code上來 11/22 00:58
BASG:你提到送一個字元給51--但我指的是51丟給PC 不知是否有誤解 11/22 00:58