Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
DIY综合交流区
[RealTouch例程]LCD显示字符
发布于 2012-09-24 09:54:53 浏览:9238
订阅该版
LCD显示字符 ![LCD 显示字符.pdf](/uploads/3857_9075ea593766f604ae337c0d8de07fe1.pdf) ![RealTouch_lcd.zip](/uploads/3857_7da5a4044f1994f8f5d16b351c327274.zip) 通过本章学习你将了解如何操作LCD显示屏上的像素点以及如何把ASCII字符绘制到屏幕上。 1. LCD控制器RA8875简介 RA8875 是一个文字与绘图模式的双图层液晶显示 (TFT-LCD) 控制器,可结合文字或2D图形应用,最大可支持到800*480 点分辨率的中小尺寸数字面板。内建 768KB 显示内存可提供大多数使用者的应用一个更弹性的解决方案。此外,使用者可藉由选用外部串行式Flash 接口,支持BIG5/GB 编码,可提供最大达32*32 像素之的字型输入。在图形的使用上,RA8875 支持2D 的BTE 引擎 (Block Transfer Engine),此功能兼容于一般通用的2D BitBLT 功能,可处理大量图形数据转换与传送。同时RA8875 也内建几何图形加速引擎 (Geometric Speed-up Engine),提供使用者透过简单的设定轻松画出直线、矩形、圆形和椭圆的几何图形。(详细介绍参见工程目录下的RA8875中文规格书) 2. 本例程所用硬件资源 1) 7寸800*480像素LCD 2) RA8875 LCD控制器 3) FSMC以及相关I/O 3. 例程 3.1 LCD操作接口简介 代码一 画点 ``` /* ra8875.c */ void ra8875_lcd_set_pixel(const uint16_t* pixel, int x, int y) { /* 设置内存写入光标位置 */ _set_write_cursor(x, y); /* 准备数据写入 */ LCD_CmdWrite(MRWC); /* 写入像素数据 */ LCD_DataWrite(*(uint16_t *)pixel); } ``` pixel是一个16位的像素值的地址,x、y是以屏幕左上方为原点水平向右为x增垂直向下为y增的坐标值。 代码二 画水平线段 ``` /* ra8875.c */ void ra8875_lcd_draw_hline(const uint16_t* pixel, int x1, int x2, int y) { /* 光标属性设定 */ LCD_CmdWrite(MWCR0); LCD_DataWrite(0x00); /* 光标位置设定 */ _set_write_cursor(x1, y); /* 准备写入像素数据 */ LCD_CmdWrite(MRWC); /* 写入数据 */ for(; x1 < x2; x1++) { LCD_DataWrite(*(uint16_t *)pixel); } } ``` Pixel为RGB565格式像素值的地址,x1为线段左端点、x2为线段右端点、y表示线段在哪一行。 代码三 画垂直线段 ``` /* ra8875.c */ void ra8875_lcd_draw_vline(const uint16_t* pixel, int x, int y1, int y2) { /* 设定光标属性为从上向下增长 */ LCD_CmdWrite(MWCR0); LCD_DataWrite(0x00 | 1<<3); /* 设置起始点 */ _set_write_cursor(x,y1); /* 准备写入像素数据 */ LCD_CmdWrite(MRWC); /* 绘制垂直方向的像素 */ for(; y1
Height; /* 获取字体地址 */ pdata = &_current_font->Table[pos]; for (line = y; line < y + _current_font->Height; line ++) { /* 取出字体的一行点阵数据 */ data = *pdata; /* 指向下一行 */ pdata ++; /* 绘制行的各个像素 */ for (column = x; column < x + _current_font->Width; column ++) { if (data & 0x01) { /* 显示前景色color */ ra8875_lcd_set_pixel((char*)&color, column, line); } else { /* 显示白色背景 */ ra8875_lcd_set_pixel(&white, column, line); } data >>= 1; } } } ``` C为ACSII字符、x,y为字符位置、color为字符颜色。字体的点阵数组定义在fonts.c中的,其中定义了4种不同大小的字体_current_font是一个字体属性结构体指针(参见fonts.h)用来标示当前使用的哪种大小的字体。下面将以16像素宽24像素高的“!”字符给大家讲解一个字符的绘制过程。“!”字符字体定义如下图所示。 图一 “!”字体定义 字体标示像素的方式跟位图标示像素的方式是不一样的,字体用一位标示一个像素,为0的位表示这个地方显示为背景色、为1的位表示这个地方显示为前景色。低位为左边的像素高位为右边的像素。这里第一个0x0000表示字符最顶行的16个像素全显示为背景色,第二个0x0180表示第二行当中两个像素显示为前景色左右的像素显示为背景色。 4. 下载运行 ![560.jpg](/uploads/3857_80c4cb503b5d61ea59ad339dc4d82b98.jpg) 这个字符串的输出是在字符输出的基础上实现的,实现过程参见display.c还有其他画线的功能就请读者自己尝试了。
查看更多
4
个回答
默认排序
按发布时间排序
grissiom
2012-09-24
这家伙很懒,什么也没写!
这个字体挺好看的~
bernard
2012-09-24
这家伙很懒,什么也没写!
是的,也是时候把RT-Thread/GUI里的字体更换下了
632695319
2012-11-22
这家伙很懒,什么也没写!
加油顶!
撰写答案
登录
注册新账号
关注者
0
被浏览
9.2k
关于作者
heyuanjie87
这家伙很懒,什么也没写!
提问
34
回答
86
被采纳
1
关注TA
发私信
相关问题
1
[项目]搞个开源的硬件项目
2
硬件计划贴,及时更新,欢迎提意见
3
软件计划贴,及时更新,欢迎提意见::WMA,MOUNT,LWIP等问题急需解决.
4
MMS协议
5
定点的wma解压库-libwma
6
QQ群记录 [20090821]
7
STM32网络收音机PCB报名征集
8
第一版调试记录
9
第二版硬件讨论
10
RADIO项目相关模块规格--欢迎大家自己做板时规格与此兼容,减少重复劳动
推荐文章
1
RT-Thread应用项目汇总
2
玩转RT-Thread系列教程
3
国产MCU移植系列教程汇总,欢迎查看!
4
机器人操作系统 (ROS2) 和 RT-Thread 通信
5
五分钟玩转RT-Thread新社区
6
【技术三千问】之《玩转ART-Pi》,看这篇就够了!干货汇总
7
关于STM32H7开发板上使用SDIO接口驱动SD卡挂载文件系统的问题总结
8
STM32的“GPU”——DMA2D实例详解
9
RT-Thread隐藏的宝藏之completion
10
【ART-PI】RT-Thread 开启RTC 与 Alarm组件
最新文章
1
TinyUSB Demo运行教程
2
RT-Thread学习大礼包一键带走!
3
freemodbus从机调试说明
4
【1024】瑞萨 RA 系列 BSP 制作与适配最新版本的 Keil 、 RSC、固件,较新的 FSP
5
基于 RT-Thread 星火一号开发板的俄罗斯方块
热门标签
RT-Thread Studio
串口
Env
LWIP
SPI
AT
Bootloader
Hardfault
CAN总线
ART-Pi
FinSH
USB
DMA
文件系统
RT-Thread
SCons
RT-Thread Nano
线程
MQTT
STM32
RTC
rt-smart
FAL
ESP8266
I2C_IIC
WIZnet_W5500
ota在线升级
UART
cubemx
PWM
flash
packages_软件包
freemodbus
BSP
潘多拉开发板_Pandora
定时器
ADC
GD32
flashDB
socket
中断
Debug
编译报错
msh
SFUD
keil_MDK
rt_mq_消息队列_msg_queue
ulog
C++_cpp
at_device
本月问答贡献
用户名由3_15位
10
个答案
1
次被采纳
KunYi
4
个答案
1
次被采纳
踩姑娘的小蘑菇
2
个答案
1
次被采纳
bernard
1
个答案
1
次被采纳
rv666
1
个答案
1
次被采纳
本月文章贡献
出出啊
1
篇文章
2
次点赞
小小李sunny
1
篇文章
1
次点赞
张世争
1
篇文章
4
次点赞
crystal266
2
篇文章
2
次点赞
whj467467222
2
篇文章
1
次点赞
回到
顶部
发布
问题
分享
好友
手机
浏览
扫码手机浏览
投诉
建议
回到
底部