LM3S9B96 CAN接收中断进不去

2019-03-24 12:48发布

之前做发送的时候,中断都没问题的,可以正常发送,现在做接收程序,老是进入红 {MOD}部分,所以无法接收数据,不知道有没有人碰到类似的情况。

//*****************************************************************************
// CAN中断服务函数
//*****************************************************************************
void
CANIntHandler(void)
{
    unsigned long ulStatus;

    // Read the CAN interrupt status to find the cause of the interrupt
    ulStatus = CANIntStatus(CAN0_BASE, CAN_INT_STS_CAUSE);//控制器中断寄存器的值并表示中断产生的原因

    // If the cause is a controller status interrupt, then get the status
    if(ulStatus == CAN_INT_INTID_STATUS)//中断产生的原因是一个状态中断
    {
         //在读取主控制器状态寄存器时,将清除一个正詆诠移鸬淖刺?卸?  
         g_bErrFlag = 1;// 表示有错误发生
    }

    else if(ulStatus == 1)//表示具有高优先级编号1的报文对象正在挂起一个中断
    {
        CANIntClear(CAN0_BASE, 1);//清除报文对象中断
        g_ulMsgCount++;//中断次数递增,记录接收到报文的数目
        g_bRXFlag = 1;//已接收一条报文
        g_bErrFlag = 0;//清除错误标记
    }

    else//其他不可预知的原因导致中断,这将永远不会发生
    {
        // Spurious interrupt handling can go here.
    }
} 此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
3条回答
喜鹊王子
2019-03-24 20:23
直接用 StellarisWare for C1examplesperipheralscan 里的例程就可以,先可以看看简单的发送和接收例程。

一周热门 更多>

相关问题

    相关文章