DSP的CAN通信中邮箱消息发送和接收
1、消息发送
//往发送邮箱中写数据,分别写低32位4字节和高32位4字节
ECanaMboxes.MBOX0.MDL.all = MDL;
ECanaMboxes.MBOX0.MDH.all = MDH;
//置位准备发送,将发送请求位置位,使能邮箱发送功能
ECanaShadow.CANTRS.all = 0;
ECanaShadow.CANTRS.bit.TRS0 = 1;
ECanaRegs.CANTRS.all = ECanaShadow.CANTRS.all;
do
{
ECanaShadow.CANTA.all = ECanaRegs.CANTA.all;
} while(ECanaShadow.CANTA.bit.TA0 == 0 ); //当邮箱的消息被成功发送时,发送应答位TA将置1
ECanaShadow.CANTA.bit.TA0 == 1; //写1清零,准备判别下一次发送与否
2、消息的接收
struct ECAN_REGS ECanaShadow;
ECanaShadow.CANRMP.all = ECanaRegs.CANRMP.all;
do{}
while(ECanaShadow.CANRMP.bit.RMP1 != 1 );//当接收消息成功时,接收待决位RMP0置位为1
ECanaShadow.CANRMP.bit.RMP1 = 1;//接收消息待决位通过写1清零
ECanaRegs.CANRMP.all=ECanaShadow.CANRMP.all;
声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
阅读量:181
阅读量:119
阅读量:75
阅读量:62
阅读量:66