OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 4406|回复: 5

关于SD卡创建RCT时钟的文件名

[复制链接]

6

主题

35

帖子

0

精华

初级会员

Rank: 2

积分
173
金钱
173
注册时间
2020-6-7
在线时间
67 小时
发表于 2020-12-18 11:01:36 | 显示全部楼层 |阅读模式
5金钱
如题 想保存数据在一个以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);

最佳答案

查看完整内容[请看2#楼]

最大支持文件长度 255个字节长度,自己可以在 ffconf.h头文件修改 : #define _USE_LFN 0 /* 0 to 3 */ #define _MAX_LFN 255 /* Maximum LFN length to handle (12 to 255) */ /* The _USE_LFN switches the support of long file name (LFN).
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

53

主题

567

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2099
金钱
2099
注册时间
2017-2-11
在线时间
306 小时
发表于 2020-12-18 11:01:37 | 显示全部楼层
截图20201218133045438.jpg

最大支持文件长度  255个字节长度,自己可以在   ffconf.h头文件修改 :
#define _USE_LFN     0    /* 0 to 3 */
#define _MAX_LFN     255  /* Maximum LFN length to handle (12 to 255) */
/* The _USE_LFN switches the support of long file name (LFN).

回复

使用道具 举报

6

主题

35

帖子

0

精华

初级会员

Rank: 2

积分
173
金钱
173
注册时间
2020-6-7
在线时间
67 小时
 楼主| 发表于 2020-12-22 10:44:41 | 显示全部楼层
jiangyy 发表于 2020-12-18 13:33
最大支持文件长度  255个字节长度,自己可以在   ffconf.h头文件修改 :
#define _USE_LFN     0     ...

设置这没问题 我就不知道为什么我一用f_write 就卡住 要不然就提示FR_INVALID_DRIVE, /* (11) The logical drive number is invalid */
回复

使用道具 举报

6

主题

35

帖子

0

精华

初级会员

Rank: 2

积分
173
金钱
173
注册时间
2020-6-7
在线时间
67 小时
 楼主| 发表于 2020-12-22 10:46:50 | 显示全部楼层
li547330575 发表于 2020-12-22 10:44
设置这没问题 我就不知道为什么我一用f_write 就卡住 要不然就提示FR_INVALID_DRIVE, /* (11) The logica ...

是f_open  一用就卡住
回复

使用道具 举报

53

主题

567

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2099
金钱
2099
注册时间
2017-2-11
在线时间
306 小时
发表于 2020-12-22 13:45:07 | 显示全部楼层
li547330575 发表于 2020-12-22 10:46
是f_open  一用就卡住

不会吧,是不是你底层配置有问题。我这边试了很好的
回复

使用道具 举报

6

主题

35

帖子

0

精华

初级会员

Rank: 2

积分
173
金钱
173
注册时间
2020-6-7
在线时间
67 小时
 楼主| 发表于 2020-12-22 15:09:08 | 显示全部楼层
jiangyy 发表于 2020-12-22 13:45
不会吧,是不是你底层配置有问题。我这边试了很好的

我知道了 是我栈空间设置的不够大 感谢
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-3-1 08:27

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表