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

查看: 15444|回复: 26

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

[复制链接]

10

主题

85

回帖

0

蝴蝶豆

初级会员

最后登录
2020-2-8
发表于 2014-6-29 21:04:20 | 显示全部楼层 |阅读模式
拿到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, 下载次数: 1046)
<
回复

使用道具 举报

5

主题

26

回帖

0

蝴蝶豆

高级会员

最后登录
1970-1-1
发表于 2014-6-30 11:35:20 | 显示全部楼层

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

谢谢分享!
回复 支持 反对

使用道具 举报

307

主题

3125

回帖

0

蝴蝶豆

论坛元老

最后登录
2020-7-17
发表于 2014-6-30 17:21:21 | 显示全部楼层

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

哈哈,多谢楼主分享!还有祝福~
回复 支持 反对

使用道具 举报

55

主题

365

回帖

0

蝴蝶豆

初级会员

最后登录
1970-1-1
发表于 2014-8-1 17:05:46 | 显示全部楼层

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

呵呵,挺好的
回复 支持 反对

使用道具 举报

0

主题

11

回帖

0

蝴蝶豆

初级会员

最后登录
2020-9-2
发表于 2014-8-21 23:02:04 | 显示全部楼层

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

h 不错 学习
  学习
 
回复 支持 反对

使用道具 举报

0

主题

1

回帖

0

蝴蝶豆

新手上路

最后登录
2014-12-22
发表于 2014-12-22 01:10:54 | 显示全部楼层
多谢LZ,在楼主的工程帮助下,不仅做了24x24的,还做了32x32的,多谢了
回复 支持 反对

使用道具 举报

1

主题

4

回帖

0

蝴蝶豆

初级会员

最后登录
2020-11-4
发表于 2015-1-14 22:54:48 | 显示全部楼层
lz:字摸怎么取?用字摸软件取出来的都对不上
回复 支持 反对

使用道具 举报

8

主题

333

回帖

0

蝴蝶豆

金牌会员

最后登录
2019-11-5
发表于 2015-1-15 08:52:44 | 显示全部楼层
楼主大赞
回复 支持 反对

使用道具 举报

43

主题

292

回帖

0

蝴蝶豆

金牌会员

最后登录
2020-11-28
发表于 2015-1-15 08:53:46 | 显示全部楼层
很好,赞一个!
回复 支持 反对

使用道具 举报

8

主题

333

回帖

0

蝴蝶豆

金牌会员

最后登录
2019-11-5
发表于 2015-1-15 09:34:20 | 显示全部楼层
楼主真是太给力了
回复 支持 反对

使用道具 举报

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版