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.

[参考译文] CC2640R2F:如何在 SD 卡 txt 文件中写入数据。cc2640R2没有 fatsd 示例

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

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/1409867/cc2640r2f-how-to-write-data-on-sd-card-txt-file-there-are-not-fatsd-example-for-cc2640r2

器件型号:CC2640R2F

工具与软件:

我需要使用 cc2640R2示例在 SDS 卡 txt 文件中写入数据值、但对于 cc2640R2、没有像 fatsd in (cc2652)这样的任何示例。 是否有此问题的示例文件?

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

    Tharusha、您好!

    您或许可以使用支持 SPI 的 SD 卡吗? 如果是、我们可以使用 SPI 示例写入器件。

    谢谢!
    Alex F

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

    是的,在这里我使用了基于 SPI 的 sdcard 安装模块,这通常是在 Arduino 中使用。

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

    #include
    #include
    #include
    #include
    #include
    #include
    #include

    /*驱动程序*/
    #include
    #include
    #include

    /*示例/电路板头文件*/
    #include "board.h"

    /*用于文件复制过程的缓冲区大小*/
    1024

    /*写入/读取的起始扇区*/
    #define STARTINGSECTOR 0

    第1024节

    /*
    *将此常数设置为1以写入 SD 卡。
    *警告:在 WRITEENABLE 设置为1的情况下运行此示例将导致错误
    * SD 卡上存在的任何文件系统都已损坏!
    */
    #define WRITEENABLE 0


    unsigned char textarray[BUFFSIZE];

    unsigned char cpy_buff[BUFFSIZE];


    char fatfsPrefix []="fat";
    char text[20]="This is Sample write example";

    SDFatFS_Object sdfatfsObject[1];

    const SDFatFS_Config SDFatFS_CONFIG[1]={

    .object =&sdfatfsObjects[0]
    }
    };

    const uint_least8_t SDFatFS_COUNT = 1;
    /*
    *==== mainThread ====
    *从 SD 卡执行原始写入和读取的任务。
    *注意:运行此应用程序将导致上的任何文件系统
    * SD 卡损坏!
    *
    *
    */

    #define STR_(n)#n
    #define STR (n) STR_(n)

    #define DRIVE_NUM 0

    const char inputfile[]="fat:" STR (DRIVE_NUM)":input.txt";
    const char outputfile[]="fat:" STR (DRIVE_NUM)":output.txt";

    void * mainThread (void * arg0)


    SDFatFS_Handle sdfatfsHandle;
    文件* src;

    GPIO_init ();
    SDFatFS_init();

    /*配置 LED 引脚*/
    GPIO_setConfig (BOARD_GPIO_LED0、GPIO_CFG_OUT_STD | GPIO_CFG_OUT_LOW);

    /*打开输出显示*/

    /*打开用户 LED */
    GPIO_WRITE (Board_GPIO_LED0、Board_GPIO_LED_ON);


    sdfatfsHandle = SDFatFS_open (0、DRIVE_NUM);
    if (sdfatfsHandle != NULL){
    //尝试打开源文件4次
    uint8_t TIMEOUT = 0;
    src = fopen (outputfile、"a");
    while (!src &&(TIMEOUT < 3)){
    超时++;
    src = fopen (outputfile、"a");
    fwrite (text、20、strlen (str)、src);
    //}
    fflush (src);
    fclose (src);
    GPIO_TOGGLE (BOARD_GPIO_LED0);
    }
    }
    //释放 SPI0!
    SDFatFS_Close (sdfatfsHandle);
    }

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

    Tharusha、您好!

    cc2640r2f 器件不支持 fatsd cc2652示例、通过"SPI 示例"、我是指 CC2640r2器件驱动程序中的 SPI 示例。  

    由于此处没有1-1示例、您需要使用 SPI 驱动程序复制 fatSD 的函数(或尝试迁移驱动程序)。  

    谢谢!
    Alex F

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

    谢谢 Alex。 您的意思是她"或尝试迁移驱动程序"?

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

    Tharusha、您好!

    当我说"尝试迁移驱动程序"时、您首先必须了解 CC2652和 CC2640r2f (SPI)之间的差异、然后需要在 CC2640r2f 中获取/重新创建 fatSD 驱动程序;这就是我所说的"迁移"、尽管步骤更贴近"重新创建"驱动程序。  

    谢谢!
    Alex F

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

    谢谢你