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.

[参考译文] SIMPLELINK-MSP432-SDK:MSP432E401Y Launchpad:Fatsd (无 RTOS)和 FatsDraw (无 RTOS)示例代码不起作用

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1189195/simplelink-msp432-sdk-msp432e401y-launchpad-fatsd-no-rtos-and-fatsdraw-no-rtos-example-code-not-working

器件型号:SIMPLELINK-MSP432-SDK
主题中讨论的其他器件:MSP432E401YSysConfig

您好!

我已经从 ResourceExplorer 导入了用于 MSP432E401Y 的 fatsd 和 fatsd ("无 RTOS")、并使用 SD 卡读取器进行了必要的 SPI 连接。

UART 上出现以下输出(用于 fatsd)

"

启动 fatsd 示例

此示例需要 SD 卡上的 FAT 文件系统。

如果 SD 卡未使用文件系统格式化、则会出现错误。

已安装驱动器0

正在创建新文件"fat:0:input.txt"……
错误:无法创建"fat:0:input.txt"。
如果需要其他跳线、请检查 Board.html。

正在中止...

"

下面是关于 FatsDraw 的内容

"

启动 FatSD Raw 示例

此示例需要 SD 卡上的 FAT 文件系统。

如果 SD 卡未使用文件系统格式化、则会出现错误。

已安装驱动器0

正在读取磁盘信息...
从 FatFs 对象获取可用群集计数时出错

"

我使用 PC 已使用 FAT 格式化 SD 卡。  

请 建议一些修正

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

    您好!

    [引用 userid="550266" URL"~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1189195/simplelink-msp432-sdk-msp432e401y-launchpad-fatsd-no-rtos-and-fatsdraw-no-rtos-example-code-not-working 文件]创建新文件"fat:0:input.txt"……
    错误:无法创建"fat:0:input.txt"。
    如果需要其他跳线、请检查 Board.html。[/quot]

    我不是这个特定示例的专家。 由于某种原因、错误似乎表明无法在目标 SD 卡上创建 input.txt。 您能否进行完整性检查并查看 SPI 接口是否有任何信号切换(例如 SPICLK、MISO、MOSI、CS)? 创建该示例是为了与  BOOSTXL-SHARP128 LCD 和 SD 卡 BoosterPack 配合使用。 该示例旨在使用 LaunchPad 上的 BoosterPack 1连接器。   我建议您浏览此 BoosterPack 用户指南、并确保 LaunchPad 和本示例所针对的 BoosterPack 之间的硬件连接相同。 并不是您必须拥有 BoosterPack、但如果您拥有一个只需插入 LaunchPad 并按原样运行示例的 BoosterPack、那将是很好的选择。  

    法特 sd

    示例摘要

    使用 FAT 文件系统在 SD 卡上读取和写入数据的示例。

    外设和引脚分配

    构建此项目后、SysConfig 工具将在  ti_drivers_config.c   ti_drivers_config.h  文件中生成 TI 驱动程序配置。 两个生成的文件中都存在有关使用的引脚和资源的信息。 此外,可以使用 SysConfig 的图形用户界面打开项目中的系统配置文件(*.syscfg),以确定使用的引脚和资源。

    • CONFIG_GPIO_LED_0 -表示驱动程序已在中初始化  mainThread()
    • CONFIG_SDFatFS_0 -连接至 SD 卡

    BoosterPack、电路板资源和跳线设置

    此示例需要  BOOSTXL-SHARP128 LCD 和 SD 卡 BoosterPack

    有关特定于电路板的跳线设置、资源和 BoosterPack 修改、请参阅  Board.html  文件。

    如果您使用的是 Code Composer Studio (CCS)或 IAR 等 IDE,请参阅项目目录中的 Board.html,以获取所使用的资源和特定于电路板的跳线设置。

    也可以在您的 SDK 安装中找到 Board.html:

        <SDK_INSTALL_DIR>/source/ti/boards/<BOARD>

    示例用法

    • 示例输出是通过使用 Display 驱动程序 API 生成的。 请参阅 SimpleLink MCU SDK 用户指南中的 Display 驱动程序文档。

    • 打开串行会话
      •  PuTTY(例如、等)连接到相应的 COM 端口。
      • COM 端口可通过 Windows 中的设备管理器或 ls /dev/tty*  Linux 中的设备管理器确定。

    连接将具有以下设置:

        Baud-rate:     115200
        Data bits:          8
        Stop bits:          1
        Parity:          None
        Flow Control:    None
    • 运行示例。  CONFIG_GPIO_LED_0 以指示驱动程序初始化完成。

    • 该示例继续读取 SD 卡。 如果  未找到 input.txt 文件、则在 SD 卡上创建文件、并包含以下文本:

        "***********************************************************************\n"
        "0         1         2         3         4         5         6         7\n"
        "01234567890123456789012345678901234567890123456789012345678901234567890\n"
        "This is some text to be inserted into the inputfile if there isn't     \n"
        "already an existing file located on the SDCard.                        \n"
        "If an inputfile already exists, or if the file was already once        \n"
        "generated, then the inputfile will NOT be modified.                    \n"
        "***********************************************************************\n"
    •   然后读取 input.txt 文件,并将其内容写入名为  output.txt 的新文件中。 如果该文件已存在于 SD 卡上、则将覆盖该文件。

    •   然后将 output.txt 文件的内容写入控制台。

    应用设计详细信息

    • 包含和预构建 FatFs 源代码、同时支持 SYS/BIOS 或 FreeRTOS 同步。 还包括 TI 编译器 C 运行时支持(RTS)库的“器件 I/O”模型的实现。 这为使用 C stdio.h 库函数(fopen fread fwrite等…)提供了透明支持 而不是 FatFs (,)提供的原始、特定于项目的 API 函数f_open f_write

    • 此应用演示了如何使用 SD 卡驱动程序通过上述标准 CIO 运行时系统调用将数据读取并写入 SD 卡。

    • 在应用程序中 fatfsPrefix ,该参数用作 C RTS fopen()函数的命名空间“前缀”。 有关更多详细信息,请参阅《TI C 编译器用户指南》(如 spru187)。 调用 fopen()时,必须提供此前缀作为文件名的一部分。 例如,如果默认值为“fat”,应用程序将使用:

        FILE * fp = fopen("fat:/signal.dat", "w");

    其他特性:

    • 用户还可以选择使用 CIO 运行时系统调用或原始 FatFS API 写入 RAM 磁盘。 有关详细信息,请参阅 FatFS 文档。

    此应用程序使用一个线程:

     mainThread 执行以下操作:

    1. 创建并初始化 SDFatFS 驱动程序对象。

    2. 打开  input.txt  文件。 如果未找到、请创建用于读取和写入的文件。 将默认消息写入文件。

    3. 打开  output.txt  文件。 内容将被覆盖(如果找到)。

    4.   input.txt 的内容复制   output.txt。 然后关闭这两个文件。

    5. 打开  output.txt、读取文件并使用 Display 驱动程序打印内容。

    6.   关闭 output.txt 文件和 SDFatFS 驱动程序、并终止示例。

    TI-RTOS:

    •  timespec 必须使用当前 UNIX 秒数初始化该结构、才能编写具有精确时间戳的文件。 这是 time() 因为使用了 BIOS 秒模块而不是 RTS 库函数。

    • 在 Code Composer Studio 中构建时、内核配置项目将与示例一同导入。 此示例引用了内核配置工程、因此将首先编译该工程。 “发行版”内核配置是使用的默认项目。 它禁用了许多调试功能。 这些功能包括断言检查、日志记录和运行时堆栈检查。 有关“发行版”和“调试”内核配置与如何在它们之间切换的详细区别,请参阅 SimpleLink MCU SDK 用户指南。 可以在下找到“release”和“debug”内核配置项目 /kernel/tirtos/builds /(release|debug)/(ccs|gcc)。

    FreeRTOS:

    •  time()  localtime() 使用和的编译器特定 RTS 库函数。 无需初始化 timespec 结构。

    • 有关 FreeRTOSConfig.h 示例配置信息、请查看头文件。

    参考文献

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

    SD 卡读取器也有一些输出(上面的 MISO)。 因此、连接应该基本上是正确的。

    我 没有在该示例中使用 BoosterPack。 有必要吗? 不应仅使用具有 SD 卡读取器的 SPI 即可工作?

    如果没有 BoosterPack、我应该修改哪些内容才能使其正常工作?

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

    您好!

     不是这个主题的专家、而是阅读下面的源代码、看起来它无法打开文件进行读取和写入。 是否可以先使用文件系统手动创建 input.txt 文件? 如果文件已存在、它是否能够读取该文件? SD 卡是否受保护? 通常情况下、SD 卡的侧面有一个滑块、您可以向上或向下切换以实现写保护。  

    /*尝试打开源文件*/
    src = fopen (inputfile、"r");
    如果(!src){
    Display_printf (display、0、0、"创建新文件\"%s\..."、
    InputFile);

    /*打开文件进行读取和写入*/
    src = fopen (inputfile、"w+");
    如果(!src){
    Display_printf (display、0、0、
    无法创建“错误:\%s\”。\n 请检查“
    "如果需要其他跳线、请访问 Board.html。\n"、
    InputFile);
    Display_printf (display、0、0、"Aborting...\n"\});
    while (1);