前面设置都是按照网上的设置进行的,结果设置CANBTC时,将寄存器放在ECanaShadow时 ,死掉了
没法运行下去了
我市在ran里边调试的.
以下是程序:
EALLOW;
// 邮箱中断屏蔽寄存器。上电后所有的中断屏蔽位都清零且停止中断使能。
// 这些位允许独立屏蔽任何邮箱中断。
ECanaRegs.CANMIM.all = 0xFFFFFFFF;
// CANMIM .BIT.X=1 邮箱中断被使能(X=1~31)
// CANMIM .BIT.X=0 邮箱中断被禁止(X=1~31)
ECanaShadow.CANMC.all = ECanaRegs.CANMC.all; // 把CANMC读入影子寄存器
ECanaShadow.CANMC.bit.CCR = 1; // 改变配置请求位
ECanaRegs.CANMC.all = ECanaShadow.CANMC.all; // 把配置好的寄存器值回写
EDIS;
/*CPU要求对配置寄存器CANBTC和SCC的接收屏蔽寄存器(CANGAM,LAM[0]和LAM[3])进行写操作。对该位置位后,CPU必须等待,直到CANES寄存器的CCE标志位在送入CANBTC寄存器之前为1 */
do
{
ECanaShadow.CANES.all = ECanaRegs.CANES.all;
} while(ECanaShadow.CANES.bit.CCE != 1 ); // 当CCE=1时可以对CANBTC进行操作。
// 配置波特率
|