请问你用的是什么控间进行的通讯
如果用scommp那么你就不必要管侦测工作
因为scommp有一个事件当有数据发到
串口里面就会激活这个事件了。
在这个事件里面判断接受的数据。************
* 努力学习 *
* 全为 *
*¥人民币¥*
************
如果用scommp那么你就不必要管侦测工作
因为scommp有一个事件当有数据发到
串口里面就会激活这个事件了。
在这个事件里面判断接受的数据。************
* 努力学习 *
* 全为 *
*¥人民币¥*
************
if FEventMask = EV_RXCHAR then
MessageBox(0);
================================================================CSDN 论坛助手 Ver 1.0 B0402提供下载。 改进了很多,功能完备!★ 浏览帖子速度极快![建议系统使用ie5.5以上]。 ★ 多种帖子实现界面。
★ 保存帖子到本地[html格式]★ 监视您关注帖子的回复更新。
★ 可以直接发贴、回复帖子★ 采用XML接口,可以一次性显示4页帖子,同时支持自定义每次显示帖子数量。可以浏览历史记录!
★ 支持在线检测程序升级情况,可及时获得程序更新的信息。★★ 签名 ●
可以在您的每个帖子的后面自动加上一个自己设计的签名哟。Http://www.ChinaOK.net/csdn/csdn.zip
Http://www.ChinaOK.net/csdn/csdn.rar
Http://www.ChinaOK.net/csdn/csdn.exe [自解压]
不知道还有没更好的方法,Jerry529说的方法试了一下,因水平问题没摆弄出来,可以解释详细一点吗?
在程序初始化的时候对串口进行初始化
当刷完卡时在将初始化命令写到读卡器
这样就可以了
var
Overlapped: TOverlapped;
WaitEventResult: Boolean;
begin
FillChar(Overlapped, Sizeof(Overlapped), 0);
Overlapped.hEvent := FEvent.Handle;// FEvent 是个TEvent对象
while (not Terminated) do
begin
WaitEventResult := WaitCommEvent(FCommHandle, FEventMask, @Overlapped);
if (GetLastError = ERROR_IO_PENDING) then
WaitEventResult := (FEvent.WaitFor(INFINITE) = wrSignaled);
if WaitEventResult then
begin
if FEventMask = EV_RXCHAR then
MessageBeep(0);
FEvent.ResetEvent;
end;
end;
PurgeComm(FCommHandle, PurgeReadWrite);
end;