1、檢查串口是否正確,比如COM1,COM2,COM3等;
成都創(chuàng)新互聯(lián)公司是一家專業(yè)提供頭屯河企業(yè)網(wǎng)站建設(shè),專注與網(wǎng)站設(shè)計制作、成都網(wǎng)站建設(shè)、H5技術(shù)、小程序制作等業(yè)務(wù)。10年已為頭屯河眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)的建站公司優(yōu)惠進(jìn)行中。
2、檢查波特率是否正確,比如9600,115200等;
3、檢查數(shù)據(jù)位、停止位、校驗位是否正確,比如8位數(shù)據(jù)位、1位停止位、無校驗位等;
4、檢查串口線是否接好;
5、檢查串口是否被其他程序占用,可以使用串口調(diào)試助手查看;
6、檢查串口驅(qū)動是否安裝正確,可以在設(shè)備管理器中查看;
7、檢查程序代碼是否正確,可以使用串口調(diào)試助手查看。
你可以預(yù)先約定一個截止附,讀取的字節(jié)統(tǒng)統(tǒng)放到緩存區(qū)里,直到讀到截止附再處理、顯示。
vb.net的話
For
Each
sp
As
String
In
My.Computer.Ports.SerialPortNames
cbxport.Items.Add(sp)
Next
vb6.0的話要調(diào)用API查看串口相關(guān)信息存在的注冊表。
HKEY_LOCAL_MACHINE\HARDWARE\DEVICEMAP\SERIALCOMM
通過讀注冊表的方法獲得串口數(shù)量,當(dāng)然也可以獲得串口號了。
Option
Explicit
Private
Declare
Function
RegOpenKey
Lib
"advapi32.dll
"
Alias
"RegOpenKeyA
"
(ByVal
hKey
As
Long,
ByVal
lpSubKey
As
String,
phkResult
As
Long)
As
Long
Private
Declare
Function
RegQueryInfoKey
Lib
"advapi32.dll
"
Alias
"RegQueryInfoKeyA
"
(ByVal
hKey
As
Long,
ByVal
lpClass
As
String,
lpcbClass
As
Long,
ByVal
lpReserved
As
Long,
lpcSubKeys
As
Long,
lpcbMaxSubKeyLen
As
Long,
lpcbMaxClassLen
As
Long,
lpcValues
As
Long,
lpcbMaxValueNameLen
As
Long,
lpcbMaxValueLen
As
Long,
lpcbSecurityDescriptor
As
Long,
lpftLastWriteTime
As
Long)
As
Long
Private
Const
HKEY_LOCAL_MACHINE
=
H80000002
'
獲得當(dāng)前系統(tǒng)的
COM
口的數(shù)量
Function
GetCOMCount()
As
Integer
Dim
ret
As
Long,
cntCOM
As
Long
RegOpenKey
HKEY_LOCAL_MACHINE,
"HARDWARE\DEVICEMAP\SERIALCOMM
",
ret
RegQueryInfoKey
ret,
"
",
0,
0,
0,
0,
0,
cntCOM,
0,
0,
0,
GetCOMCount
=
cntCOM
End
Function
Private
Sub
Command1_Click()
MsgBox
"您的機(jī)器有
"
GetCOMCount
"
個串口。
",
vbOKOnly,
"串口數(shù)量
"
End
Sub
這是典型的VB串口通信
你可以采用Mscomm控件實現(xiàn)串口通信時,首先添加一Mscomm控件到窗體中,通過菜單項“工程(P)→部件(O)”進(jìn)入選擇窗口,在控件頁中選取“Microsoft?Comm?Control?6.0”?,此時工具窗口中出現(xiàn)Mscomm圖標(biāo),即可被使用。
需要注意的幾點(diǎn)是:
1.用mscomm控件進(jìn)行通信,其波特率最高只能設(shè)為115200
2.利用MSCOMM控件可以發(fā)送和接收任何文件的類型。
3.接收文本文件和二進(jìn)制文件有一定的區(qū)別,接收二進(jìn)制文件時用scomm1.Input讀入的變量需用Variant類型的變量,而文本文件可以用字符型變量,另外InputMode屬性應(yīng)設(shè)置相應(yīng)的文本方式或二進(jìn)制方式
4.接收文本無大小限制。
5.當(dāng)連續(xù)存數(shù)據(jù)時記錄號是自動加的,但當(dāng)文件關(guān)閉后再次打開時,默認(rèn)的記錄號為1,存儲文件不完整的原因可能在此。接收到文件頭識別字符時打開文件,接收中途不要關(guān)閉文件,直到接收到文件結(jié)束符(Mscomm1.EOFEnable事件發(fā)生)才能關(guān)閉文件。
我手頭有一個完整的VB串口通信源碼,對你的問題很有幫助
若你需要,發(fā)郵件至donook@qq.com
我會盡快發(fā)給你
如果滿意,加點(diǎn)分哦,資料都來之不易的呵呵
當(dāng)前文章:vb.net串口類源碼 vb串口編程實例
本文鏈接:http://m.newbst.com/article6/doghoig.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站導(dǎo)航、搜索引擎優(yōu)化、商城網(wǎng)站、做網(wǎng)站、自適應(yīng)網(wǎng)站、建站公司
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)