procedure TfrmMain.stratClick(Sender: TObject);
var
viewstring:string;
i:integer;
commflg:boolean;
rbuf,sbuf:array[0..1] of byte;
// rbuf,sbuf: array[0..12] of byte =($10,$12,$12,$65,$63,$74,$42,$61,$6E,$60,$25,$14,$85);
begin
/////////////////////////
if Edit22.Text='' then
frmMain.Comm2.CommName:='COM4'
else
frmMain.Comm2.CommName:=Edit22.Text;
frmMain.Comm2.BaudRate:=9600;
frmMain.Comm2.ParityCheck:=false; //奇偶校驗
frmMain.Comm2.ByteSize:=_8;
frmMain.Comm2.Parity:=Even;
frmMain.COMM2.StopBits:=_1;
//Comm2.SendDataEmpty:=True;
frmMain.Comm2.StopComm;
frmMain.Comm2.StartComm;
///////////////////////////////
viewstring:='' ;
commflg:=true;
sbuf[0]:=1; //開機
if not frmMain.comm2.writecommdata(@sbuf[0],1 ) then
begin
// Label4.Caption:= GetLastError ;
commflg:=false;
Label4.Caption:='發送啟動資訊2出錯';
end
else
begin
Label4.Caption:='發送啟動資訊2成功';
end;
Edit10.SetFocus;
Comm2.StopComm;
uj5u.com熱心網友回復:
發短信,二種模式:一是需要專用模塊,通過類似手機模塊,發短信。
二是通過專用網站,發送短信。
采購手機模擬,有Demo和Dll說明的。
uj5u.com熱心網友回復:
frmMain.Comm2.BaudRate:=9600;frmMain.Comm2.ParityCheck:=false; //奇偶校驗
frmMain.Comm2.ByteSize:=_8;
frmMain.Comm2.Parity:=Even;
frmMain.COMM2.StopBits:=_1;
這幾個設定你需要注意一下,可以使用工具先測驗引數是否正確,如波特率9600是否正確。
uj5u.com熱心網友回復:
writecommdata這函式是否成功跟波特率沒關系的。把if not frmMain.comm2.writecommdata(@sbuf[0],1 ) then修改為
if not frmMain.comm2.writecommdata(@sbuf,1 ) then
試試。
uj5u.com熱心網友回復:
補充:我分享的“稱重儀表資料決議控制元件代碼”涉及大量的串口操作。uj5u.com熱心網友回復:
你需要提供你用的SPCOMM和Delphi的版本,不同的版本下,函式writecommdata 的用法存在區別,尤其是Delphi XE版本之后的。uj5u.com熱心網友回復:
if not frmMain.comm2.writecommdata(sbuf[0],1 ) then 這樣試試uj5u.com熱心網友回復:
是不是關閉串口太早了,資料還沒有發送出去。轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/46086.html
標籤:VCL組件開發及應用
上一篇:關于隨機分配資料的問題!!
