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

【STM32F429开发日志】汉字显示(取模方式)  

[复制链接]
平淡~简单 提问时间:2014-6-29 21:04 /
拿到F429-Discovery一个月了,才写这个,实在抱歉。下面进入正题。
该例程使用的是Discovery板上的彩屏,以及SDRAM作为显存,其中的屏和SDRAM的驱动使用的是Discovery例程中自带的驱动。
本人只是做了小的改动,使其能显示汉字,采用的取模方式,字体大小是24*24。下面简单的说明一下做了哪些改动。
要驱动屏,需要调用以下几个函数:
LCD_Init();
LCD_LayerInit();
 LTDC_Cmd(ENABLE);
其中前两个是stm32f429i_discovery_lcd.c中的函数,最后那个函数是外设库里面的函数。
其中要说一下,在LCD_LayerInit();函数中,对LTDC_Layer_InitStruct结构体的这个参数设置就是把SDRAM的地址,赋值给LCD的显示,使SDAM成为LCD的显存。
/* Start Address configuration : the LCD Frame buffer is defined on SDRAM */   
  LTDC_Layer_InitStruct.LTDC_CFBStartAdress = LCD_FRAME_BUFFER;
主要是对LCD_DisplayStringLine();函数做了改造,又增加了两个写汉字的函数。下面贴图上来说明。
QQ截图1.png
在这个函数中,首先是判断了下面要显示的是字符还是汉字,如果是字符则设置字符的字体,然后显示字符即可,如果是汉字则显示汉字的字体,然后调用LCD_DisplayChinese();函数进行汉字的显示。注意下面指针ptr要累加两次,因为汉字的内码是占用两个字节。有一点缺陷的是这样写之后似乎只能使用一种字体显示。如果要使用不同字体显示,可以增加一个设置汉字字体的函数和结构体。不知各位大神有什么好的方法。
QQ截图2.png
这个函数的主要任务就是查找到汉字对应的点阵数据,这里创建了一个汉字点阵的结构体。
typedef struct {                               /*汉字字模数据结构           */
    unsigned char Index[2];                    /* 汉字内码索引                */
    unsigned char Msk[72];                     /* 汉字点阵数据                   */
}FNT_GB24;
汉字内码是占两个字节,因为字体大小是24*24的,所以是72字节。同时,这个汉字的数据信息是使用的是字符的那个数据结构。
sFONT Font24x24 = {
  (const uint16_t*)Chinese24x24_Table->Index,
  24, /* Width */
  24, /* Height */
};
QQ截图3.png
最后就是逐一打点即可,注意偏移位置的计算,最后的红色方框,是判断是否打完一行数据,一行数据是3个字节。
最后附上一张效果图,以及工程文件,欢迎大家批评指正。
IMG_20140629_205234.jpg
STM32F429汉字显示.rar (554.84 KB, 下载次数: 1061)
1 收藏 1 评论28 发布时间:2014-6-29 21:04

举报

28个回答
liaozhai 回答时间:2022-8-4 08:59:39
zhn 发表于 2015-1-14 22:54
lz:字摸怎么取?用字摸软件取出来的都对不上


我也弄了一下午字体,最后弄出来了,用得是这个,记录下

ap0405209 回答时间:2015-2-6 16:37:57
沐紫 发表于 2014-6-30 17:21
哈哈,多谢楼主分享!还有祝福~

管理员~~你知道这贴上的取模软件是哪个吗?
比较急~~所以咨询一下你~~~
shanji 回答时间:2015-9-21 18:18:19
取模用的是哪种字体?我把取模软件的字体都试了一遍,没有和楼主一样的字体,感觉楼主的字体好看些,求楼主告知
wangbao619 回答时间:2014-6-30 11:35:20

RE:【STM32F429开发日志】汉字显示(取模方式)

谢谢分享!
沐紫 回答时间:2014-6-30 17:21:21

RE:【STM32F429开发日志】汉字显示(取模方式)

哈哈,多谢楼主分享!还有祝福~
szruan 回答时间:2014-8-1 17:05:46

回复:【STM32F429开发日志】汉字显示(取模方式)

呵呵,挺好的
ienping 回答时间:2014-8-21 23:02:04

回复:【STM32F429开发日志】汉字显示(取模方式)

h 不错 学习
  学习
 
请叫我华仔 回答时间:2014-12-22 01:10:54
多谢LZ,在楼主的工程帮助下,不仅做了24x24的,还做了32x32的,多谢了
zhn 回答时间:2015-1-14 22:54:48
lz:字摸怎么取?用字摸软件取出来的都对不上
北斗光寒 回答时间:2015-1-15 08:52:44
楼主大赞
caizhiwei 回答时间:2015-1-15 08:53:46
很好,赞一个!
北斗光寒 回答时间:2015-1-15 09:34:20
楼主真是太给力了
党国特派员 回答时间:2015-1-15 12:39:05
3.png
拼命三郎 回答时间:2015-1-15 12:45:58
学习一哈
wyxy163@126.com 回答时间:2015-1-15 14:08:33
提示: 作者被禁止或删除 内容自动屏蔽
ap0405209 回答时间:2015-2-6 16:35:46
请问你是用哪个软件进行取模的?
12下一页
关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版