void CAN_Init(void)
{
/* CMCR0: ??=0,??=0,??=0,SYNCH=0,TLNKEN=0,SLPAK=0,SLPRQ=0,SFTRES=1 */
CMCR0 = 1; /* CAN reset */
/* CMCR1: ??=0,??=0,??=0,??=0,??=0,LOOPB=0,WUPM=0,CLKSRC=0 */
CMCR1 = 0; //ʱÖÓԴΪÍⲿ¾§Õñ/2 = 2Mhz
CIDAC_IDAM = 0; //32λ½ÓÊÕ¹ýÂËÆ÷
CIDAR = 0x00000000; //Set the acceptance code
CIDMR = 0xFFFFFFFF; //Set the acceptance mask
CBTR0 = 0x43;
CBTR1 = 0xA3; //²¨ÌØÂÊΪ62.5K
CMCR0 = 0x00; //°ÑCANÄ£¿éÉèÖÃΪÊý¾ÝÊäÈëÊä³ö״̬
CRIER = 0xFF; //CAN½ÓÊÕÖжÏʹÄÜ
}
|