|
在学习从SD卡读取汉字字库时,参考STemWin教程1-60期中的第19章,发现在屏幕及按键控件上都无法显示汉字,多次对比还是无法显示,后通过单步运行,发现在GUICharPEx.c文件中的GUI_X_GetFontData函数,打开字库文件res = f_open(&fsrc, font, FA_OPEN_EXISTING | FA_READ); res值不为零,就是读取字库失败了,后一直找关于FatFS移植是否有问题,测试没问题,通过与之前读移植BMP程序对比,发现在打开文件命令前没有执行挂载文件系统,后添加挂载文件命令后能正常显示汉字。由于使用的是X3的学习板没有例程只能通过自已移植,现附上程序中的区别,用红色字体标注为所加的内容。
void GUI_X_GetFontData(char* font, U32 oft, U8 *ptr, U16 bytes)
{
/* 挂载文件系统 */
res = f_mount(FS_SD, &fs); /* Mount a logical drive */
if (res != FR_OK)
{
printf("挂载文件系统失败 (%d)\r\n", res);
}
//
res = f_open(&fsrc, font, FA_OPEN_EXISTING | FA_READ); //打开字库文件
if(res != FR_OK)
{
return;
}
res = f_lseek(&fsrc,oft); //找到首地址
res = f_read(&fsrc, ptr, bytes, &bw1); //读取32个字库点阵数据
res = f_close(&fsrc); //关闭字体
} |
|