2块精英板之间实行CAN通信数据收发 但是 无法接收 琢磨2天了,各位大佬怎解?就正点原子的程序 没有做更改

2019-07-21 07:20发布

CAN_FilterInitStructure.CAN_FilterNumber=0;        //1yÂËÆ÷0
        CAN_FilterInitStructure.CAN_FilterMode=CAN_FilterMode_IdMask;         //Æá±ÎλÄ£ê½
        CAN_FilterInitStructure.CAN_FilterScale=CAN_FilterScale_32bit;         //32λ¿í
        CAN_FilterInitStructure.CAN_FilterIdHigh=0x0000;        //32λID
        CAN_FilterInitStructure.CAN_FilterIdLow=0x0000;
        CAN_FilterInitStructure.CAN_FilterMaskIdHigh=0x0000;//32λMASK
        CAN_FilterInitStructure.CAN_FilterMaskIdLow=0x0000;
        CAN_FilterInitStructure.CAN_FilterFIFOAssignment=CAN_Filter_FIFO0;//1yÂËÆ÷01Øáaμ½FIFO0
        CAN_FilterInitStructure.CAN_FilterActivation=ENABLE;//¼¤»î1yÂËÆ÷0

        CAN_FilterInit(&CAN_FilterInitStructure);                        //ÂË2¨Æ÷3õê¼»ˉ
       
#if CAN_RX0_INT_ENABLE
        CAN_ITConfig(CAN1,CAN_IT_FMP0,ENABLE);                                //FIFO0ÏûÏ¢1òoÅÖD¶ÏÔêDí.                    

        NVIC_InitStructure.NVIC_IRQChannel = USB_LP_CAN1_RX0_IRQn;
        NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 1;     // Ö÷óÅÏ輶Îa1
        NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;            // ′ÎóÅÏ輶Îa0
        NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
        NVIC_Init(&NVIC_InitStructure);
#endif
        return 0;
}   

#if CAN_RX0_INT_ENABLE        //ê1ÄüRX0ÖD¶Ï
ÖD¶Ï·tÎñoˉêy                            
void USB_LP_CAN1_RX0_IRQHandler(void)
{
          CanRxMsg RxMessage;
        int i=0;
    CAN_Receive(CAN1, 0, &RxMessage);
        for(i=0;i<8;i++)
        printf("rxbuf[%d]:%d ",i,RxMessage.Data[i]);
}
#endif

0条回答

一周热门 更多>