我利用Windows API函数进行串口通讯,请问如何判断串口已接收到数据,谢谢。函数与变量如下:
(*关闭指定串口*)
Function CloseComm(Const Com:integer;const CloseAll:boolean=False):boolean;
(*打开指定串口*)
function OpenComm(Const COM:integer;
Const My_BandRate:DWORD=4800;
Const My_ByteSize:byte=8;
Const My_Parity:byte=NoParity;
Const My_StopBits:byte=0):Boolean;
//读串口函数集
Function ReadComm_string(Const Com:integer;var revcStr:string;const len:DWORD=0):boolean;//读取串口string
Function ReadComm_ByteArray(const Com:integer;var revcArray:array of byte;const len:DWORD=0):boolean;
Function ReadComm_Byte(Const Com:integer;var OneByte:byte):boolean;
//写串口口函数集
Function WriteComm_String(Const Com:integer;Const SendString:string):boolean;
Function WriteComm_ByteArray(Const Com:integer;const SendByte:array of byte;Buflong:DWORD):boolean;
Function WriteComm_Byte(Const Com:integer;const SendByte:byte):boolean;
//--------------
Function GetRXDsize(com:integer):integer; //得到RXD缓冲区数据长度
Function GetModemState(com:integer):DWord;//得到状态口的状态
procedure SetReadOFFByte(offByte:byte=$13);//设置接收停止结束符
Function IsReadOFFByte(RByte:byte):boolean;//判断接收的是不是停止结束符
procedure ClearRXD(com:integer);//清空RXD缓冲区内容
procedure ClearTXD(com:integer);//清空TXD缓冲区内容
procedure ClearComBuf(com:integer);//清空所有缓冲区
end;
(*关闭指定串口*)
Function CloseComm(Const Com:integer;const CloseAll:boolean=False):boolean;
(*打开指定串口*)
function OpenComm(Const COM:integer;
Const My_BandRate:DWORD=4800;
Const My_ByteSize:byte=8;
Const My_Parity:byte=NoParity;
Const My_StopBits:byte=0):Boolean;
//读串口函数集
Function ReadComm_string(Const Com:integer;var revcStr:string;const len:DWORD=0):boolean;//读取串口string
Function ReadComm_ByteArray(const Com:integer;var revcArray:array of byte;const len:DWORD=0):boolean;
Function ReadComm_Byte(Const Com:integer;var OneByte:byte):boolean;
//写串口口函数集
Function WriteComm_String(Const Com:integer;Const SendString:string):boolean;
Function WriteComm_ByteArray(Const Com:integer;const SendByte:array of byte;Buflong:DWORD):boolean;
Function WriteComm_Byte(Const Com:integer;const SendByte:byte):boolean;
//--------------
Function GetRXDsize(com:integer):integer; //得到RXD缓冲区数据长度
Function GetModemState(com:integer):DWord;//得到状态口的状态
procedure SetReadOFFByte(offByte:byte=$13);//设置接收停止结束符
Function IsReadOFFByte(RByte:byte):boolean;//判断接收的是不是停止结束符
procedure ClearRXD(com:integer);//清空RXD缓冲区内容
procedure ClearTXD(com:integer);//清空TXD缓冲区内容
procedure ClearComBuf(com:integer);//清空所有缓冲区
end;
解决方案 »
- 如何用DELPHI 写一个服务 用来从 数据库A中提取数据到B 数据库
- 数据库恢复的问题(提示错误是:数据库正使用,所以未能获得对数据库的排它访问权)?
- 韩文系统下为什么有部分中文输入时显示?,有部分正常。应该怎么解决呢?进者有分,200分贡献给大家
- 想showmessage一个DWORD 要怎么做啊?
- 关于打印的设置问题,大家帮帮我啊(100分)!
- Happy new year!!!如何实现自动拨号上网?
- 一个关于窗体的简单问题!
- delphi 编辑环境下怎样编写汇编程序
- 谁有D6的RTL2升级补丁
- 实在太急了。Ado连接执行完命令后的状态返回问题?在线。。。。
- 关于关闭窗体的问题
- id must have a value
WaitForMultipleObjects