This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] TMS320F28377S:可接收邮箱新数据指示

Guru**** 2445440 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/971505/tms320f28377s-can-receive-mailbox-new-data-indication

器件型号:TMS320F28377S

尊敬的团队:

我已按如下方式配置新数据21寄存器

if ((CANaRegs.CAN_NDAT_21 = 1))


CANMessageGet (CANA_base、RX7B4_MSG_OBJ_ID、&sRX7B4CANMessage、true);}

CANARegs.CAN_IF1MCTL.bit.NewDat = 0x0000;
CANARegs.CAN_IF2MCTL.bit.NewDat = 0x0000;
CANARegs.CAN_NDAT_21 = 0x00000000;

但是、一旦 CAN_NDAT_21为1、它就不会在成功接收后复位。

是否有人可以指导正确的配置方法。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    CAN_NDAT_21寄存器是一个只读寄存器。 您无法直接对其进行写入。 以下来自 TRM:

    通常情况下、CPU 将0x7F 写入位[23:16]、然后将报文对象的编号写入命令寄存器的位[7:0]。 这个组合将把整个接收到的消息从消息 RAM 传输到接口寄存器组中。 此外、消息 RAM 中的 NewDat 和 IntPnd 位被清零(不在接口寄存器集中)。 报文控制寄存器中这些位的值总是反映复位前的状态。  

    当 DIRECTION = READ 时、TXRQST 的值为1将清零 NewDat 位。 请参阅 CAN_IF1CMD 寄存器中 TXRQST 位(位18)的说明。