大家来看这段驱动程序 点击:603 | 回复:0



仇巍

    
  • 精华:0帖
  • 求助:0帖
  • 帖子:4帖 | 4回
  • 年度积分:0
  • 历史总积分:23
  • 注册:2005年9月18日
发表于: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)中该写什么内容?


热门招聘
相关主题

官方公众号

智造工程师