写12号ASCII码
void GUI_Show12ASCII(uint16_t x, uint16_t y, uint8_t *p,
uint16_t wordColor, uint16_t backColor)
{
uint8_t i, wordByte, wordNum;
uint16_t color;
while(*p != '\0') //检测是否是最后一个字
{
/* 在字库中的ASCII码是从空格开始的也就是32开始的,所以减去32 */
wordNum = *p - 32;
TFT_SetWindow(x, y, x+7, y+15); //字宽*高为:8*16
for (wordByte=0; wordByte<16; wordByte++) //每个字模一共有16个字节
{
color = ASCII8x16[wordNum][wordByte];
for (i=0; i<8; i++)
{
if ((color&0x80) == 0x80)
{
TFT_WriteData_Color(wordColor);
}
else
{
TFT_WriteData_Color(backColor);
}
color <<= 1;
}
}
p++; //指针指向下一个字
/* 屏幕坐标处理 */
x += 8;
if(x > 233) //TFT_XMAX -8
{
x = 0;
y += 16;
}
}
} |