5、,这样我们一次仅需要接收一定量的原始数据就可以完成初步信号采集工作。4、对于我们的红外接收程序来说并不需要实际解码出红外信号到底包含了那些具体的信息,只要其能够区分出红外遥控上的各个按键就行。5、由于红接收器是通过串口RTS管脚供电,且通过DSR传递红外信号的,所以我们的程序即使不接收数据,也要打开串口,不过仅需要处理RTS和DSR管脚的信号即可。好了,动手去做,下面是用VC实现的一个DLL,其功能就是接收并记录红外信号的持续时间。核心代码如下:DWORD WINAPI ThreadProc(LPVOID pParam){ LARGE_INTEGER l
6、itmp; LONGLONG QPart1,QPart2; double dfFreq; int iTime=0; //微秒大全实用文档 // 获得计数器的时钟频率 QueryPerformanceFrequency(&litmp); dfFreq = (double)1000000.0/litmp.QuadPart; DWORD ModemState,oldModemState=MS_DSR_ON; //EV_BREAK or EV_CTS or EV_DSR or EV_ER
7、R or EV_RING or EV_RLSD or EV_RXCHAR or EV_RXFLAG or EV_TXEMPTY //SetCommMask(HSC_COM_Handle,EV_DSR); //DWORD EvtMask,dwError; //COMSTAT cs; while(HSC_Thread_RunFlag) { //等待DSR信号发生变化 //WaitCommEvent(HSC_COM_Handle,&EvtMask,&HSC_Ovread); //Clear