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/MSP430F5529:无法读取.csv文件

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

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/660319/ccs-msp430f5529-unable-to-read-a-csv-file

部件号:MSP430F5529

工具/软件:Code Composer Studio

大家好,

我想为我的算法读取.csv文件,但它在CCS7中不起作用。 我在IAR中尝试过的相同代码,它正在工作。 请告诉我如何使其在CCS中发挥作用。

#include <MSP430-h>

#include <stdio.h>
#include
<string.h>


int main()
{
file* stream = fopen("data.csv","r");
IF (STREAM ==空)
出口(1);
字符行[10];
IF((fgets (line, 10, stream))!=NULL)
{
char * tmp = strtok (line,",");
免费(tmp);
}
} 

此致,
Soumit

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

    我注意到的第一个细节是,您缺少禁用监视程序计时器的行-您应该有类似以下内容的内容:

    WDTCTL = WDTPW | WDTHOLD;//停止看门狗计时器

    应考虑的另一个详细信息是控制台I/O操作的堆和堆栈大小。 详情请参阅以下页面的2.3 和2.4 部分:

    processors.wiki.ti.com/.../Tips_for_using_printf

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

    您好Rafael:

    对不起,没有停止看门狗计时器,这是一个愚蠢的错误。 我已经将堆和堆栈内存更改为0x800,但仍然无法读取该文件。 它正在编译,没有错误,但流显示NULL并正在退出。

    包括<MSP430-h>
    
    #include <stdio.h>
    #include
    <string.h>
    
    
    int main()
    {
    
    WDTCTL = WDTPW | WDTHOLD; //停止监视计时器
    
    file* stream = fopen("data.csv","r");
    IF (STREAM ==空)
    出口(1);
    字符行[10];
    IF((fgets (line, 10, stream))!=NULL)
    {
    char * tmp = strtok (line,",");
    免费(tmp);
    }
    芙蕾(溪流);
    fclose(sream;
    } 

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

    Soumit,

    请对延误表示歉意。 您是否能够解决此问题?

    我发现我使用与您相同的功能阅读.csv文件的效果还不错。 我看到的唯一问题是意外调用了free (),这将使设备跳到LA LAND。

    使用我正在运行的程序检查下面的短卡夹。

    e2e.ti.com/.../2018_2D00_02_2D00_07_5F00_15h31_5F00_00.mp4

    也许您在做一些不同的事情?

    此致,

    拉斐尔

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

    您好Rafael:

    除了堆和堆栈大小(在链接器基本选项下)之外,您是否更改了其它任何内容?  很遗憾,我也是这样做的,但无法阅读。 它在'if'语句后退出。

    此致,

    Soumit

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    当我遇到这个问题时,是因为fopen在一个与我预期不同的目录中查找。 也许您可以从调用开始创建一个空的示例文件,这样您就可以验证它认为工作目录是什么。

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

    Soumit,

    仅为了验证,请检查附件中所附的我正在使用的项目。 这样您就可以比较其所有设置。

    劳埃德的想法也很好。 该文件的默认路径与.out可执行文件位于同一位置-在我的情况下,是项目下的“Debug”目录。 您始终可以尝试在 具有R/W访问权限的驱动器中设置临时目录的硬编码路径(不要忘记对路径分隔符使用双反斜杠)。

    希望这能有所帮助,

    拉斐尔

    e2e.ti.com/.../F5529_5F00_CIO_5F00_stream.rar

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    感谢拉斐尔和劳埃德帮助我!!
    也许它在调试目录中查找,data.csv文件在我的项目文件夹中。

    此致,
    Soumit