|
本帖最后由 tiky 于 2020-6-12 02:27 编辑
TK499的QSPI例程及emWin例程已经出了很久,但是还有不少网友没利用起来。现在出一个单独的例程给大家参考一下,配置就一两步就行了。附件压缩包给出了7种字体,与下载程序一样,同样的下载程序的方式弹出U盘后,7种字库可以一起拖到U盘中就下载进去了(注意:字库相对较大,几MB级别,要等U盘退出后才算完成,一般是进度条走尽的两倍时间)。
关键代码如下:
- /*================================ ST16 宋体16*16 ================================*/
- GUI_FONT stFont;//字体名称
- static GUI_XBF_DATA xbfData;
- static int stFont_addr;//字体地址,用函数自动获取
- static int _cbGetData(U32 off,U16 NumBytes, void *pVoid, void *pBuffer)
- {
- QSPIReadGroup(stFont_addr + off, pBuffer, NumBytes);
- return 0;
- }
- void CreateXBF_Font(void)
- {
- GUI_XBF_CreateFont(&stFont,&xbfData,GUI_XBF_TYPE_PROP,_cbGetData,0);
- }
- GUI_FONT * SetFont_Xbf(void)
- {
- return ((GUI_FONT *)GUI_SetFont(&stFont));
- }
复制代码
然后用这个函数初始化一下字库,主要作用是获取字库的地址交给emWin,有多少个字库就要给多少个地址,要不emWin找不着这个字库的地址用不了。
- void init_all_Font_addr(void)
- {
- stFont_addr=get_file_address_NOR_FLASH("ST16.xbf");
- XKF24_Font_addr=get_file_address_NOR_FLASH("JDXKF24.xbf");
- xkj32_Font_addr=get_file_address_NOR_FLASH("JXK32.xbf");
- SMG24_Font_addr=get_file_address_NOR_FLASH("SMG24.XBF");
- SMG36_Font_addr=get_file_address_NOR_FLASH("SMG36.XBF");
- SMG48_Font_addr=get_file_address_NOR_FLASH("SMG48.XBF");
- SMG64_Font_addr=get_file_address_NOR_FLASH("SMG64.XBF");
- }
复制代码
然后就可以随便用了,应用样例:
- //========== 存储在外部QSPI FLASH里的全字库 字体 ==========//
- void XBF_Disp(void)//宋体16*16
- {
-
- CreateXBF_Font(); //create extern flash font lib
- GUI_UC_SetEncodeUTF8();
- SetFont_Xbf();
- GUI_SetColor(GUI_RED);
- GUI_DispStringHCenterAt("欢迎使用好钜润科技产品",240,200);
- GUI_DispStringHCenterAt("当前全字库存储在外部QSPI FLASH",240,220);
- GUI_DispStringHCenterAt("emWin外部XBF字库演示",240,240);
- }
复制代码
基于评估板与5寸屏的演示效果,其它屏基本一样,因为只涉及QSPI底层,所以基于TK499评估板的其它屏也同样适用
参考程序:
TK499_emWin_TK050F5590_XBF横屏版_支持二次开发.rar
(15.95 MB)
|
|