如題。我用delphi撰寫軟體向GSM模塊讀寫短信。
在讀短信的程式如下:
if not MSComm1.PortOpen then
exit;
//發送AT+CMGF=1
strOut := '';
strOut := 'AT+CMGF=1' + chr(13);
MSComm1.Output := strOut;
//發送AT+CMGR=1
strOut := '';
strOut := 'AT+CMGR=1' + chr(13);
MSComm1.Output := strOut;
//讀取資料并顯示在RichEdit1中
strIn := '';
strIn := MSComm1.Input;
LabRev.Caption := '成功接收到資料!';
RichEdit1.Text := RichEdit1.Text + strIn;
單獨運行程式時,RichEdit1中什么的沒有,但用單步除錯的時候,RichEdit1中有和短信相關的資料。
請問這是怎么回事,該怎么解決?
uj5u.com熱心網友回復:
Outout和inPut間加個等待時間,總要給對方一個回應時間吧uj5u.com熱心網友回復:
MSComm1.inputlen:=0; //Input將讀取接識訓沖區的全部內容Mscomm1.InBufferSize:=1024;//設定接識訓沖區的位元組長度
MSComm1.inbuffercount:=0;
MSComm1.portopen:=true;
MSComm1.Input; //先預讀緩沖區以清除殘留資料
Mscomm1.DTREnable :=true; // 資料終端準備好
Mscomm1.RTSEnable :=true; // 請求發送
MSComm1.Output := 'AT' +Chr(13);
sleep(300);
ed_test.Text:=MSComm1.Input;
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/132857.html
標籤:VCL組件開發及應用
上一篇:delphi串口編程總感覺傳完資料之后緩沖有影響。看內容,大神幫幫忙啊。
下一篇:Delphi動態創建控制元件
