小学生
最后登录1970-1-1
在线时间 小时
注册时间2016-1-6
|
楼主 |
发表于 2016-1-6 21:33:18
|
显示全部楼层
void RA8875_DispStr(uint16_t _usX, uint16_t _usY, char *_ptr)
{
/*
RA8875 透过使用 — 上海集通公司 (Genitop Inc) 外部串行式字体内存 (Font ROM),可支持各样
的文字写入到DDRAM 中。RA8875 与上海集通公司 (Genitop Inc) 兼容的产品包含 :
GT21L16TW/GT21H16T1W 、GT23L16U2W 、GT23L24T3Y/GT23H24T3Y 、GT23L24M1Z 、
及 GT23L32S4W/GT23H32S4W。这些字体包含16x16, 24x24, 32x32 点 (Dot) 与不同的字
野火RA8875驱动板集成的字库芯片为 集通字库芯片_GT23l32S4W
GT23L32S4W是一款内含11X12点阵、15X16点、24X24点阵、32X32点阵的汉字库芯片,支持GB2312
国标汉字(含有国家信标委合法授权)及SCII字符。排列格式为横置横排。用户通过字符内码,利用本手
册提供的方法计算出该字符点阵在芯片中的地址,可从该地址连续读出字符点阵信息。
*/
/* 设置文本显示位置,注意文本模式的写入光标和图形模式的写入光标是不同的寄存器 */
RA8875_SetTextCursor(_usX, _usY);
RA8875_WriteReg(0x40, (1 << 7)); /* 设置为文本模式 */
/*
Serial Flash/ROM 频率频率设定
0xb: SFCL 频率 = 系统频率频率(当DMA 为致能状态,并且色彩深度为256 色,则SFCL 频率
固定为=系统频率频率/ 2)
10b: SFCL 频率 =系统频率频率/ 2
11b: SFCL 频率 =系统频率频率/ 4
安富莱驱动板系统频率为 68MHz
GT23L32S4W的访问速度:SPI 时钟频率:20MHz(max.)
因此需要设置 4 分频, 17MHz
*/
RA8875_WriteReg(0x06, (3 << 0)); /* 设置为文本模式 */
/* 选择外部字体ROM */
RA8875_WriteReg(0x21, (0 << 7) | (1 << 5));
/* 05H REG[05h] Serial Flash/ROM Configuration Register (SROC)
7 Serial Flash/ROM I/F # 选择
0:选择Serial Flash/ROM 0 接口。
1:选择Serial Flash/ROM 1 接口。
6 Serial Flash/ROM 寻址模式
0: 24 位寻址模式。
此位必须设为0。
5 Serial Flash/ROM 波形模式
0: 波形模式 0。
1: 波形模式 3。
4-3 Serial Flash /ROM 读取周期 (Read Cycle)
00b: 4 bus ?? 无空周期 (No Dummy Cycle)。
01b: 5 bus ??1 byte 空周期。
1Xb: 6 bus ??2 byte 空周期。
2 Serial Flash /ROM 存取模式 (Access Mode)
0: 字型模式 。
1: DMA 模式。
1-0 Serial Flash /ROM I/F Data Latch 选择模式
0Xb: 单一模式。
10b: 双倍模式0。
11b: 双倍模式1。
*/
RA8875_WriteReg(0x05, (0 << 7) | (0 << 6) | (1 << 5) | (1 << 3) | (0 << 2) | (0 << 1));
/*
设置外部字体芯片型号为 GT23L32S4W, 编码为GB2312,
Bit1:0 决定ASCII字符的格式:
0 = NORMAL [笔画细, 和汉字顶部对齐]
1 = Arial [笔画粗,和汉字底部对齐]
2 = Roman [笔画细, 和汉字底部对齐]
3 = Bold [乱码,不可用]
*/
RA8875_WriteReg(0x2F, (4 << 5) | (0 << 2) | (1 << 0));
LCD_RA8875_REG(0x02); /* 用于设定RA8875 进入内存(DDRAM或CGRAM)读取/写入模式 */
/* 开始循环处理字符 */
while (*_ptr != 0)
{
LCD_RA8875_WRITE_DATA(*_ptr);
while ((RA8875_ReadStatus() & 0x80) == 0x80);
LCD_Delay(0xffff);
_ptr++;
}
RA8875_WriteReg(0x40, (0 << 7)); /* 还原为图形模式 */
}
显示汉字的函数 |
|