发表于:2005-11-17 21:21:00
楼主
static DWORD Can_EventHandle(LPVOID lpParam)
{
ASSERT(lpParam);
LPCAN_HW_OPEN_INFO hCan=(LPCAN_HW_OPEN_INFO)lpParam;
CanCardMessageBuf bufMsg;
while(TRUE)
{ /*循环等待CAN卡消息产生,然后进行处理*/
WaitForSingleObject(hCan->lpCanHWInfo->hCanEvent,INFINITE);
if(hCan->lpCanHWInfo->hKillCanThread)
break;/*若CAN线程已关闭,则中断*/
if(CAN_ReceiveMsg(hCan,&bufMsg)){
/*正确接收数据后*/
Can_RecvBufPush(hCan,&bufMsg)};
/*将数据压入缓存*/
BYTE byv=CANR(hCan,3);
/*将中断寄存器读出然后立即写入,这样能够获取每次中断*/
CANW(hCan,3,byV);
InterruptDone(hCan->lpCanHWInfo->lpCanObj->dwSysIrqt);
}/*本次中断结束,等待下次中断*/
return 0;
}
这是CE下面PCM-3680CAN卡驱动程序中处理接收中断的事件处理函数
我有一个疑问,正确接收数据后,为什么还要把数据压入缓存?也就是说,如果写的话,
Can_RecvBufPush(hCan,&bufMsg)中该写什么内容?