16進制 40 30 43 52 2C 32 9C 9A 0D 0E 0F 發送到串口,怎么也沒有接受資料?那位大俠能幫忙處理后,萬分感謝!
String ls_data
string ls_temp[]
string ttt[]
blob lp_buff
//使用COM3埠。
ole_1.object.CommPort = 3
ole_1.object.Settings = "9600,N,8,1" //設定速率為9600,無奇偶校驗,8 位資料,一個停止位。
//讀入整個緩沖區的資料。
ole_1.object.InputLen = 0
//打開埠
if ole_1.object.PortOpen = false then
ole_1.object.PortOpen = True
end if
//發送attention命令
ttt[1]=char(64)
ttt[2]=char(48)
ttt[3]=char(67)
ttt[4]=char(82)
ttt[5]=char(44)
ttt[6]=char(50)
ttt[7]=char(156)
ttt[8]=char(154)
ttt[9]=char(13)
ttt[10]=char(14)
ttt[11]=char(15)
//lp_buff={blob("~h40"),blob("~h30"),blob("~h43"),blob("~h52"),blob("~h2C"),blob("~h32"),blob("~h9C"),blob("~h9A"),blob("~h0D"),blob("~h0E"),blob("~h0F")}
lp_buff=blob(ttt[1])+blob(ttt[2])+blob(ttt[3])+blob(ttt[4])+blob(ttt[5])+blob(ttt[6])+blob(ttt[7])+blob(ttt[8])+blob(ttt[9])+blob(ttt[10])+blob(ttt[11])
ole_1.object.output =lp_buff
Yield()
Sleep(1)//延時1)秒。
//從Com埠取資料
ls_data = ole_1.object.Input
//關閉埠。
ole_1.object.PortOpen = FALSE
//if ls_data<>"" then
// //發送attention命令
//// ls_temp="40 30 43 52 2C 30 BC D8 0D 0E 0F"
// ole_1.object.Output =ls_temp
//
// sle_1.text=ls_data
//
//END IF
//
uj5u.com熱心網友回復:
這個好像很少人真正地用成功了,或者沒有人提供出來,有PBapi的到是能用uj5u.com熱心網友回復:
接收資料應該寫在 ole 的oncomm事件里,接收到資料會自動觸發,所以你output后面的代碼不用了If This.Object.commevent = 2 Then //有資料
ls_data = ole_1.object.Input
ls_tempstr = ls_tempstr + ls_data
sle_1.text = ls_tempstr
end if
還有接收完資料也不用關閉串口
打開串口等代碼可以寫到視窗的open事件里去
你發送完資料后可以在oncomm事件里debug一下看看有沒資料出來
沒出來的話說明你那邊硬體沒資料發出來( 可能你發給他的不對,所以它不發資料出來)
uj5u.com熱心網友回復:
0x00都能發,你這些字符肯定沒問題,就用mscomm控制元件uj5u.com熱心網友回復:
不知道你在說什么
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/70842.html
標籤:非技術版
上一篇:資料庫連接失敗
