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.

[参考译文] TM4C123GH6PGE:Micro SD 卡写入问题

Guru**** 2484615 points
Other Parts Discussed in Thread: TM4C123GH6PGE

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/732479/tm4c123gh6pge-micro-sd-card-writing-problem

器件型号:TM4C123GH6PGE

大家好、

     感谢我在之前的帖子中提出的建议。

我正在努力将 SD 卡连接到 tm4c123gh6pge 微控制器以进行数据记录。 在这种情况下、首次执行文件创建、写入、同步 过程运行良好。 但在我的应用中、控制器在4小时后重新启动、而不关闭电源。 因此、在这些情况下、代码执行从第一步开始、此处的 SD 卡安装、写入不起作用、会导致控制器重新启动问题。

我想根据您的建议解决此问题、请找到以下代码。

void sd_init (void)

SysCtlDelay (SysCtlClockGet ()/12);

操作

iFResult = f_mount (0、&fatfs);

}while (iFResult!= FR_OK);


SysCtlDelay (SysCtlClockGet ()/12);

sd_check=0;

操作

sd_check++;
if (sd_check>8)

返回;

iFResult = f_open (&g_sFileObject、filename、fa_write|fa_open_always| fa_read);

}while (iFResult!= FR_OK);

SysCtlDelay (SysCtlClockGet ()/12);

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

SysCtlDelay (SysCtlClockGet ()/12);

iFResult = f_write (&g_sFileObject、new_line、sizeof (new_line)、&bw);

SysCtlDelay (SysCtlClockGet ()/12);


iFResult = f_write (&g_sFileObject、new_line、sizeof (new_line)、&bw);

SysCtlDelay (SysCtlClockGet ()/12);

iFResult = f_write (&g_sFileObject、buf1、sizeof (buf1)、&bw);

SysCtlDelay (SysCtlClockGet ()/12);

iFResult = f_write (&g_sFileObject、new_line、sizeof (new_line)、&bw);

SysCtlDelay (SysCtlClockGet ()/12);

iFResult = f_sync (&g_sFileObject);

//

void sd_writing (void)(空)


if (sd_check>8)

返回;

SysCtlDelay (SysCtlClockGet ()/12);

strcat ((char*) buf_Rz+24、buffer2);

SysCtlDelay (SysCtlClockGet ()/12);

iFResult = f_write (&g_sFileObject、new_line、sizeof (new_line)、&bw);

SysCtlDelay (SysCtlClockGet ()/3);
SysCtlDelay (SysCtlClockGet ()/ 6);


iFResult = f_write (&g_sFileObject、buf_Rz、sizeof (buf_Rz)、&bw);

SysCtlDelay (SysCtlClockGet ()/12);

iFResult = f_sync (&g_sFileObject);

SysCtlDelay (SysCtlClockGet ()/12);

在 我将数据连接到 buf_Rz 并写入 SD 卡之后、我将数据存储在 buf_Rz 中、并将时间和日期存储在 buf_Rz 中。

我请求您找到上述代码、并向我提供如何解决问题的建议。

谢谢、

此致、

Srinu。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    FatFs 是 TivaWare 中为方便客户而提供的第三方(不是 TI 提供的)软件。 TI 不直接支持该功能。 有关 FatFs 的更多信息、请访问 :elm-chan.org/.../00index_e.html
    重新启动系统时、需要确定哪个 FatFs 函数发生故障以及故障代码是什么。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    主席先生,感谢你提出宝贵的建议。

    我在这里找到了它
    iFResult = f_sync (&g_sFileObject);
    sd_init()和 sd_write()中的函数导致问题,并且无法执行下一步。

    主席先生,我请你向我提出建议。

    谢谢、
    此致、
    Srinu.v.