大家好、
感谢我在之前的帖子中提出的建议。
我正在努力将 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。