STM32
直播中

jsqueh

8年用户 1180经验值
私信 关注
[问答]

STemWin fatfs编码格式冲突怎么解决?

最近手上有一个项目,需要用到STemWin,fatfs和sd卡,由于STemWin显示汉字用的XBF格式,xbf格式的汉字用的是UTF-8格式的;用fatfs创建以汉字为文件名的csv格式的文件时FF_LFN_UNICODE=0,f_open的返回值是FR_INVALID_NAME,FF_LFN_UNICODE=2时f_open的返回值是FR_OK,但是文件并没有创建,求大佬指点一下哈

回帖(1)

贾飞小

2024-4-12 16:11:54
在使用STemWin、FatFS和SD卡时,遇到了编码格式冲突的问题。具体而言,使用UTF-8编码的XBF格式汉字在创建以汉字为文件名的csv格式文件时遇到了问题。

1. 首先,请确保您在SD卡上创建了正确的文件系统(如FAT32)并正确地挂载了SD卡。

2. 在使用FatFS时,确保您已正确地设置了FatFS的配置选项。特别是,请检查以下选项的设置:
   - `_LFN_UNICODE`:如果您希望支持Unicode文件名,请将其设置为1或2。设置为0表示不支持Unicode文件名。
   - `_USE_LFN_EX`:如果您使用长文件名,将其设置为1。

3. 在使用FatFS创建文件时,请注意以下几点:
   - 确保您以合适的方式指定了文件名,例如使用UTF-8编码的字符串。
   - 确保您以正确的方式打开文件,即指定适当的打开模式。例如,您可以使用`f_open(&File, "file.csv", FA_CREATE_ALWAYS | FA_WRITE)`。

4. 在使用STemWin显示汉字时,请确保:
   - 您已正确加载并使用了XBF字体文件,以支持汉字显示。
   - 您已正确设置了STemWin的多国语言支持。例如,您可以使用`GUI_SetEncodeUTF8()`。

如果在按照上述步骤操作后仍然遇到问题,请确保您没有其他冲突的设置或代码。另外,您还可以尝试查看相关文档和示例代码,以获取更多关于STemWin、FatFS和SD卡的使用信息。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分