❶ 急急急,請教大師一個關於VB串口控制項的問題
你說到的現象是正確的!
串口在傳送數據時不是我們想像(或理論設計)上的標准,所以就有緩存大小的設置了,
數據的禪橘接收由於受各種條件的干涉及影響,所以在收數據時不是那麼的規律,雖然你設置了滿足9個位元組才發生OnComm事件,實際上當OnComm事件發生時,其接收的數據不一定非得是9個或9的倍數個位元組,這時正常的!
在程序的設計上,需要做一下的處理:
1、MSComm1.RThreshold
=
1
仍然設賀汪團置為1
,當陵租有數據接收時,便產生OnComm事件
2、在OnComm事件中建立接收字元的中間變數
reciveTmp
,將接收到的數據一次增加到該變數中,並判斷該變數中的數據位元組是否滿足自己需要的9個位元組數,把滿足的位元組取走並處理,把不滿足的依次循環滾動,這樣才能有效的解決問題....
❷ VB採用SerialPort控制項串口通信中,接受數據怎麼實現
在Form_Load()內寫入以下代碼,進行串口初始轎鎮化
MSComm1.CommPort =9 '讀取com口號
If MSComm1.PortOpen = True Then '如果串口打開先關閉後再進行其他操作
MSComm1.PortOpen = False
End If
MSComm1.PortOpen = True '打開串口9
在退出按鈕中寫入
MSComm1.PortOpen = False '以在退出程序時關閉串口
雙擊串口控制項圖標,在其處理程序中寫入以下代碼
Dim BytReceived() As Byte
Dim strBuff As String
Dim i As Integer
Select Case MSComm1.CommEvent '事件發生
Case 2
MSComm1.InputLen = 0 '讀入緩沖區全部內容
strBuff = MSComm1.Input '讀入到緩沖區,strBuff 中存放的就槐鄭是串口接收的數據
End Select
End Sub
滿意請及時採納,謝謝閉明粗
❸ 請問在VS2005中手動添加MSCOMM控制項 後 出現的尾行不一致的提示 是什麼意思
這個問題一般都是不同字元集頌沖的行尾表示方式不一樣造成的,只要能編譯通過就沒有大的問題。
如果要執行標准化,記得保野攜殲存一下,不然下次打開還是會要隱飢求標准化的。
❹ vs2005的SerialPort類和MSCOMM32.ocx控制項哪個更好用
SerialPort這個還不錯我用過。不過中文文檔不太全,看英文有點費勁。建議使用。
❺ VC++2005串口編程的問題
如果是RS232 的話,VB我曾做過一個。
迴路測試。
建兩個多行文本框 text1 text2 一個按鈕發送,
timer 時間控制項
MScomm 串口控制項。在添加控制項中找到 Microsoft Comm Control 6.0或更高。
寫發送代碼氏正拍
Private Sub Command6_Click()
MSComm1.PortOpen = False
MSComm1.Output = Trim(Text2.Text)
End Sub
寫timer代碼,先設定timer1屬性為6秒則將Interval設為6000
Private Sub Timer1_Timer()
Dim Instring As String
On Error Resume Next
If MSComm1.InBufferCount = 0 Then GoTo 20
Instring = MSComm1.Input
text1.Text = text1.Text + vbCrLf + Instring + " " + Trim(Str(Date)) + " " + Trim(Str(Time))
text1.SelStart = Len(text3.Text)
20
End Sub
我這里設計需要,所以是6秒殲羨,並在最後輸出接收日期和時間,且數據累積。目的是為清備了保存文本。並且保持游標在最後輸出數據結果,當多行文本框滿了後不用向後翻。
若用本機測試迴路別望了短接串口輸入、輸出。
❻ vs2005中如何添加控制項呀
請問樓主要添加什麼控制項
如果是自己編寫的DLL,就如樓上說的
如果是在webform裡面的用戶控制項的話 直接切到試圖裡面 在資源管理器裡面拖過來就是
❼ VB智能設備串口serialport
先用可以打開的程序試下,是否確實被佔用了。
如果沒有占稿棚用,再來看程序,建立單步執行一下,看看是哪行出錯了喚侍
不過這2段中的和敬吵open_serialport1 = True是一樣的,感覺有點問題。
If SerialPort1.IsOpen = True Then
btn_openPort.Text = "關閉串口"
lst_SerialNumber.Enabled = False
lst_Baudrate.Enabled = False
open_serialport1 = True
End If
If SerialPort1.IsOpen = False Then
btn_openPort.Text = "打開串口"
lst_SerialNumber.Enabled = True
lst_Baudrate.Enabled = True
open_serialport1 = True
End If
❽ 求用VS2005實現串口通信的程序和說明,用C++
VS2005 以後 是 用 serialport 控制項宴納 而不是 用 MSCOMM控制項
建議 去網路鬧首文庫 里晌彎沒搜搜 類似的 文檔