如题 想保存数据在一个以RCT时钟命名的文件中,正常移植SD卡和FATFS文件系统后,简单的读写都没问题,但是把文件名一改为RCT的长文件名就出错,求大神指教
下面是部分代码
:
fr = f_mount(&fs, "", 0);
if(fr == FR_OK)
{
LCD_ShowString(0, 15, 240, 12, 12, "SD card mount ok!");
//printf("SD card mount ok!\r\n");
}
else
{
LCD_ShowString(0, 15, 240, 12, 12, "SD card mount error");
//printf("SD card mount error, error code:%d.\r\n",fr);
}
HAL_RTC_GetTime(&hrtc,&RTC_TimeStruct,RTC_FORMAT_BIN);
HAL_RTC_GetDate(&hrtc,&RTC_DateStruct,RTC_FORMAT_BIN);
sprintf((char*)tbuf," 20%02d-%02d-%02d %02d%02d%02d.txt",RTC_DateStruct.Year,RTC_DateStruct.Month,RTC_DateStruct.Date,RTC_TimeStruct.Hours,RTC_TimeStruct.Minutes,RTC_TimeStruct.Seconds);
/* 打开文件(若文件不存在则创建) */
fr = f_open(&fd, (char*)tbuf, FA_CREATE_ALWAYS | FA_WRITE);
if(fr == FR_OK)
{
//sprintf((char*)txt1,"open file \"%s\" ok! \r\n", filename);
LCD_ShowString(0, 30, 240, 12, 12, "open file ok! ");
//printf("open file \"%s\" ok! \r\n", filename);
}
else
{
LCD_ShowString(0, 30, 240, 12, 12, "open file error ");
//printf("open file \"%s\" error : %d\r\n", filename, fr);
}
/* 向打开的文件中写入内容 */
fr = f_write(&fd, write_dat, sizeof(write_dat), (void *)&write_num);
if(fr == FR_OK)
{
LCD_ShowString(0, 45, 240, 12, 12, "write file ok! ");
//printf("write %d dat to file \"%s\" ok,dat is \"%s\".\r\n", write_num, filename, write_dat);
}
else
{
LCD_ShowString(0, 45, 240, 12, 12, "write file error! ");
//printf("write dat to file \"%s\" error,error code is:%d\r\n", filename, fr);
}
/* 操作完成,关闭文件 */
fr = f_close(&fd);
|