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/LP-CC2652RB:时间戳文件和每次数据登录时使用不同字符串自动命名 txt 文件。

Guru**** 2952510 points

Other Parts Discussed in Thread: CC2652RB

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

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/954611/ccs-lp-cc2652rb-timestamp-file-and-auto-naming-of-the-txt-file-with-a-different-string-each-time-the-data-is-logged-on

器件型号:LP-CC2652RB
主题中讨论的其他器件:CC2652RB

工具/软件:Code Composer Studio

大家好、我要将传感器数据记录到 TI CC2652 LP 所连接的 SD 卡中。 我将数据存储到一个 txt 文件中。 我想使用 ti cc2652rb launchpad 对文件进行时间戳记。 当前文件已有时间戳、但未获得当前日期。 它是2016年的上一个日期。 如何修改代码以获取当前日期。 我使用以下代码。 我还希望文件不会被覆盖我希望在每次开始记录数据时创建多个文件。

/*
=== fatfs_getFatTime ===
*/
int32_t fatfs_getFatTime (void)
{
time_t 秒;
uint32_t fatTime;
struct tm *pTime;

/*
* TI TIME()返回1900年以来经过的秒数,而其他工具则返回
*从1970年起返回秒数。 但是、TI 和 GNU localtime()
*将 TM TM_year 设置为1900年以来的年数。
*
秒=时间(空);

pTime = localtime (&seconds);

/*
* localtime()将 pTime->TM_year 设置为年数
*自1900年起、因此从 TM_year 中减去80即可获得 FAT 时间
*自1980年起的偏移量。
*
fatTime =((uint32_t)(pTime->TM_year - 80)<< 25)|
((uint32_t)(pTime->TM_mon)<< 21)|
((uint32_t)(pTime->tm_mday)<< 16)|
((uint32_t)(pTime->tm_hour)<< 11)|
((uint32_t)(pTime->TM_min)<< 5)|
((uint32_t)(pTime->TM_sec)>> 1);

返回((int32_t) fatTime);
} 

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

    time 和 localtime 函数按 ANSI 标准指定的方式工作。  该标准不定义 epoch。  但是、struct tm 的 TM_year 字段确实定义为1900年以来的年数。  有关更多详细信息、请参阅 此论坛帖子。   

    我不熟悉 FAT 时间、因此我无法评论您的示例代码的这一部分。

    谢谢、此致、

    乔治