STM32/STM8技术william hill官网
直播中

许海明

7年用户 249经验值
私信 关注
[问答]

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

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

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


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

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

这里是程序


回帖(16)

谭子薇

2018-10-30 08:54:06
是不是扫描出现问题了。
举报

许海明

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

王育来

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

许海明

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

 
举报

孙婷婷

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

许海明

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

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

实际显示如图

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

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

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

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

 背景是正常的,显示字体是不正常的
 
 
 
 
 
举报

许海明

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

许海明

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

 
举报

孙婷婷

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

许海明

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

孙婷婷

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

许海明

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

孙婷婷

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

李晓莉

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

梁云

2018-10-30 11:37:28
十分感谢分享.....
举报

qwe041

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

更多回帖

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