DSP的CAN通信中邮箱消息发送和接收

2025-04-19 18:02:18

1、消息发送 //往发送邮箱中写数据,分别写低32位4字节和高32位4字节 ECanaMboxes.MBOX0.M肛舀辨乔DL.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。
猜你喜欢