vb串口編程
⑴ vb串口通信編程,請高手幫忙
按你提供的C2C7FAE1看為16進制數,其10進制值為-1027081503,如何處理成-99.99要看下位機是如何約定數據的來定.
Text1 = &HC2C7FAE1 或 Text1 = VAL(&HC2C7FAE1)
一般上下位機對數字值傳遞通常以16位二進制數字傳遞,而小數點不傳遞,僅乘一定倍率來實現.同時16位二進制數字按兩個8位(ASCII碼值)輸送,上位機通過程序代碼處理成10進制數.
串口傳送數據實質是傳送ASCII碼,如是8位二進制數據,其ASCII碼值(10進制)為0-255。用二進製表示為00000000 - 11111111
16進製表示為 00 - FF
傳送數據大於255,則用16位二進制(即2位元組ASCII碼組成)。10進制范圍-32768到+32767。
如有小數,則應由上下位機約定,不進行發送。
串口通信中數制轉換必須相當重視。
以上是以二進制方式收發數據。
也可直接以ASCII碼的文本方式發送數據,而位元組量大。
⑵ VB實現串口通訊程序代碼
發給你 VB的串口調試精靈代碼
QQ信箱
請 查收
⑶ 如何用VB編寫串口程序
有串口控制項MSComm控制項
MSComm 控制項示例
下面這個簡單的例子演示了用數據機進行基本的串列通訊:
Private Sub Form_Load ()
' 保存輸入子串的緩沖區
Dim Instring As String
' 使用 COM1。
MSComm1.CommPort = 1
' 9600 波特,無奇偶校驗,8 位數據,一個停止位。
MSComm1.Settings = "9600,N,8,1"
' 當輸入佔用時,
' 告訴控制項讀入整個緩沖區。
MSComm1.InputLen = 0
' 打開埠。
MSComm1.PortOpen = True
' 將 attention 命令送到數據機。
' Chr$函數:返回 String,其中包含有與指定的字元代碼相關的字元 。
MSComm1.Output = "ATV1Q0" & Chr$(13) ' 確保
' 數據機以"OK"響應。
' 等待數據返回到串列埠。
Do
DoEvents
Buffer$ = Buffer$ & MSComm1.Input
Loop Until InStr(Buffer$, "OK" & vbCRLF)
' 從串列埠讀 "OK" 響應。
' 關閉串列埠。
MSComm1.PortOpen = False
End Sub
⑷ vb如何使用串口通訊
用PC機的9針RS232介面,用VB6 含有的MSComm 控制項編程
兩台PC機串列通信串列口的接線圖:
Private Sub Form_Load()
MSComm1.PortOpen = True '開啟通信控制項的埠
Timer1.Interval = 100 』自動傳送時間間隔100毫秒
End Sub
Private Sub MSComm1_OnComm()
Dim st As String
If MSComm1.InBufferCount > 0 Then
st = MSComm1.Input
Text2.Text = st '將收到的數據放入Text2文本框
End If
End Sub
Private Sub Timer1_Timer()
MSComm1.Output = Text1.Text '發送Text1文本框內容
End Sub
⑸ VB與串口通信
推薦 看 經典入門 書籍
Visual_Basic與_RS-232_串列通信控制
通常只 設置 Rthreshold,其他默認
單片機傳過來的數據變化很慢,所以大都是重復無用數據?你 單片機 程序 沒有 問題?
祝你順利
⑹ vb程序編寫模擬串口
這是典型的VB串口通信
你可以採用Mscomm控制項實現串口通信時,首先添加一Mscomm控制項到窗體中,通過菜單項「工程(P)→部件(O)」進入選擇窗口,在控制項頁中選取「MicrosoftCommControl6.0」,此時工具窗口中出現Mscomm圖標,即可被使用。
需要注意的幾點是:
1.用mscomm控制項進行通信,其波特率最高只能設為115200
2.利用MSCOMM控制項可以發送和接收任何文件的類型。
3.接收文本文件和二進制文件有一定的區別,接收二進制文件時用scomm1.Input讀入的變數需用Variant類型的變數,而文本文件可以用字元型變數,另外InputMode屬性應設置相應的文本方式或二進制方式
4.接收文本無大小限制。
5.當連續存數據時記錄號是自動加的,但當文件關閉後再次打開時,默認的記錄號為1,存儲文件不完整的原因可能在此。接收到文件頭識別字元時打開文件,接收中途不要關閉文件,直到接收到文件結束符(Mscomm1.EOFEnable事件發生)才能關閉文件。
我手頭有一個完整的VB串口通信源碼,對你的問題很有幫助
若你需要,發郵件至[email protected]
我會盡快發給你
如果滿意,加點分哦,資料都來之不易的呵呵
⑺ VB串口通信程序
串口初始化
Private Sub Form
Load()
MSComm1.CommPort = 1
設置通信埠號為
COM1
MSComm1.Settings = "9600,n,8,1"
設置串口
1
參數
MSComm1.InputMode = 0
接收文本型數據
MSComm1.PortOpen = True
打開通信埠
1
End Sub
把字元通過串口發送出去
Private Sub Cmdsend
Click()
If Textsend.Text = "" Then
pp = MsgBox("
發送的數據不能為空!
Exit Sub
End If
MSComm1.Output = Trim(Textsend.Text)
For i = 1 To 20000000
Next i
End Sub
通過時鍾控制來自動接收字元
Private Sub Timer1_
Timer()
Dim buf$
buf = Trim(MSComm1.Input)
將緩沖區內的數據讀入
buf
變數中
If Len(buf) <> 0 Then
判斷緩沖區內是否存在數據
TextReceive.Text = TextReceive.Text +Chr(13) + Chr(10) + buf
回車換行
End If
End Sub
關閉通信埠
停止程序運行
Private Sub Cmdquit
Click()
MSComm1.PortOpen = False
Unload Me
End Sub
⑻ vb串口通信程序實例
我也是自己摸索開發出來的每一款VBtoCOM通訊,有具體的思路如下:
給你推薦一個工具「com串口測試工具 ComTone V1.0 中文綠色版」
1、打開你的噪音計的測試軟體,調整好串口號、通訊頻率等等,我用溫度計舉例說明。
⑼ VB串口編程
VB2005有rs232的控制項,拖到窗體上,就可以收發串口的數據,你說的燈亮起來,只是具體的數據內容,這個內容類似A代表燈亮,B代表燈滅,完全自已控制
補充:你說的高低電平那是低一層的,單片機的接收協議一般是個表格,什麼字元代表什麼功能,SerialPort只是控制流向的字元
要說高低電平,那就是驅動了,則不能用控制項,語言應用C。
我對單片機不知,所以……
⑽ vb 串口 接收 程序
PrivateSubForm_Load()
MSComm1.CommPort=1
MSComm1.Settings="9600,n,8,1"
MSComm1.InputMode=comInputModeBinary
MSComm1.InputLen=0
MSComm1.SThreshold=1
MSComm1.RThreshold=1
MSComm1.PortOpen=True
Text5=""
EndSub
PrivateSubMSComm1_OnComm()
DimbufferAsVariant
Dimarr()AsByte
DimiAsLong
SelectCaseMSComm1.CommEvent
CasecomEvReceive
buffer=MSComm1.Input
arr=buffer
Fori=0ToUBound(arr)
Text5.Text=Text5.Text+"||"+Right("0"&Hex(arr(i)),2)
Nexti
MSComm1.InBufferCount=0
EndSelect
EndSub