| 现在问题是CAN进不了中断,以下是我的CAN部分程序 中断部分
 void NVIC_Configuration(void)
 {
 NVIC_InitTypeDef NVIC_InitStructure;
 
 #ifdef  VECT_TAB_RAM
 /* Set the Vector Table base location at 0x20000000 */
 NVIC_SetVectorTable(NVIC_VectTab_RAM, 0x0);
 #else  /* VECT_TAB_FLASH  */
 /* Set the Vector Table base location at 0x08000000 */
 NVIC_SetVectorTable(NVIC_VectTab_FLASH, 0x0);
 #endif
 
 /* enabling interrupt */
 NVIC_InitStructure.NVIC_IRQChannel=USB_LP_CAN_RX0_IRQChannel;
 NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;
 NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;
 NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
 NVIC_Init(&NVIC_InitStructure);
 }
 中断处理部分
 void USB_LP_CAN_RX0_IRQHandler(void)
 {
 CanRxMsg RxMessage;
 
 RxMessage.StdId=0x00;
 RxMessage.IDE=0;
 RxMessage.DLC=0;
 RxMessage.FMI=0;
 RxMessage.Data[0]=0x00;
 RxMessage.Data[1]=0x00;
 
 CAN_Receive(CAN_FIFO0, &RxMessage);
 //CAN_ClearITPendingBit(CAN_IT_FMP0);
 if((RxMessage.StdId==0x11) && (RxMessage.IDE==CAN_ID_STD))//&& (RxMessage.DLC==2)&& ((RxMessage.Data[1]|RxMessage.Data[0]<<8)==0xCAFE))
 {
 ret = 1;
 CAN_Data[0] = RxMessage.Data[0];
 CAN_Data[1] = RxMessage.Data[1];
 }
 else
 {
 ret = 0;
 }
 
 }
 
 CAN部分
 
 /* CAN cell init */
 CAN_InitStructure.CAN_TTCM=DISABLE;
 CAN_InitStructure.CAN_ABOM=DISABLE;
 CAN_InitStructure.CAN_AWUM=DISABLE;
 CAN_InitStructure.CAN_NART=DISABLE;
 CAN_InitStructure.CAN_RFLM=DISABLE;
 CAN_InitStructure.CAN_TXFP=DISABLE;
 CAN_InitStructure.CAN_Mode=CAN_Mode_Normal;
 CAN_InitStructure.CAN_SJW=CAN_SJW_1tq;
 CAN_InitStructure.CAN_BS1=CAN_BS1_8tq;
 CAN_InitStructure.CAN_BS2=CAN_BS2_7tq;
 CAN_InitStructure.CAN_Prescaler=1;
 CAN_Init(&CAN_InitStructure);
 
 /* CAN filter init */
 CAN_FilterInitStructure.CAN_FilterNumber=0;
 CAN_FilterInitStructure.CAN_FilterMode=CAN_FilterMode_IdMask;
 CAN_FilterInitStructure.CAN_FilterScale=CAN_FilterScale_32bit;
 CAN_FilterInitStructure.CAN_FilterIdHigh=0x0000;
 CAN_FilterInitStructure.CAN_FilterIdLow=0x0000;
 CAN_FilterInitStructure.CAN_FilterMaskIdHigh=0x0000;
 CAN_FilterInitStructure.CAN_FilterMaskIdLow=0x0000;
 CAN_FilterInitStructure.CAN_FilterFIFOAssignment=CAN_FIFO0;
 CAN_FilterInitStructure.CAN_FilterActivation=ENABLE;
 CAN_FilterInit(&CAN_FilterInitStructure);
 
 /* CAN FIFO0 message pending interrupt enable */
 CAN_ITConfig(CAN_IT_FMP0, ENABLE);
 
 /* initialize the value that will be returned */
 ret = 0xFF;
 
 /* receive message with interrupt handling */
 i=0;
 while((ret == 0xFF) && (i < 0xFFF))
 {
 i++;
 }
 
 if (i == 0xFFF)
 {
 ret=0;
 }
 /* disable interrupt handling */
 CAN_ITConfig(CAN_IT_FMP0, DISABLE);
 
 return (TestStatus)ret;
 |