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.

[参考译文] EK-TM4C1294XL:使用 TM4C129X 将数据写入 USB 记忆棒/触控笔驱动器

Guru**** 1794070 points
Other Parts Discussed in Thread: EK-TM4C1294XL, EK-TM4C123GXL
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/571281/ek-tm4c1294xl-writing-data-to-usb-stick-pen-drive-using-tm4c129x

器件型号:EK-TM4C1294XL
主题中讨论的其他器件: EK-TM4C123GXLDK-TM4C123G

大家好、


我正在使用 EK-tm4c1294xl Launchpad。 我想将 ADC 数据存储到画笔驱动器中。 最初我使用 SD 卡(也实施了 SD 卡)、但我认为在画笔驱动器中存储数据比 SD 卡更容易。

我的第一个问题同样是在 SD 卡中,我必须在 MMC-EK-tm4c129xl.c 文件中指定 SPI 引脚和连接,但在 USB 中,我猜引脚和通信模式是 UART。 那么、我是否必须为 VBUS、D+、D-、GND 定义引脚?

其次、是否有任何用于将数据写入 USB 的参考代码。

我浏览了 USB_HOST_MSC.c 文件、但它用于读取数据。我已经尝试了 USB_DEV_BULK 示例并成功实现了该示例。

请引导我从何处开始。

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

    您能解释一下定义 USB 引脚意味着什么吗?

    读取和写入需要 API。 示例 USB_host_msc 执行文件访问的一个方面、您可以使用相同的方法来添加对代码的写入。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Amit、您好!

    我的意思是说、对于 SD 卡、我必须定义 SSI 连接的引脚。
    launchpad 中的 USB 端口通过 UART 进行连接(这正是我的理解所说的)。 我在 EKTMC123G launchpad 中看到、USB0连接到 PB0、PB1。 在 EK-TM4C1294XL launchpad (我正在使用它)中、找不到连接到 USB 端口的默认引脚。

    很抱歉询问此问题,因为我第一次尝试学习 USB。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Amit、您好!

    在详细阐述我之前的帖子时,我的意思是要将数据写入 SD 卡中,有 MMC-EK-tm4c1294xl.c 文件,其中定义了 SPI 连接,并且 power_on()& send_inition_clock_train ()函数可用于配置 SPI 连接并使用 f_write()函数开始传输数据。

    但是、USB 没有此类文件。 如何为 USB 配置数据发送和接收引脚? 或者、Launchpad 中是否有用于相同功能的默认连接?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好 Sumit

    USB 数据引脚未连接到 EK-TM4C123GXL 上的 PB0和 PB1。 PB0和 PB1是 VBUS 和 ID 引脚。 要了解 EK-TM4C1294XL 上用于 USB 的引脚、请参阅器件型号的数据表
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Amit、您好!

    感谢您的建议。 我尝试实施 USB_host_MSC.C 文件、成功检测到笔驱动器并查看串行终端上的文件。
    我还尝试使用 f_write 函数、方法与 f_read 相同、但无法创建新文件并将数据写入其中。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Sumit、

    虽然器件不同、但示例中的功能用法应保持不变

    D:\ti\TivaWare_C_Series-2.1.3.156\examples\boards\dk-tm4c123g\qs-logger

    文件名:USBSTICK。c

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

    Amit、您好!

    宾果游戏!!! 最后、我能够在 USB 记忆棒中写入数据。 非常感谢您的帮助

    但是、也会写入一些垃圾值。 我尝试使用 f_lseek()函数,但仍然存在垃圾值。 下面是代码行、随附的是用于编写数据的 Excel 工作表。

    while (1)

      {

    uint32_t a=0;

      if (g_Estate = State_device_ready)

          {

            fresult = f_open (&g_sFileObject、"test47.csv"、fa_write|fa_open_always);

              if (fresult!= FR_OK)

              {

          

              }

              char fileHeaders[]="sensor1、sensor2、sensor3、sensor4\r\n";

              fresult = f_write (&g_sFileObject、fileHeaders、sizeof (fileHeaders)、&ui32BytesWrite);

    fresult = f_lseek (&g_sFileObject、f_size (&g_sFileObject));

              字符 valueStr[150];

              for (a=100;a<=249;a++)

              {

              usprintf (valueStr、"%d、%d、%d、%d\r\n"、a、a、a、a、a、a);

              

              fresult = f_write (&G) sFileObject、valueStr、sizeof (valueStr)、(UINT *)&ui32BytesWrite);

              }

              fresult= f_close (&g_sFileObject);

          }

    e2e.ti.com/.../0654.TEST42.rar

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

    请检查 SPMA076 (Oprus 音频编解码器)的示例代码。 它显示了如何使用 f_lseek
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Amit、您好!

    我查看了 opus_enc_dec 文件。 内部
    int Cmd_decode (int argc、char * argv[])函数 f_lseek ()的唯一位置,如下所述

    //
    //返回到文件顶部以更新文件大小
    //
    f_lseek (&g_sFileWriteObject、0);
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好 Sumit

    问题是什么? 您可以查看 elm-chan.org/.../00index_e.html 上 FatFS 提供的示例
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Amit、您好!

    我研究了如何使用 f_lseek()函数,并将其应用于我的代码中。 我能够在文件中附加新数据,移到文件顶部,添加编号 字节数。

    但是、我仍然无法删除垃圾数据。 是否存在显示不需要的数据的其他原因。

    您是否可以在结尾处尝试相同的代码 IAM 无法对其进行调试。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Sumit、

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

    Amit、您好!

    请参阅随附的 Excel 文件。 "sensor1"的第一行包含垃圾数据。

    e2e.ti.com/.../4118.0654.TEST42.rar

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

    调试程序时、包含 sensor1数据的变量显示什么?