background image

字节

comBuf:=SetupComm(hCommDev,1,1);//设置接收和发送缓冲区大小皆为 4096 字节
if comBuf=Falsethen
InitR12CommDev:='切换台通讯端口初始化失败.'
else
begin
InitR12CommDev:='切换台通讯端口初始化成功.';
//清空缓冲区
PurgeComm(hCommDev,PURGE_TXABORTorPURGE_RXABORTor
PURGE_TXCLEARorPURGE_RXCLEAR);
end;
//以下对串口进行配置
dcb.DCBlength:=sizeof(_DCB);
comState:=GetCommState(hCOmmDev,dcb); //得到缺省设置
if comState=Falsethen
InitR12CommDev:='切换台通讯端口初始化失败.'
else
InitR12CommDev:='切换台通讯端口初始化成功.';
dcb.BaudRate:=9600; //波特率 9600
dcb.ByteSize:=8;//7; //数据长度 7 位
dcb.Parity:=NOPARITY;//ODDPARITY;//校验方式奇校验
dcb.StopBits:=ONESTOPBIT;//停止位 1 位
dcb.Flags:=0; //EnablefBinary
dcb.Flags:=dcb.Flagsor2; //Enableparitycheck
dcb.XonChar:=chr($00);
dcb.XoffChar:=chr($00);
dcb.XonLim:=100;
dcb.XoffLim:=100;
dcb.EvtChar:=Char($ff);
comState:=SetCommState(hCommDev,dcb); //设置串口
ifcomState=Falsethen
InitR12CommDev:='切换台通讯端口初始化失败.'
else
InitR12CommDev:='切换台通讯端口初始化成功.';
//设置通信接收到字符事件句柄
postRecvEvent:=CreateEvent(NIL,
TRUE,//手工重置事件
TRUE,//初始化为有信号状态
NIL
);
//设置读异步 I/O 操作事件句柄
read_os.hEvent:=CreateEvent(NIL,
TRUE,//手工重置事件
FALSE,//初始化为无信号状态