打印
[其他ST产品]

str731 的can 接受进不了中断 为什么

[复制链接]
2459|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
dkill|  楼主 | 2008-8-19 17:04 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
CAN, ST, TE, ni, se
下面是 初始化 程序
      CAN_InitTypeDef CAN0Init;
      CAN0Init.CAN_Mask = CAN_CR_IE| CAN_CR_CCE | CAN_CR_DAR;
      CAN0Init.CAN_Bitrate = CAN_BITRATE_100K;

    // initialize the interrupt controller
    EIC_IRQChannelConfig(CAN0_IRQChannel, ENABLE);
    EIC_IRQChannelPriorityConfig(CAN0_IRQChannel, 1);
    EIC_IRQCmd(ENABLE);

    // initialize the CAN at a standard bitrate,
           interruptsenabled
    CAN_Init(CAN0, &CAN0Init);

    // switch into Loopback+Silent mode (self-test)
    //CAN_EnterTestMode(CAN0, 
               CAN_TESTR_SILENT);//CAN_TESTR_LBACK );//| 
              把上面注销了 因为之前是测试模式
    // configure the message objects
    CAN_InvalidateAllMsgObj(CAN0);
       
    
    CAN_SetTxMsgObj(CAN0, CAN0_TX_MSGOBJ, CAN_EXT_ID);
    CAN_SetRxMsgObj(CAN0, CAN0_RX_MSGOBJ, CAN_EXT_ID, 0,  
                         CAN_LAST_EXT_ID, TRUE);

    
    // reception and release are done in the interrupt handler

    wait();

    GPIO_BitWrite(GPIO4,LD10,Bit_SET);//LED10

    // switch back into Normal mode
    //CAN_LeaveTestMode(CAN0);

    // disable interrupts globally
    //EIC_IRQCmd(DISABLE);
}

只是把进入测试模式的语句注销   可是为什么进不了中断
  那里还要配置呢  str731  求救
沙发
香水城| | 2008-8-19 18:38 | 只看该作者

请直接与ST的FAE联系

使用特权

评论回复
板凳
dkill|  楼主 | 2008-8-20 10:44 | 只看该作者

这个是deamon程序

void CAN2_Demo_Interrupt(void)
{
CAN_InitTypeDef CAN2Init;
CAN2Init.CAN_Mask = CAN_CR_IE;
CAN2Init.CAN_Bitrate = CAN_BITRATE_125K;

    // initialize the interrupt controller
    EIC_IRQChannelConfig(CAN2_IRQChannel, ENABLE);
    EIC_IRQChannelPriorityConfig(CAN2_IRQChannel, 1);
    EIC_IRQCmd(ENABLE);

    // initialize the CAN at a standard bitrate, interrupts enabled
    CAN_Init(CAN2, &CAN2Init);

    // switch into Loopback+Silent mode (self-test)
    CAN_EnterTestMode(CAN2, CAN_TESTR_LBACK | CAN_TESTR_SILENT);

    // configure the message objects
    CAN_InvalidateAllMsgObj(CAN2);
    CAN_SetTxMsgObj(CAN2, CAN2_TX_MSGOBJ, CAN_EXT_ID);
    CAN_SetRxMsgObj(CAN2, CAN2_RX_MSGOBJ, CAN_EXT_ID, 0, CAN_LAST_EXT_ID, TRUE);

    // send a pre-defined data frame
    (void)CAN_SendMessage(CAN2, CAN2_TX_MSGOBJ, &TxCan2Msg[1]);

    // reception and release are done in the interrupt handler

    wait();

    GPIO_BitWrite(GPIO4,LD13,Bit_SET);//LED13

    // switch back into Normal mode
    CAN_LeaveTestMode(CAN2);

    // disable interrupts globally
    EIC_IRQCmd(DISABLE);
}

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

62

主题

201

帖子

0

粉丝