希望大家帮我看这个ECAN的代码,看哪里错了
<br />if (ECanaRegs.CANTRS.bit .TRS4==1) <br /> {//当TRS=1时,清0 TRS?<br /> ECanaRegs.CANTRR.bit.TRR4=1;<br /> }<br /> ECana32Temp.CANME.all = ECanaRegs.CANME.all; <br /> ECana32Temp.CANME.all &= 0xFFFFFFEF;//禁用邮箱4,此时可以配置邮箱<br /> ECanaRegs.CANME.all = ECana32Temp.CANME.all;<br /> <br /> <br /> ECanaMboxes.MBOX4.MSGID.all=0xC60F8003;//发送指定的目标是F0<br /> ECanaMboxes.MBOX4.MSGCTRL.all = 0x00000008;//数据长度8<br /> <br /> ECanaRegs.CANMD.all &= 0xFFFFFFEF; //邮箱4用来发送<br /> <br /> ECana32Temp.CANME.all = ECanaRegs.CANME.all; <br /> ECana32Temp.CANME.all |= 0x00000010;//启用邮箱4<br /> ECanaRegs.CANME.all = ECana32Temp.CANME.all;<br /> <br /> ECanaMboxes.MBOX4.MDL.word.HI_WORD=0x0001;<br /> ECanaMboxes.MBOX4.MDL.word.LOW_WORD =0x0001; <br /> ECanaMboxes.MBOX4.MDH.word.LOW_WORD =0x0001; <br /> ECanaMboxes.MBOX4.MDH.word.HI_WORD =0x0001;<br /> <br /> ECanaRegs.CANTRS.bit.TRS4 =1;<br /> <br /> if (ECanaRegs.CANTA.bit .TA4==1) <br /> {//Mailbox 4 Mdl send to Controller, waiting for response data<br /> // send data in box 4 success, Reset TA4 <br /> ECanaRegs.CANTA.all = 0x00000010;<br /> }<br />我的目的就是要让邮箱4发送一条消息,问问大家,发送消息成功的标志是什么?是不是发送成功(但消息没有被接收)TA4就置1<br />还有我的接收部分的代码是<br />ECana32Temp.CANME.all = ECanaRegs.CANME.all; <br /> ECana32Temp.CANME.all &= 0xFFFFFFFE;//禁用邮箱0,此时可以配置邮箱<br /> ECanaRegs.CANME.all = ECana32Temp.CANME.all;<br /> <br /> ECanaMboxes.MBOX0.MSGID.all=0xC60F8003;//ID<br /> ECanaLAMRegs.LAM0.all=0x800807FC; //11-18位是目的地址,必须一一对应<br /> ECanaRegs.CANMD.all |= 0x0001; //邮箱0用来接收<br /> <br /> ECana32Temp.CANME.all = ECanaRegs.CANME.all; <br /> ECana32Temp.CANME.all |= 0x00000001;//使能邮箱0<br /> ECanaRegs.CANME.all = ECana32Temp.CANME.all;<br /> <br /> if(ECanaRegs.CANRMP.bit .RMP0==1)<br /> {<br /> ECanaRegs.CANRMP.bit .RMP0=0;<br /> } <br />也帮我看看对不
页:
[1]