在线时间0 小时
UID342581
注册时间2008-12-6
NXP金币0
该用户从未签到
新手上路

- 积分
- 1
- 最后登录
- 1970-1-1
|
我的DZ60 然后收发器用的是250,但是发送端一直没有数据,是什么原因呢。。底层用的是飞思卡尔官网提供的程序。外部晶振8M总线是16M,这是MCG初始化和CAN初始化的程序。
UINT8 CAN_Init(UINT8 rmode)
{
UINT8 errorStatus, /* error code from Reset_CAN */
i; /* loop counter */
#if defined(EEPROM_SECURITY_CHECK)
/* test for correct value in EEPROM */
if (CAN_dataCheck != EEPROM_SECURITY)
{
/* if test fails do not initialise */
return(ERR_OK);
}
#endif /* EEPROM_SECURITY_CHECK */
errorStatus = CAN_Reset(rmode); /* reset msCAN */
if (errorStatus != ERR_OK)
{
return (errorStatus);
}
CANCTL1 = CANCTL1_Def; /* initialise hardware registers */
CANBTR0 = CANBTR0_Def;
CANBTR1 = CANBTR1_Def;
CANIDAC = CANIDAC_Def;
for (i = 0; i < NO_OF_FILTER_REG; i++)
{
*(&CANIDAR0 + i) = CANIDFilter_Def; /* initialise hardware acceptance filter */
}
CANCTL0 &= ~INITRQ; /* clear soft reset */
CANCTL0 = CANCTL0_Def; /* must write separate from clearing SFTRST */
for (i = 0 ; i < NoOfMB ; i++) /* configure all MB's to CLOSED, NODATA */
{
BufferMode_CAN = CLOSED;
BufferStatus_CAN = NODATA;
}
MB_MSCAN[0] = 0xff; /* more efficient than for loop */
MB_MSCAN[1] = 0xff;
MB_MSCAN[2] = 0xff;
MBP_MSCAN[0] = 0xff;
MBP_MSCAN[1] = 0xff;
MBP_MSCAN[2] = 0xff;
#if (NO_OF_MSCAN_TXBUFFER != 3)
#error MB_MSCAN not initialised
#endif
if (CANCTL1 & INITAK) return ERR_INIT;
CLI; /* clear interrupt mask */
CANRIER = 0x01; /* enable Receive Interrupts */
if ((CANRFLG & BUSOFF) == BUSOFF) /* Bus-off */
{
return (ERR_BOFF);
}
else
{
return (ERR_OK);
}
}
#define CANCTL0_CAN ((CSWAI_CAN
|
|