

我認為可能是PComm沒有注冊,所以我下載了PComm.dll放入路徑C:\Windows\System32
然后運行->regsvr32 pcomm.dll
提示已經加載
但是找不到入口
uj5u.com熱心網友回復:
你用的是API(Declare)方式還是ActiveX方式匯入的dll?uj5u.com熱心網友回復:
Dim X As Integer '定義變數x用于記錄資料個數
Dim y0 As Integer '定義變數y0用于記錄上一次資料
Dim Y As Integer '定義變數y用于記錄當前資料
Dim strData As String
Private Sub Command1_Click()
MSComm1.CommPort = 9 '設定通信埠號為COM15,這個要根據自己所使用的串口而定
MSComm1.Settings = "9600,n,8,1" '設定串口引數,表示傳輸速率為4800bit/s,沒有奇偶校驗位,8位資料位,1位停止位
'這里串口上位機的設定一定要和下位機一致
MSComm1.InputMode = comInputModeBinary
'接收文本型資料為0,如果設定為1則以二進制的形式取回傳入的資料
MSComm1.PortOpen = True
'打開通信埠4'True即為打開埠,設定為False則為關上埠
'如果CommPort 屬性設定 為一個非法埠,則會產生錯誤68(設備無效)
Picture1.Scale (0, 20)-(200, -20)
'定義Picture1的坐標系,左上角坐標值 (0, 10)到右下角坐標值(200, -10)
Picture1.Line (0, 0)-(200, 0), RGB(0, 0, 255)
'用RGB顏色(0,0,255)畫出X軸
Shape1.FillColor = RGB(0, 255, 0)
'將指示燈調整為綠色
Timer1.Enabled = True
'啟動Timer1定時器
End Sub
Private Sub Timer1_Timer()
Dim buf() As Byte '定義一個位元組變數
Dim i As Long
buf = MSComm1.Input '將串口接識訓沖區內的資料讀入buf變數中
For i = 0 To UBound(buf)
If Len(Hex(buf(i))) = 1 Then
strData = strData & "0" & Hex(buf(i)) & " "
Else
strData = strData & Hex(buf(i)) & " "
End If
Text1.Text = Text1.Text & strData
If X <= 200 Then
'如果資料個數沒有到達最大值
Y = CInt(buf(i))
'用Val函式將Text1中的內容轉換為數字然后賦值給y,正負的符號也會一同轉換
Picture1.PSet (X, Y), RGB(255, 0, 0)
'在Picture1上(x,y)位置用RGB顏色(255,0 ,0)顏色畫點
Picture1.Line (X - 1, y0)-(X, Y), RGB(255, 0, 0)
'在上次資料(x-1,y1)和這次資料(x,y)之間用RGB顏色(255,0 ,0)顏色連線
End If
Next i
X = X + 1
'資料個數加1
y0 = Y
'把y值賦給用于記錄上一個資料的變數y1
Text2.Text = Text2.Text & " " & Hex(Y) & Chr(13) & Chr(10)
'Text2中的資料等于原先的資料加上資料編號加上資料的值以及Chr(13) & Chr(10)組成的換行符
Text2.SetFocus
Text2.SelStart = Len(Text2.Text)
'設定垂直滾動條自動滾動
'Text1.Text = ""
'清空Text1控制元件中的資料
End Sub
我是初學者,不太懂您說的這些,我有一段代碼是用于顯示串口資料的波形的,可以幫我看一下錯在哪里嗎?
現在的情況的程式無回應
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/28675.html
標籤:控件
上一篇:Microsoft VBScript 運行時報錯 '800A01AD' ActiveX部件不能創建物件
下一篇:圖書管理系統
