发 帖  
原厂入驻New
[问答]

emWin外部字库使用背景出现了很多黑色区域

1118 emWin SD卡
分享
emWin5.12
芯片选用STM32F103VC
LCD使用TFT1289

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


如图,使用外部字库时,字体可以正常显示,但是背景却出现了好多黑色的区域,(不使用外部字库时背景正常)

还请各位帮忙分析原因 。。。

这里是程序


0
2018-10-30 08:42:22   评论 分享淘帖 邀请回答

相关问题

16个回答
是不是扫描出现问题了。
2018-10-30 08:54:06 评论

举报

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

举报

字库是自己做的还是直接利用现成的字库啊,是不是字库的解析有问题
2018-10-30 09:09:58 评论

举报

回复第 4 楼 于2014-03-25 10:12:22发表:
字库是自己做的还是直接利用现成的字库啊,是不是字库的解析有问题
 
 
直接利用现成的,

 
2018-10-30 09:24:02 评论

举报

仿真看一下,显示下个字体的时候,字库读取的数据是什么样的。能不能把你说的两种情况发一下图片。
2018-10-30 09:29:43 评论

举报

回复第 6 楼 于2014-03-25 17:19:30发表:
仿真看一下,显示下个字体的时候,字库读取的数据是什么样的。能不能把你说的两种情况发一下图片。
 
 
先上一张正常的图
使用自动存储,创建对话框,建立按钮 TEXT ,字体全部使用emwin自带字体

 
 
11111111111111111111111111111
程序使用自动存储,创建一个对话框,在对话框里建立一个 按钮(显示emwin自带英文字符) 和 一个TEXT文本(显示外部字库的汉字)“世界人民需要你”

实际显示如图

背景出现了黑色的区域,但是 TEXT可正常显示字体,点击 按钮 之后按钮上的字符没有出现乱码的现象
 
222222222222222222222222222222222222
不使用自动存储的情况,如下图,TEXT不能正常显示汉字,按钮可正常显示字符

点击按钮之后,按钮上的英文字符也不能正常显示了,如图

貌似跟存储设备也有关系,关闭了之后,背景显示倒是正常了,可是点击按钮之后,按钮显示的字符又不正常了。
 
3333333333333333333333333333333333
不创建对话框,直接在LCD绘制汉字,程序

实际显示如下(关闭或者开启自动存储,效果都是一样)

 背景是正常的,显示字体是不正常的
 
 
 
 
 
2018-10-30 09:42:11 评论

举报

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

举报

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

 
2018-10-30 10:06:18 评论

举报

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

举报

 
SD_Init();  SDIO初始化函数
这个函数影响,不管使不使用外部字库,只要加载了它,就有问题。
2018-10-30 10:37:54 评论

举报

SD初始化过程应该不会和LCD产生冲突,产生冲突的应该也只有IO口。这样仿真一下,SD初始化过程中,哪儿引起的冲突。是由于IO口,还是其他的。
2018-10-30 10:52:47 评论

举报

回复第 12 楼 于2014-03-26 15:00:49发表:
SD初始化过程应该不会和LCD产生冲突,产生冲突的应该也只有IO口。这样仿真一下,SD初始化过程中,哪儿引起的冲突。是由于IO口,还是其他的。
 
来结贴
可能是我的芯片的问题,单独使用TF卡和FSMC时都没问题,就是使能SDIO时钟之后就不正常了
换块板子,正常显示。
 
感谢大家帮助,感谢 安
 
2018-10-30 11:00:49 评论

举报

如果有问题,欢迎来提问。大家共同学习。
2018-10-30 11:08:00 评论

举报

仿真看看你实际读到的数据吧,没有用外部存储可以正常显示,说明你的显示驱动和程序应该是正确的,用了外部存储不能正常显示,可能就是显示的数据不对,比如背景的数据。
2018-10-30 11:18:15 评论

举报

2018-10-30 11:37:28 评论

举报

【能接emWin的SPI串口屏】
GLCD功能类似于SPI串口屏,只是SPI接口通信更快速,以至能作为emWin(第三方界面软件库)的图形显示屏,弥补emWin使用字库/图片麻烦以及刷屏慢的缺点,这样emWin做界面就更精美、便捷!
emWin界面软件库是运行在用户CPU中的;GLCD负责储存字库和图片,以及接收由emWin发出的绘图指令,并且执行这些绘图指令以显示文字、图片、2D图形等,绘图指令代替像素操作可大大减轻用户CPU的负担;GLCD还管理触摸屏、鼠标、键盘、蜂鸣器、RTC时钟等外设。
更多介绍请看:www.neqee.com
2018-10-30 11:50:09 评论

举报

撰写答案

你正在撰写答案

如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。

高级模式
您需要登录后才可以回帖 登录 | 注册

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容图片侵权或者其他问题,请联系本站作侵删。 侵权投诉
我要提问
关闭

站长推荐 上一条 /8 下一条

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