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:CAN 发送就绪标志

Guru**** 2468460 points
Other Parts Discussed in Thread: C2000WARE

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1230328/tms320f28377s-can-transmit-ready-flag

器件型号:TMS320F28377S
主题中讨论的其他器件:C2000WARE

嘿 C2000专家、

对于 UART 外设、有一个 TXRDY 位指示它可以在 TXRDY 置位时向 TXBUFF 写入值。

我的问题是、是否有任何标志或位可以指示传输已完成并已准备好将值写入缓冲器? 这是因为我要将 CAN 发送拉至反群组轮询任务。

请参阅下面的示例并帮助查找具有此功能的位。 谢谢...

if (寄存器位准备就绪)

can_sendMessage (CANA_BASE、TX_MSG_OBJ_ID、MSG_DATA_LENGTH、txMsgData);

}

此致、

插孔

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

    您可以轮询 TxRqst 位以确定传输是否成功完成:

    从 TRM:在一个成功传送后、如果自从开始传送以来没有新数据被写入到消息对象(NewDat ='0')、TxRqst 位将被复位

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

    您好、Hareesh。

    您能帮助我知道 包含 TxRqst 的确切寄存器吗? 我找到包含该位的多个寄存器。

    而对于  CAN_TXRQ_21中的 TxRqst、下方给出了相关说明。

    我已经尝试使用 CAN_ES_TXOK 位 、如下所示代码。在我的案例中、无法使用、如果使用这段代码、CAN 将无法传输。  

    //
    // CAN_ES 寄存器中的轮询 TxOk 位以检查传输完成
    //
    if ((((HWREGH (CANA_BASE + CAN_O_ES)和 CAN_ES_TXOK))= CAN_ES_TXOK)

       can_sendMessage (CANA_BASE、TX_MSG_OBJ_ID、MSG_DATA_LENGTH、txMsgData);
    }

    此致、

    插孔

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您能不能帮助我知道 包含 TxRqst 的确切寄存器? [/报价]

    CAN_TXRQ_21寄存器实际上就是那个寄存器。

    ,对于  CAN_TXRQ_21中的 TxRqst,下面是描述。

    当请求发送报文对象时、将此寄存器中相应的位置位。 一旦传输成功、这个位将被清零。 通过这种方式、您可以对其进行轮询、以确定传输已完成。

    我尝试过使用 CAN_ES_TXOK 位 如下代码。它不能在我的情况下使用,如果使用此代码,则无法传输。  [/报价]

    请参阅  C:\ti\c2000\C2000Ware_4_03_00_00\driverlib\f2837xd\examples\cpua\ccan 中的示例 can_ex4_simple_transfer.c、其中我使用了此位。 就表示工作正常。 唯一的问题是该位只能告诉你从某个邮箱传输成功。 它不能识别邮箱。 因此、您应该使用  CAN_TXRQ_21寄存器中的位。

    [/quote]