你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

emWin外部字库使用遇挫

[复制链接]
翔飞 提问时间:2014-3-24 20:08 /
 

emWin5.12
芯片选用STM32F103VC
LCD使用TFT1289

参照 [STemWin教程入门篇]第六期:emWin5.20汉字显示方法二(将字库放到外部Flash,SD卡等)移植了字库,并显示出来


如图,使用外部字库时,字体可以正常显示,但是背景却出现了好多黑色的区域,(不使用外部字库时背景正常)
还请各位帮忙分析原因  。。。
这里是程序 GUI+OS.zip (2.53 MB, 下载次数: 195)
收藏 1 评论16 发布时间:2014-3-24 20:08

举报

16个回答
那片清茶 回答时间:2014-3-25 09:12:37

RE:emWin外部字库使用遇挫

是不是扫描出现问题了。
翔飞 回答时间:2014-3-25 10:09:15

回复:emWin外部字库使用遇挫

回复第 2 楼 于2014-03-25 09:12:37发表:
是不是扫描出现问题了。
不使用外部字库的时候,显示是正常的。
 
story_xjj 回答时间:2014-3-25 10:12:22

RE:emWin外部字库使用遇挫

字库是自己做的还是直接利用现成的字库啊,是不是字库的解析有问题
翔飞 回答时间:2014-3-25 11:57:11

回复:emWin外部字库使用遇挫

回复第 4 楼 于2014-03-25 10:12:22发表:
字库是自己做的还是直接利用现成的字库啊,是不是字库的解析有问题
 
 
直接利用现成的,
system.zip (1.21 MB, 下载次数: 99)
回答时间:2014-3-25 17:19:30

RE:emWin外部字库使用遇挫

仿真看一下,显示下个字体的时候,字库读取的数据是什么样的。能不能把你说的两种情况发一下图片。
翔飞 回答时间:2014-3-25 20:43:54

回复:emWin外部字库使用遇挫

回复第 6 楼 于2014-03-25 17:19:30发表:
仿真看一下,显示下个字体的时候,字库读取的数据是什么样的。能不能把你说的两种情况发一下图片。
 
 
先上一张正常的图
使用自动存储,创建对话框,建立按钮 TEXT ,字体全部使用emwin自带字体
图片7.png
 
 
11111111111111111111111111111
程序使用自动存储,创建一个对话框,在对话框里建立一个 按钮(显示emwin自带英文字符) 和 一个TEXT文本(显示外部字库的汉字)“世界人民需要你”
图片1.png
实际显示如图
图片2.png
背景出现了黑色的区域,但是 TEXT可正常显示字体,点击 按钮 之后按钮上的字符没有出现乱码的现象
 
222222222222222222222222222222222222
不使用自动存储的情况,如下图,TEXT不能正常显示汉字,按钮可正常显示字符
图片3.png
点击按钮之后,按钮上的英文字符也不能正常显示了,如图
图片4.png
貌似跟存储设备也有关系,关闭了之后,背景显示倒是正常了,可是点击按钮之后,按钮显示的字符又不正常了。
 
3333333333333333333333333333333333
不创建对话框,直接在LCD绘制汉字,程序
图片5.png
实际显示如下(关闭或者开启自动存储,效果都是一样)
图片6.png
 背景是正常的,显示字体是不正常的
 
 
 
 
 
翔飞 回答时间:2014-3-25 20:50:20

回复:emWin外部字库使用遇挫

回复第 6 楼 于2014-03-25 17:19:30发表:
仿真看一下,显示下个字体的时候,字库读取的数据是什么样的。能不能把你说的两种情况发一下图片。
 
好像得出一点结论
背景不能正常显示跟 自动存储有关
汉字不能正常显示,也许该按你说的看下字库读出的数据
还有一个问题,有存储设备的时候,字体可以正常显示,不使用的时候,按钮和TEXT显示都会乱码
 
翔飞 回答时间:2014-3-25 23:42:22

回复:emWin外部字库使用遇挫

回复第 6 楼 于2014-03-25 17:19:30发表:
仿真看一下,显示下个字体的时候,字库读取的数据是什么样的。能不能把你说的两种情况发一下图片。
 
问题出在FATFS读取TF卡的函数,我把字体的编码直接给缓冲区,这样没有一点问题,
还不清楚是Fatfs还是SDIO的问题。
我用printf打印出来GUI_FontDataBuf的数据,也没发现什么问题,纠结。。。
图片1.png
 
回答时间:2014-3-26 11:39:58

RE:emWin外部字库使用遇挫

这样就要看你读取出来的数据了。另外,你要注意一下显示的时候,一般以\0结束,如果没有\0他会把后面的数据也显示的。建议你显示的时候加一个长度的处理,不要用strlen来判断长度。
12下一页

所属标签

相似问题

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
13245底部标题123相同标题
12底部标题123相同标题
33333底部标题123相同序号
3435底部标题-无链接
关注我们
st-img 微信公众号
st-img 手机版