OpenEdv-开源电子网

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

【求助】fatfs长中文名的问题,把表格文件放在SD卡,显示出错

[复制链接]

3

主题

50

帖子

0

精华

高级会员

Rank: 4

积分
564
金钱
564
注册时间
2016-3-31
在线时间
139 小时
发表于 2016-10-15 12:47:42 | 显示全部楼层 |阅读模式
1金钱
cc936.c文件的转换代码是这样的:这个函数 转换 没 问题,我把函数  单独拿出来 测试过。

WCHAR ff_convert ( /* Converted code, 0 means conversion error */
WCHAR chr, /* Character code to be converted */
UINT dir  /* 0: Unicode to OEM code, 1: OEM code to Unicode */
)
{
WCHAR c;

UINT bread1
u8 res=0;
u32 i, n, li, hi;
WCHAR buffer936[2] = {0};          /* file copy buffer */

if (chr < 0x80) /* ASCII */
  c = chr;
else   //&frac12;&laquo;&Ograve;&ordf;&Ecirc;&sup1;&Oacute;&Atilde; ±í&cedil;&ntilde; ×&ordf;&raquo;&raquo;
{
  if (dir)/* OEM ×&ordf; unicode */
   res = f_open(&pFile, "0:/System/oem2uni.bin", FA_OPEN_EXISTING | FA_READ);  
  
  else /* Unicode ×&ordf; OEM */
   res = f_open(&pFile, "0:/System/uni2oem.bin", FA_OPEN_EXISTING | FA_READ );
  
  if(res == FR_OK)
  {
   hi = f_size(&pFile);
   hi = hi / 4-1;
   li = 0;
   for (n = 16; n; n--)
   {
    i = li + (hi - li) / 2;
    f_lseek (&pFile, i * 4);
    f_read  (&pFile, buffer936, 4, &bread);
    if (chr == buffer936[0])
     break;
    if (chr > buffer936[0])
     li = i;
    else
     hi = i;
   }
   c = n ? buffer936[1] : 0;
  }
  else
   c=0;
  f_close(&pFile);      //&sup1;&Oslash;±&Otilde;&Icirc;&Auml;&frac14;&thorn;
}
return c;
}



问题在于放在整个代码中就有问题,只能转换第一个汉字,转换之后的汉字时候,就会变成 表格文件的名字:uni2oem.bin

例如有个文件:新建文档文件.txt
读出来就是    :新uni2oem.bin

这怎么解决呢???????????????

我看例程都是把   转换表格   放在FLASH的。有放在SD卡的例程吗????


*********************************************************************************

我还发现  :  只要执行  f_open(&pFile, "0:/System/uni2oem.bin", FA_OPEN_EXISTING | FA_READ );
就会出错。


求助啊,谢谢




正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165516
金钱
165516
注册时间
2010-12-1
在线时间
2116 小时
发表于 2016-10-18 22:34:25 | 显示全部楼层
仿真找问题。  另外,你这个用处不大,速度慢,又需要插卡,不方便。
回复

使用道具 举报

3

主题

50

帖子

0

精华

高级会员

Rank: 4

积分
564
金钱
564
注册时间
2016-3-31
在线时间
139 小时
 楼主| 发表于 2016-10-19 16:37:21 | 显示全部楼层
正点原子 发表于 2016-10-18 22:34
仿真找问题。  另外,你这个用处不大,速度慢,又需要插卡,不方便。

速度确实是挺慢的。我读取的就是SD卡里的长文件名。要是速度快,又不用FLASH,我觉得挺不错的。那我再找找原因吧。谢谢。。。。
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-5-23 23:57

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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