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

 时间:2026-02-15 01:04:34

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;

  • GX developer如何绘制plc自锁
  • 编写单片机应用程序的步骤
  • keil5中使用C51
  • 如何在AD中放置双刀单掷继电器?
  • Keil5打开工程提示not found device解决方法
  • 热门搜索
    白菜豆腐汤的做法 仉怎么读 青菜豆腐的做法 辣子鸡做法 桎梏怎么读 电脑怎么连接wifi 四川泡菜的做法 血鸭的做法 晁怎么读 子宫息肉是怎么回事