⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mscan.c

📁 关于XD256的应用实例,用于汽车电子开发之用
💻 C
字号:
/*****************************************************
 MSCAN.c - initialization of CAN modules     
 ----------------------------------------------------
  
 *****************************************************/

#include "hidef.h" /* this file declares symbols user by the CodeWarrior environment */

#include "VTypes.h"
#include "XDP512Regs.h"
#include "Globals.h"
#include "MSCAN.h"

/*************************************************************************************/

void MSCANInit(void)

 {
  
 /* Variable Declarations */

 
 /* Begin Function MSCANInit() */
 
 RegBase->CAN1.CTL1 = CANE;		/* enable the CAN module */
 RegBase->CAN1.BTR0 = 0xc0;		/* sync jump width = 4 Tq; prescaler = /1 */
 RegBase->CAN1.BTR1 = 0x3a;		/* TSEG2 = 3 (4); TSEG1 = 10 (11) */
 RegBase->CAN1.IDAC = 0x10;		/* 4 16-bit filters */
 RegBase->CAN1.IDMR0 = 0xff;		/* allow all messages to pass */
 RegBase->CAN1.IDMR1 = 0xff;
 RegBase->CAN1.IDMR2 = 0xff;
 RegBase->CAN1.IDMR3 = 0xff;
 RegBase->CAN1.IDMR4 = 0xff;
 RegBase->CAN1.IDMR5 = 0xff;
 RegBase->CAN1.IDMR6 = 0xff;
 RegBase->CAN1.IDMR7 = 0xff;
 RegBase->CAN1.CTL0 = 0;		/* clocked in Wait mode, timer disabled, wake-up disabled */
 while ((RegBase->CAN1.CTL1 & INITAK) != 0)
  ;
 RegBase->CAN1.RIER = RXFIE;		/* enable receive interrupts */
 RegBase->CAN1.TIER = 0x00;		/* no Xmit buffer empty interrupts */

 
 RegBase->CAN2.CTL1 = CANE;		/* enable the CAN module */
 RegBase->CAN2.BTR0 = 0xc0;		/* sync jump width = 4 Tq; prescaler = /1 */
 RegBase->CAN2.BTR1 = 0x3a;		/* TSEG2 = 3 (4); TSEG1 = 10 (11) */
 RegBase->CAN2.IDAC = 0x10;		/* 4 16-bit filters */
 RegBase->CAN2.IDMR0 = 0xff;		/* allow all messages to pass */
 RegBase->CAN2.IDMR1 = 0xff;
 RegBase->CAN2.IDMR2 = 0xff;
 RegBase->CAN2.IDMR3 = 0xff;
 RegBase->CAN2.IDMR4 = 0xff;
 RegBase->CAN2.IDMR5 = 0xff;
 RegBase->CAN2.IDMR6 = 0xff;
 RegBase->CAN2.IDMR7 = 0xff;
 RegBase->CAN2.RIER = 0x00;		/* we're only transmitting on CAN2 */
 while ((RegBase->CAN1.CTL1 & INITAK) != 0)
  ;
 RegBase->CAN2.TIER = 0x00;		/* no Xmit buffer empty interrupts */
 RegBase->CAN2.CTL0 = 0;		/* clocked in Wait mode, timer disabled, wake-up disabled */
 
 CANMsgData[0] = 0;			/* init our single byte message to 0 */
 CANMsgID = 0;				/* init the message ID to 0 */
 CANDataLen = 1;			/* send single byte messages */



}	/* end MSCANInit */

/*************************************************************************************/

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -