【求助】关于TMS320F2812的接收屏蔽问题。

[复制链接]
3020|1
 楼主| wlj3304 发表于 2008-7-18 18:20 | 显示全部楼层 |阅读模式
<br />有关ecan的接收屏蔽问题<br />我想屏蔽掉can标识符的后三位,我这是标准的can没有扩展位,前几位的can标识符的前8位为1000&nbsp;1001,是不是MID还是按照不屏蔽之前的设置,跟发送邮箱的一致,只要设置屏蔽寄存器屏蔽掉想要屏蔽的位就可以了?我是再初始化程序中设置的接收以及接收屏蔽,程序如下,结果总是不对,不知道为什么,大家帮忙看一下谢谢了。<br />void&nbsp;InitECan(void)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;struct&nbsp;ECAN_REGS&nbsp;ECanaShadow;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;struct&nbsp;LAM_REGS&nbsp;ECanaLAMRegs;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;EALLOW;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ECanaShadow.CANTIOC.all&nbsp;=&nbsp;ECanaRegs.CANTIOC.all;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ECanaShadow.CANTIOC.bit.TXFUNC&nbsp;=&nbsp;1;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ECanaRegs.CANTIOC.all&nbsp;=&nbsp;ECanaShadow.CANRIOC.all;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ECanaShadow.CANRIOC.all&nbsp;=&nbsp;ECanaRegs.CANRIOC.all;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ECanaShadow.CANRIOC.bit.RXFUNC&nbsp;=&nbsp;1;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ECanaRegs.CANRIOC.all&nbsp;=&nbsp;ECanaShadow.CANRIOC.all;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;EDIS;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /><br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ECanaRegs.CANME.all&nbsp;=&nbsp;0x00000000;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;//ECanaMboxes.MBOX16.MID.all=0x113C0000;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ECanaMboxes.MBOX16.MID.all=0x51200000;<br />&nbsp;&nbsp;&nbsp;&nbsp;ECanaLAMRegs.LAM16.all=0x801FFFFF;<br />&nbsp;&nbsp;&nbsp;&nbsp;ECanaMboxes.MBOX16.MCF.bit.RTR&nbsp;=&nbsp;0;<br />&nbsp;&nbsp;&nbsp;&nbsp;ECanaMboxes.MBOX16.MCF.bit.DLC&nbsp;=&nbsp;ECanaMboxes.MBOX0.MCF.bit.DLC;&nbsp;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*0~15&nbsp;is&nbsp;TX,16~31&nbsp;is&nbsp;RX*/<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ECanaRegs.CANMD.all&nbsp;=&nbsp;0xFFFF0000;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*32个邮箱使能*/<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ECanaRegs.CANME.all&nbsp;=&nbsp;0x00010001;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ECanaMboxes.MBOX0.MCF.all&nbsp;=&nbsp;0;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ECanaMboxes.MBOX1.MCF.all&nbsp;=&nbsp;0;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ECanaMboxes.MBOX2.MCF.all&nbsp;=&nbsp;0;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ECanaMboxes.MBOX3.MCF.all&nbsp;=&nbsp;0;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ECanaMboxes.MBOX4.MCF.all&nbsp;=&nbsp;0;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ECanaMboxes.MBOX5.MCF.all&nbsp;=&nbsp;0;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ECanaMboxes.MBOX6.MCF.all&nbsp;=&nbsp;0;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ECanaMboxes.MBOX7.MCF.all&nbsp;=&nbsp;0;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ECanaMboxes.MBOX8.MCF.all&nbsp;=&nbsp;0;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ECanaMboxes.MBOX9.MCF.all&nbsp;=&nbsp;0;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ECanaMboxes.MBOX10.MCF.all&nbsp;=&nbsp;0;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ECanaMboxes.MBOX11.MCF.all&nbsp;=&nbsp;0;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ECanaMboxes.MBOX12.MCF.all&nbsp;=&nbsp;0;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ECanaMboxes.MBOX13.MCF.all&nbsp;=&nbsp;0;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ECanaMboxes.MBOX14.MCF.all&nbsp;=&nbsp;0;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ECanaMboxes.MBOX15.MCF.all&nbsp;=&nbsp;0;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ECanaMboxes.MBOX16.MCF.all&nbsp;=&nbsp;0;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ECanaMboxes.MBOX17.MCF.all&nbsp;=&nbsp;0;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ECanaMboxes.MBOX18.MCF.all&nbsp;=&nbsp;0;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ECanaMboxes.MBOX19.MCF.all&nbsp;=&nbsp;0;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ECanaMboxes.MBOX20.MCF.all&nbsp;=&nbsp;0;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ECanaMboxes.MBOX21.MCF.all&nbsp;=&nbsp;0;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ECanaMboxes.MBOX22.MCF.all&nbsp;=&nbsp;0;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ECanaMboxes.MBOX23.MCF.all&nbsp;=&nbsp;0;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ECanaMboxes.MBOX24.MCF.all&nbsp;=&nbsp;0;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ECanaMboxes.MBOX25.MCF.all&nbsp;=&nbsp;0;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ECanaMboxes.MBOX26.MCF.all&nbsp;=&nbsp;0;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ECanaMboxes.MBOX27.MCF.all&nbsp;=&nbsp;0;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ECanaMboxes.MBOX28.MCF.all&nbsp;=&nbsp;0;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ECanaMboxes.MBOX29.MCF.all&nbsp;=&nbsp;0;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ECanaMboxes.MBOX30.MCF.all&nbsp;=&nbsp;0;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ECanaMboxes.MBOX31.MCF.all&nbsp;=&nbsp;0;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//没有远方应答帧被请求<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ECanaMboxes.MBOX0.MCF.bit.RTR&nbsp;=&nbsp;0;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ECanaMboxes.MBOX1.MCF.bit.RTR&nbsp;=&nbsp;0;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ECanaMboxes.MBOX2.MCF.bit.RTR&nbsp;=&nbsp;0;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ECanaMboxes.MBOX3.MCF.bit.RTR&nbsp;=&nbsp;0;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ECanaMboxes.MBOX4.MCF.bit.RTR&nbsp;=&nbsp;0;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ECanaMboxes.MBOX5.MCF.bit.RTR&nbsp;=&nbsp;0;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ECanaMboxes.MBOX6.MCF.bit.RTR&nbsp;=&nbsp;0;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ECanaMboxes.MBOX7.MCF.bit.RTR&nbsp;=&nbsp;0;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ECanaMboxes.MBOX8.MCF.bit.RTR&nbsp;=&nbsp;0;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ECanaMboxes.MBOX9.MCF.bit.RTR&nbsp;=&nbsp;0;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ECanaMboxes.MBOX10.MCF.bit.RTR&nbsp;=&nbsp;0;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ECanaMboxes.MBOX11.MCF.bit.RTR&nbsp;=&nbsp;0;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ECanaMboxes.MBOX12.MCF.bit.RTR&nbsp;=&nbsp;0;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ECanaMboxes.MBOX13.MCF.bit.RTR&nbsp;=&nbsp;0;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ECanaMboxes.MBOX14.MCF.bit.RTR&nbsp;=&nbsp;0;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ECanaMboxes.MBOX15.MCF.bit.RTR&nbsp;=&nbsp;0;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ECanaMboxes.MBOX16.MCF.bit.RTR&nbsp;=&nbsp;0;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ECanaMboxes.MBOX17.MCF.bit.RTR&nbsp;=&nbsp;0;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ECanaMboxes.MBOX18.MCF.bit.RTR&nbsp;=&nbsp;0;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ECanaMboxes.MBOX19.MCF.bit.RTR&nbsp;=&nbsp;0;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ECanaMboxes.MBOX20.MCF.bit.RTR&nbsp;=&nbsp;0;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ECanaMboxes.MBOX21.MCF.bit.RTR&nbsp;=&nbsp;0;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ECanaMboxes.MBOX22.MCF.bit.RTR&nbsp;=&nbsp;0;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ECanaMboxes.MBOX23.MCF.bit.RTR&nbsp;=&nbsp;0;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ECanaMboxes.MBOX24.MCF.bit.RTR&nbsp;=&nbsp;0;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ECanaMboxes.MBOX25.MCF.bit.RTR&nbsp;=&nbsp;0;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ECanaMboxes.MBOX26.MCF.bit.RTR&nbsp;=&nbsp;0;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ECanaMboxes.MBOX27.MCF.bit.RTR&nbsp;=&nbsp;0;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ECanaMboxes.MBOX28.MCF.bit.RTR&nbsp;=&nbsp;0;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ECanaMboxes.MBOX29.MCF.bit.RTR&nbsp;=&nbsp;0;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ECanaMboxes.MBOX30.MCF.bit.RTR&nbsp;=&nbsp;0;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ECanaMboxes.MBOX31.MCF.bit.RTR&nbsp;=&nbsp;0;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;EALLOW;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*邮箱屏蔽使能*/<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ECanaRegs.CANMIM.all&nbsp;=&nbsp;0xFFFFFFFF;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ECanaShadow.CANMC.all&nbsp;=&nbsp;ECanaRegs.CANMC.all;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ECanaShadow.CANMC.bit.CCR&nbsp;=&nbsp;1;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ECanaRegs.CANMC.all&nbsp;=&nbsp;ECanaShadow.CANMC.all;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;EDIS;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;do<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ECanaShadow.CANES.all&nbsp;=&nbsp;ECanaRegs.CANES.all;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}while(ECanaShadow.CANES.bit.CCE&nbsp;!=&nbsp;1);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;EALLOW;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ECanaShadow.CANBTC.bit.BRP&nbsp;=&nbsp;19;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ECanaShadow.CANBTC.bit.TSEG2&nbsp;=&nbsp;5;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ECanaShadow.CANBTC.bit.TSEG1&nbsp;=7;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*(BRPREG+1)=10&nbsp;feeds&nbsp;a&nbsp;15MHz&nbsp;CAN&nbsp;clock*/<br />&nbsp;&nbsp;&nbsp;//&nbsp;if&nbsp;(baud_rate==BR125)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//ECanaShadow.CANBTC.bit.BRP&nbsp;=&nbsp;79;//位定时器控制寄存器<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*150/10=15*/<br />&nbsp;&nbsp;&nbsp;&nbsp;//else<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//if(baud_rate==BR250)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;ECanaShadow.CANBTC.bit.BRP&nbsp;=&nbsp;39;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//else<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;if(baud_rate==BR500)&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;ECanaShadow.CANBTC.bit.BRP&nbsp;=&nbsp;19;<br />&nbsp;&nbsp;&nbsp;&nbsp;ECanaRegs.CANBTC.all&nbsp;=&nbsp;ECanaShadow.CANBTC.all;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ECanaShadow.CANMC.all&nbsp;=&nbsp;ECanaRegs.CANMC.all;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ECanaShadow.CANMC.bit.CCR&nbsp;=&nbsp;0;<br />&nbsp;&nbsp;&nbsp;&nbsp;ECanaShadow.CANMC.bit.DBO=1;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ECanaRegs.CANMC.all&nbsp;=&nbsp;ECanaShadow.CANMC.all;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;EDIS;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;do<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ECanaShadow.CANES.all&nbsp;=&nbsp;ECanaRegs.CANES.all;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}while(ECanaShadow.CANES.bit.CCE&nbsp;!=&nbsp;0);<br /><br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;EALLOW;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ECanaShadow.CANMC.all&nbsp;=&nbsp;ECanaRegs.CANMC.all;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ECanaShadow.CANMC.bit.STM&nbsp;=&nbsp;1;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ECanaShadow.CANMC.bit.SCB&nbsp;=&nbsp;1;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ECanaRegs.CANMC.all&nbsp;=&nbsp;ECanaShadow.CANMC.all;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;EDIS;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;ECanaRegs.CANME.all&nbsp;=&nbsp;0x00000000;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;#if&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CAN_INT<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;EALLOW;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ECanaRegs.CANMIM.all&nbsp;=&nbsp;0xffffffff;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ECanaRegs.CANMIL.all&nbsp;=&nbsp;0;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ECanaRegs.CANGIF0.all&nbsp;=&nbsp;0xFFFFFFFF;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ECanaRegs.CANGIF1.all&nbsp;=&nbsp;0xFFFFFFFF;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ECanaRegs.CANGIM.bit.I0EN&nbsp;=&nbsp;1;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ECanaRegs.CANGIM.bit.I1EN&nbsp;=&nbsp;1;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ECanaRegs.CANGIM.all&nbsp;=&nbsp;0x3ff07;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;EDIS;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PieCtrl.PIEIER9.bit.INTx6&nbsp;=&nbsp;1;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PieCtrl.PIEIER9.bit.INTx5&nbsp;=&nbsp;1;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#endif<br />}<br /><br /><br /><br /><br />
 楼主| wlj3304 发表于 2008-7-20 20:32 | 显示全部楼层

接收屏蔽失效,不知道为什么?

void&nbsp;InitECan(void)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;struct&nbsp;ECAN_REGS&nbsp;ECanaShadow;<br />&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;EALLOW;<br />&nbsp;&nbsp;&nbsp;&nbsp;ECanaShadow.CANTIOC.all&nbsp;=&nbsp;ECanaRegs.CANTIOC.all;<br />&nbsp;&nbsp;&nbsp;&nbsp;ECanaShadow.CANTIOC.bit.TXFUNC&nbsp;=&nbsp;1;<br />&nbsp;&nbsp;&nbsp;&nbsp;ECanaRegs.CANTIOC.all&nbsp;=&nbsp;ECanaShadow.CANRIOC.all;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;ECanaShadow.CANRIOC.all&nbsp;=&nbsp;ECanaRegs.CANRIOC.all;<br />&nbsp;&nbsp;&nbsp;&nbsp;ECanaShadow.CANRIOC.bit.RXFUNC&nbsp;=&nbsp;1;<br />&nbsp;&nbsp;&nbsp;&nbsp;ECanaRegs.CANRIOC.all&nbsp;=&nbsp;ECanaShadow.CANRIOC.all;<br />&nbsp;&nbsp;&nbsp;&nbsp;EDIS;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;EALLOW;<br />&nbsp;&nbsp;&nbsp;&nbsp;ECanaShadow.CANMC.all&nbsp;=&nbsp;ECanaRegs.CANMC.all;<br />&nbsp;&nbsp;&nbsp;&nbsp;ECanaShadow.CANMC.bit.STM&nbsp;=&nbsp;1;<br />&nbsp;&nbsp;&nbsp;&nbsp;ECanaShadow.CANMC.bit.SCM&nbsp;=&nbsp;1;<br />&nbsp;&nbsp;&nbsp;&nbsp;ECanaRegs.CANMC.all&nbsp;=&nbsp;ECanaShadow.CANMC.all;<br />&nbsp;&nbsp;&nbsp;&nbsp;EDIS;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;ECanaRegs.CANME.all&nbsp;=&nbsp;0;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;/*发送邮箱的ID号*/<br />&nbsp;&nbsp;&nbsp;&nbsp;ECanaMboxes.MBOX0.MID.all&nbsp;=&nbsp;0x11200000;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*接收邮箱的ID号*/<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ECanaMboxes.MBOX16.MID.all&nbsp;=&nbsp;0x513C0000;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ECanaLAMRegs.LAM16.all=0x801c0000;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;/*0~15&nbsp;is&nbsp;TX,16~31&nbsp;is&nbsp;RX*/<br />&nbsp;&nbsp;&nbsp;&nbsp;ECanaRegs.CANMD.all&nbsp;=&nbsp;0xFFFF0000;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;/*32个邮箱使能*/<br />&nbsp;&nbsp;&nbsp;&nbsp;ECanaRegs.CANME.all&nbsp;=&nbsp;0x00010001;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;/*数据长度&nbsp;8个BYTE*/<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ECanaMboxes.MBOX0.MCF.all=0;<br />&nbsp;&nbsp;&nbsp;&nbsp;ECanaMboxes.MBOX16.MCF.all=0;<br />&nbsp;&nbsp;&nbsp;&nbsp;ECanaMboxes.MBOX0.MCF.bit.DLC&nbsp;=&nbsp;8;<br />&nbsp;&nbsp;&nbsp;&nbsp;ECanaMboxes.MBOX16.MCF.bit.DLC&nbsp;=&nbsp;8;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;/*没有远方应答帧被请求*/<br />&nbsp;&nbsp;&nbsp;&nbsp;ECanaMboxes.MBOX0.MCF.bit.RTR&nbsp;=&nbsp;0;<br />&nbsp;&nbsp;&nbsp;&nbsp;ECanaMboxes.MBOX16.MCF.bit.RTR&nbsp;=&nbsp;0;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;ECanaMboxes.MBOX0.MDRL.all&nbsp;=&nbsp;0x9555AAA0;<br />&nbsp;&nbsp;&nbsp;&nbsp;ECanaMboxes.MBOX0.MDRH.all&nbsp;=&nbsp;0x89ABCDEF;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;EALLOW;<br />&nbsp;&nbsp;&nbsp;&nbsp;/*邮箱屏蔽使能*/<br />&nbsp;&nbsp;&nbsp;&nbsp;ECanaRegs.CANMIM.all&nbsp;=&nbsp;0xFFFFFFFF;<br />&nbsp;&nbsp;&nbsp;&nbsp;ECanaShadow.CANMC.all&nbsp;=&nbsp;ECanaRegs.CANMC.all;<br />&nbsp;&nbsp;&nbsp;&nbsp;ECanaShadow.CANMC.bit.CCR&nbsp;=&nbsp;1;<br />&nbsp;&nbsp;&nbsp;&nbsp;ECanaRegs.CANMC.all&nbsp;=&nbsp;ECanaShadow.CANMC.all;<br />&nbsp;&nbsp;&nbsp;&nbsp;EDIS;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;do<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ECanaShadow.CANES.all&nbsp;=&nbsp;ECanaRegs.CANES.all;<br />&nbsp;&nbsp;&nbsp;&nbsp;}while(ECanaShadow.CANES.bit.CCE&nbsp;!=&nbsp;1);<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;EALLOW;<br />&nbsp;&nbsp;&nbsp;&nbsp;/*(BRPREG+1)=10&nbsp;feeds&nbsp;a&nbsp;15MHz&nbsp;CAN&nbsp;clock*/<br />&nbsp;&nbsp;&nbsp;&nbsp;ECanaShadow.CANBTC.bit.BRP&nbsp;=&nbsp;9;<br />&nbsp;&nbsp;&nbsp;&nbsp;/*150/10=15*/<br />&nbsp;&nbsp;&nbsp;&nbsp;ECanaShadow.CANBTC.bit.TSEG2&nbsp;=&nbsp;5;<br />&nbsp;&nbsp;&nbsp;&nbsp;ECanaShadow.CANBTC.bit.TSEG1&nbsp;=&nbsp;7;<br />&nbsp;&nbsp;&nbsp;&nbsp;ECanaRegs.CANBTC.all&nbsp;=&nbsp;ECanaShadow.CANBTC.all;<br /><br />&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;ECanaShadow.CANMC.all&nbsp;=&nbsp;ECanaRegs.CANMC.all;<br />&nbsp;&nbsp;&nbsp;&nbsp;ECanaShadow.CANMC.bit.CCR&nbsp;=&nbsp;0;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ECanaShadow.CANMC.bit.DBO=0;<br />&nbsp;&nbsp;&nbsp;&nbsp;ECanaRegs.CANMC.all&nbsp;=&nbsp;ECanaShadow.CANMC.all;<br />&nbsp;&nbsp;&nbsp;&nbsp;EDIS;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;do<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ECanaShadow.CANES.all&nbsp;=&nbsp;ECanaRegs.CANES.all;<br />&nbsp;&nbsp;&nbsp;&nbsp;}while(ECanaShadow.CANES.bit.CCE&nbsp;!=&nbsp;0);<br />&nbsp;&nbsp;&nbsp;&nbsp;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;#if&nbsp;&nbsp;&nbsp;&nbsp;CAN_INT<br />&nbsp;&nbsp;&nbsp;&nbsp;EALLOW;<br />&nbsp;&nbsp;&nbsp;&nbsp;ECanaRegs.CANMIM.all&nbsp;=&nbsp;0xFFFFffff;<br />&nbsp;&nbsp;&nbsp;&nbsp;ECanaRegs.CANMIL.all&nbsp;=&nbsp;0;<br />&nbsp;&nbsp;&nbsp;&nbsp;ECanaRegs.CANGIF0.all&nbsp;=&nbsp;0xFFFFFFFF;<br />&nbsp;&nbsp;&nbsp;&nbsp;ECanaRegs.CANGIM.bit.I0EN&nbsp;=&nbsp;1;<br />&nbsp;&nbsp;&nbsp;&nbsp;ECanaRegs.CANGIM.bit.I1EN&nbsp;=&nbsp;1;<br />&nbsp;&nbsp;&nbsp;&nbsp;ECanaRegs.CANGIM.all&nbsp;=&nbsp;0x3ff07;<br />&nbsp;&nbsp;&nbsp;&nbsp;EDIS;<br />&nbsp;&nbsp;&nbsp;&nbsp;PieCtrl.PIEIER9.bit.INTx6&nbsp;=&nbsp;1;<br />&nbsp;&nbsp;&nbsp;&nbsp;PieCtrl.PIEIER9.bit.INTx5&nbsp;=&nbsp;1;<br />&nbsp;&nbsp;&nbsp;&nbsp;#endif<br />}<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />我采用的是ecan模式,这是再ti的程序上的改写,只有初始化加进了接收屏蔽,其他地方没有变化。我设置发送邮箱的mid为ECanaMboxes.MBOX0.MID.all=0x11200000;<br />接收邮箱的mid为ECanaMboxes.MBOX16.MID.all=0x513C00000;<br />我想屏蔽掉can标识符的后三位,所以设置接收屏蔽寄存器为<br />ECanaLAMRegs.LAM16.all=0x801C0000;<br />可是接收到的数据与发送的数据不符,我设置接受屏蔽寄存器mid所有位都无关即<br />ECanaLAMRegs.LAM16.all=0xFFFFFFFF;<br />应该是把mid的所有位都屏蔽掉了,可是接收到的数据还是不对。不知道是为什么,这明显就是接受屏蔽寄存器失效,没有用处,大家有没有比较清楚的?急,先谢谢大家。<br /><br /><br />
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3

主题

6

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部