资源简介
现在的UC/GUI的源程序只能实现部分英文字库,但我们中国人开发项目常常要用中国字,网上关于实现汉字的方法的文章太多了,随便可以找到,但是那都是将少量的字库文件存放在片内的FLASH,一旦在不确定汉字使用范围的时候那就麻烦了,要将整个字库文件编进去的话那个头就太大了,因此只能外加片外FLASH了,这样就要修改UC/GUI的源码了。
代码片段和文件信息
/*
*********************************************************************************************************
* uC/GUI
* Universal graphic software for embedded applications
*
* (c) Copyright 2002 Micrium Inc. Weston FL
* (c) Copyright 2002 SEGGER Microcontroller Systeme GmbH
*
* 礐/GUI is protected by international copyright laws. Knowledge of the
* source code may not be used to write a similar product. This file may
* only be used in accordance with a license and should not be redistributed
* in any way. We appreciate your understanding and fairness.
*
----------------------------------------------------------------------
File : GUICharP.C
Purpose : Implementation of Proportional fonts
---------------------------END-OF-HEADER------------------------------
*/
#include /* needed for definition of NULL */
#include “GUI_Private.h“
/*********************************************************************
*
* Static code
*
**********************************************************************
*/
//字模数据的暂存数组以单个字模的最大字节数为设定值
#define BYTES_PER_FONT 64
static U8 GUI_FontDataBuf[BYTES_PER_FONT];
/*********************************************************************
*
* GUIPROP_FindChar
*/
static const GUI_FONT_PROP GUI_UNI_PTR * GUIPROP_FindChar(const GUI_FONT_PROP GUI_UNI_PTR* pProp U16P c) {
for (; pProp; pProp = pProp->pNext) {
if ((c>=pProp->First) && (c<=pProp->Last))
break;
}
return pProp;
}
/*********************************************************************
*
* Public code
*
**********************************************************************
*/
/*********************************************************************
*
* GUIPROP_DispChar
*
* Purpose:
* This is the routine that displays a character. It is used by all
* other routines which display characters as a subroutine.
*/
void GUIPROP_DispChar(U16P c) {
int BytesPerLine;
U8 BytesPerFont;
U32 baseoft;
GUI_DRAWMODE DrawMode = GUI_Context.TextMode;
const GUI_FONT_PROP GUI_UNI_PTR * pProp = GUIPROP_FindChar(GUI_Context.pAFont->p.pProp c);
if (pProp) {
GUI_DRAWMODE OldDrawMode;
const GUI_CHARINFO GUI_UNI_PTR * pCharInfo;
if(GUI_Context.pAFont == &GUI_FontHZ_SimHei_20)
{
pCharInfo = pProp->paCharInfo;
base = (U32)pProp->paCharInfo->pData;
BytesPerFont = GUI_Context.pAFont->YSize * pProp->paCharInfo->BytesPerLine; //每个字模的数据字节数
if (BytesPerFont > BYTES_PER_FONT)
{
BytesPerFont = BYTES_PER_FONT;
}
if (c < 0x80) //英文字符地址偏移算法
{
oft = base + (c - 0x20) * BytesPerFont;
}
else //中文字符地址偏移算法
{
if((c>>8) >= 0xb0)
oft = base + (((c>>8) - 0xa1 - 6) * 94 + ((c&0xff) - 0xa1)) * B
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 17899 2010-12-26 17:16 SimHei_20.c
文件 5889 2010-12-27 09:54 GUICharP.c
文件 239 2010-12-31 10:28 readme.txt
----------- --------- ---------- ----- ----
24027 3
相关资源
- 洋桃1号开发板电路原理图核心板部分
- MPU6050 移植STM32F4程序
- stm32 使用ov7620 采集图像 的智能车
- STM32单片机实现二维码显示
- STM32F103CBT6原理图
- STM32F1单片机+四元数欧拉角姿态解算
- STM32控制BQ76940的BMS保护C代码
- STM32_ADC模数转换代码测试通过
- stm32F1+ov7670+定点定线
- stm32f1 黑点+黑线识别
- LED点阵屏源码32X64中英混合
- ADXL335加速度传感器
- stm32f103_内部flash读写非常好用
- STM32L476串口收发程序
- 基于stm32的人体红外感应
- STM32各个引脚功能Excel表格整理
- stm32f4xxADS1256驱动
- STM32开发板头文件.c.h文件
- stm32位带操作详细说明
- 基于nRF24L01和STM32的无线文件收发系统
- 虚拟示波器软件+stm32测试程序
- stm32F4图像使用迭代阈值法分割图像
- STM32F407的MPU6050三轴DMP度角度源码
- 基于stm32的音乐频谱显示
- STM32读写时钟PCF8563
- STM32输出SPWM
- SSD1305 SPI DMA驱动
- STM32F103C8T6封装.zip
- STM32几个简单小程序
- 基于STM32F103的SHT11温湿度传感器采集程
评论
共有 条评论