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.

[参考译文] CCS/TMS320F28069F:USB_DEV_BULK 示例上的问题、如何仅在器件从主机收到请求后才能将数据发送到 Txbuffer

Guru**** 2562120 points


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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/638753/ccs-tms320f28069f-question-on-usb_dev_bulk-example-how-can-i-tx-data-to-txbuffer-only-after-device-gets-request-from-host

器件型号:TMS320F28069F

工具/软件:Code Composer Studio

看起来像 USB_DEV_BULK 示例通过调用 EchoNewDataToHost()将数据放入 TxBuffer 中。

如果我理解正确、我能不能用其他方式来实现它、也就是说、器件仅在主机请求时将数据放入 TxBuffer 中?
是否有类似这样的相关事件可以放入 TxHandler 中?

uint32_t
TxHandler (void *pvCBData、uint32_t ulEvent、uint32_t ulMsgValue、
void *pvMsgData)

//
//在本例中,不需要任何响应任何发送事件的操作。
//所做的就是更新发送计数器。
//
if (ulEvent = USB_EVENT_TX_COMPLETE)

G_ulTxCount += ulMsgValue;

返回(0);

uint32_t
TxHandler (void *pvCBData、uint32_t ulEvent、uint32_t ulMsgValue、
void *pvMsgData)
{
switch (ulEvent)
//
//在本例中,不需要任何响应任何发送事件的操作。
//所做的就是更新发送计数器。
//
案例 USB_EVENT_TX_COMPLETE:
{
G_ulTxCount += ulMsgValue;
中断;
}
//

案例 USB_EVENT_TX_REQUEST:
{
usbdatatx();
中断;
} 

返回(0);
} 

提前感谢

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

    感谢您的提问。 您的主题帖已分配给 C2000专家、应尽快回复。

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


    我认为这是可能的。 当主机发送数据包请求数据时、USB 控制器应收到中断信号。

    您将需要相应地修改 USB 示例。 我认为您不需要修改 USB 库、只需要修改处理程序和应用程序代码。

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

    虽然不确定、但在我阅读 F2806x USB 库用户指南以及下面的线程之后、我感觉器件中没有为批量生成中断
    e2e.ti.com/.../2273294
    因此、在我的情况下(我正在开发一个传感器、持续生成数据)、它开始写入 USBbuffer 并在主机请求之前传输到 TX FIFO (64字节)。 这会导致在下一个主机请求时首先传输64字节 FIFO 数据。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Wang、

    这听起来是正确的。 您发现的这篇文章非常有用。 感谢您在论坛中搜索答案。

    该示例中的方法看起来是唯一的实现方法。 您需要写入 USB 缓冲器、然后该缓冲器将被写入 FIFO。 然后、一旦接收到 IN 数据包、器件将通过发送数据包进行响应。 然后、您应该会收到一个 TX 中断。

    此致、

    SAL