硬汉嵌入式论坛

 找回密码
 立即注册
查看: 1017|回复: 8
收起左侧

[LTDC] STM32H7加快中文显示速度方法1

[复制链接]

11

主题

28

回帖

61

积分

初级会员

积分
61
发表于 2022-7-23 20:05:05 | 显示全部楼层 |阅读模式
本帖最后由 新洲罗远 于 2022-7-23 20:11 编辑

STM32H7加快中文显示速度方法1
也是探索一下,把画点的方法改成写16位数的方法,先构建一个0——256对应的16位色彩表(565色彩)
static uint16_t ZFS2YS[256][8]={
{0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000},//0
{0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x07E0},//1
{0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x07E0,0x0000},//2
{0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x07E0,0x07E0},//3
{0x0000,0x0000,0x0000,0x0000,0x0000,0x07E0,0x0000,0x0000},//4
{0x0000,0x0000,0x0000,0x0000,0x0000,0x07E0,0x0000,0x07E0},//5
{0x0000,0x0000,0x0000,0x0000,0x0000,0x07E0,0x07E0,0x0000},//6
{0x0000,0x0000,0x0000,0x0000,0x0000,0x07E0,0x07E0,0x07E0},//7

{0x0000,0x0000,0x0000,0x0000,0x07E0,0x0000,0x0000,0x0000},//8
{0x0000,0x0000,0x0000,0x0000,0x07E0,0x0000,0x0000,0x07E0},//9
{0x0000,0x0000,0x0000,0x0000,0x07E0,0x0000,0x07E0,0x0000},//A
{0x0000,0x0000,0x0000,0x0000,0x07E0,0x0000,0x07E0,0x07E0},//B
{0x0000,0x0000,0x0000,0x0000,0x07E0,0x07E0,0x0000,0x0000},//C
{0x0000,0x0000,0x0000,0x0000,0x07E0,0x07E0,0x0000,0x07E0},//D
{0x0000,0x0000,0x0000,0x0000,0x07E0,0x07E0,0x07E0,0x0000},//E
{0x0000,0x0000,0x0000,0x0000,0x07E0,0x07E0,0x07E0,0x07E0},//F

{0x0000,0x0000,0x0000,0x07E0,0x0000,0x0000,0x0000,0x0000},//10
{0x0000,0x0000,0x0000,0x07E0,0x0000,0x0000,0x0000,0x07E0},//11
{0x0000,0x0000,0x0000,0x07E0,0x0000,0x0000,0x07E0,0x0000},//12
{0x0000,0x0000,0x0000,0x07E0,0x0000,0x0000,0x07E0,0x07E0},//13
{0x0000,0x0000,0x0000,0x07E0,0x0000,0x07E0,0x0000,0x0000},//14
{0x0000,0x0000,0x0000,0x07E0,0x0000,0x07E0,0x0000,0x07E0},//15
{0x0000,0x0000,0x0000,0x07E0,0x0000,0x07E0,0x07E0,0x0000},//16
{0x0000,0x0000,0x0000,0x07E0,0x0000,0x07E0,0x07E0,0x07E0},//17

{0x0000,0x0000,0x0000,0x07E0,0x07E0,0x0000,0x0000,0x0000},//18
{0x0000,0x0000,0x0000,0x07E0,0x07E0,0x0000,0x0000,0x07E0},//19
{0x0000,0x0000,0x0000,0x07E0,0x07E0,0x0000,0x07E0,0x0000},//1A
{0x0000,0x0000,0x0000,0x07E0,0x07E0,0x0000,0x07E0,0x07E0},//1B
{0x0000,0x0000,0x0000,0x07E0,0x07E0,0x07E0,0x0000,0x0000},//1C
{0x0000,0x0000,0x0000,0x07E0,0x07E0,0x07E0,0x0000,0x07E0},//1D
{0x0000,0x0000,0x0000,0x07E0,0x07E0,0x07E0,0x07E0,0x0000},//1E
{0x0000,0x0000,0x0000,0x07E0,0x07E0,0x07E0,0x07E0,0x07E0},//1F

{0x0000,0x0000,0x07E0,0x0000,0x0000,0x0000,0x0000,0x0000},//20
{0x0000,0x0000,0x07E0,0x0000,0x0000,0x0000,0x0000,0x07E0},//21
{0x0000,0x0000,0x07E0,0x0000,0x0000,0x0000,0x07E0,0x0000},//22
{0x0000,0x0000,0x07E0,0x0000,0x0000,0x0000,0x07E0,0x07E0},//23
{0x0000,0x0000,0x07E0,0x0000,0x0000,0x07E0,0x0000,0x0000},//24
{0x0000,0x0000,0x07E0,0x0000,0x0000,0x07E0,0x0000,0x07E0},//25
{0x0000,0x0000,0x07E0,0x0000,0x0000,0x07E0,0x07E0,0x0000},//26
{0x0000,0x0000,0x07E0,0x0000,0x0000,0x07E0,0x07E0,0x07E0},//27

{0x0000,0x0000,0x07E0,0x0000,0x07E0,0x0000,0x0000,0x0000},//28
{0x0000,0x0000,0x07E0,0x0000,0x07E0,0x0000,0x0000,0x07E0},//29
{0x0000,0x0000,0x07E0,0x0000,0x07E0,0x0000,0x07E0,0x0000},//2A
{0x0000,0x0000,0x07E0,0x0000,0x07E0,0x0000,0x07E0,0x07E0},//2B
{0x0000,0x0000,0x07E0,0x0000,0x07E0,0x07E0,0x0000,0x0000},//2C
{0x0000,0x0000,0x07E0,0x0000,0x07E0,0x07E0,0x0000,0x07E0},//2D
{0x0000,0x0000,0x07E0,0x0000,0x07E0,0x07E0,0x07E0,0x0000},//2E
{0x0000,0x0000,0x07E0,0x0000,0x07E0,0x07E0,0x07E0,0x07E0},//2F

{0x0000,0x0000,0x07E0,0x07E0,0x0000,0x0000,0x0000,0x0000},//30
{0x0000,0x0000,0x07E0,0x07E0,0x0000,0x0000,0x0000,0x07E0},//31
{0x0000,0x0000,0x07E0,0x07E0,0x0000,0x0000,0x07E0,0x0000},//32
{0x0000,0x0000,0x07E0,0x07E0,0x0000,0x0000,0x07E0,0x07E0},//33
{0x0000,0x0000,0x07E0,0x07E0,0x0000,0x07E0,0x0000,0x0000},//34
{0x0000,0x0000,0x07E0,0x07E0,0x0000,0x07E0,0x0000,0x07E0},//35
{0x0000,0x0000,0x07E0,0x07E0,0x0000,0x07E0,0x07E0,0x0000},//36
{0x0000,0x0000,0x07E0,0x07E0,0x0000,0x07E0,0x07E0,0x07E0},//37

{0x0000,0x0000,0x07E0,0x07E0,0x07E0,0x0000,0x0000,0x0000},//38
{0x0000,0x0000,0x07E0,0x07E0,0x07E0,0x0000,0x0000,0x07E0},//39
{0x0000,0x0000,0x07E0,0x07E0,0x07E0,0x0000,0x07E0,0x0000},//3A
{0x0000,0x0000,0x07E0,0x07E0,0x07E0,0x0000,0x07E0,0x07E0},//3B
{0x0000,0x0000,0x07E0,0x07E0,0x07E0,0x07E0,0x0000,0x0000},//3C
{0x0000,0x0000,0x07E0,0x07E0,0x07E0,0x07E0,0x0000,0x07E0},//3D
{0x0000,0x0000,0x07E0,0x07E0,0x07E0,0x07E0,0x07E0,0x0000},//3E
{0x0000,0x0000,0x07E0,0x07E0,0x07E0,0x07E0,0x07E0,0x07E0},//3F

{0x0000,0x07E0,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000},//40
{0x0000,0x07E0,0x0000,0x0000,0x0000,0x0000,0x0000,0x07E0},//41
{0x0000,0x07E0,0x0000,0x0000,0x0000,0x0000,0x07E0,0x0000},//42
{0x0000,0x07E0,0x0000,0x0000,0x0000,0x0000,0x07E0,0x07E0},//43
{0x0000,0x07E0,0x0000,0x0000,0x0000,0x07E0,0x0000,0x0000},//44
{0x0000,0x07E0,0x0000,0x0000,0x0000,0x07E0,0x0000,0x07E0},//45
{0x0000,0x07E0,0x0000,0x0000,0x0000,0x07E0,0x07E0,0x0000},//46
{0x0000,0x07E0,0x0000,0x0000,0x0000,0x07E0,0x07E0,0x07E0},//47

{0x0000,0x07E0,0x0000,0x0000,0x07E0,0x0000,0x0000,0x0000},//48
{0x0000,0x07E0,0x0000,0x0000,0x07E0,0x0000,0x0000,0x07E0},//49
{0x0000,0x07E0,0x0000,0x0000,0x07E0,0x0000,0x07E0,0x0000},//4A
{0x0000,0x07E0,0x0000,0x0000,0x07E0,0x0000,0x07E0,0x07E0},//4B
{0x0000,0x07E0,0x0000,0x0000,0x07E0,0x07E0,0x0000,0x0000},//4C
{0x0000,0x07E0,0x0000,0x0000,0x07E0,0x07E0,0x0000,0x07E0},//4D
{0x0000,0x07E0,0x0000,0x0000,0x07E0,0x07E0,0x07E0,0x0000},//4E
{0x0000,0x07E0,0x0000,0x0000,0x07E0,0x07E0,0x07E0,0x07E0},//4F


{0x0000,0x07E0,0x0000,0x07E0,0x0000,0x0000,0x0000,0x0000},//50
{0x0000,0x07E0,0x0000,0x07E0,0x0000,0x0000,0x0000,0x07E0},//51
{0x0000,0x07E0,0x0000,0x07E0,0x0000,0x0000,0x07E0,0x0000},//52
{0x0000,0x07E0,0x0000,0x07E0,0x0000,0x0000,0x07E0,0x07E0},//53
{0x0000,0x07E0,0x0000,0x07E0,0x0000,0x07E0,0x0000,0x0000},//54
{0x0000,0x07E0,0x0000,0x07E0,0x0000,0x07E0,0x0000,0x07E0},//55
{0x0000,0x07E0,0x0000,0x07E0,0x0000,0x07E0,0x07E0,0x0000},//56
{0x0000,0x07E0,0x0000,0x07E0,0x0000,0x07E0,0x07E0,0x07E0},//57

{0x0000,0x07E0,0x0000,0x07E0,0x07E0,0x0000,0x0000,0x0000},//58
{0x0000,0x07E0,0x0000,0x07E0,0x07E0,0x0000,0x0000,0x07E0},//59
{0x0000,0x07E0,0x0000,0x07E0,0x07E0,0x0000,0x07E0,0x0000},//5A
{0x0000,0x07E0,0x0000,0x07E0,0x07E0,0x0000,0x07E0,0x07E0},//5B
{0x0000,0x07E0,0x0000,0x07E0,0x07E0,0x07E0,0x0000,0x0000},//5C
{0x0000,0x07E0,0x0000,0x07E0,0x07E0,0x07E0,0x0000,0x07E0},//5D
{0x0000,0x07E0,0x0000,0x07E0,0x07E0,0x07E0,0x07E0,0x0000},//5E
{0x0000,0x07E0,0x0000,0x07E0,0x07E0,0x07E0,0x07E0,0x07E0},//5F

{0x0000,0x07E0,0x07E0,0x0000,0x0000,0x0000,0x0000,0x0000},//60
{0x0000,0x07E0,0x07E0,0x0000,0x0000,0x0000,0x0000,0x07E0},//61
{0x0000,0x07E0,0x07E0,0x0000,0x0000,0x0000,0x07E0,0x0000},//62
{0x0000,0x07E0,0x07E0,0x0000,0x0000,0x0000,0x07E0,0x07E0},//63
{0x0000,0x07E0,0x07E0,0x0000,0x0000,0x07E0,0x0000,0x0000},//64
{0x0000,0x07E0,0x07E0,0x0000,0x0000,0x07E0,0x0000,0x07E0},//65
{0x0000,0x07E0,0x07E0,0x0000,0x0000,0x07E0,0x07E0,0x0000},//66
{0x0000,0x07E0,0x07E0,0x0000,0x0000,0x07E0,0x07E0,0x07E0},//67

{0x0000,0x07E0,0x07E0,0x0000,0x07E0,0x0000,0x0000,0x0000},//68
{0x0000,0x07E0,0x07E0,0x0000,0x07E0,0x0000,0x0000,0x07E0},//69
{0x0000,0x07E0,0x07E0,0x0000,0x07E0,0x0000,0x07E0,0x0000},//6A
{0x0000,0x07E0,0x07E0,0x0000,0x07E0,0x0000,0x07E0,0x07E0},//6B
{0x0000,0x07E0,0x07E0,0x0000,0x07E0,0x07E0,0x0000,0x0000},//6C
{0x0000,0x07E0,0x07E0,0x0000,0x07E0,0x07E0,0x0000,0x07E0},//6D
{0x0000,0x07E0,0x07E0,0x0000,0x07E0,0x07E0,0x07E0,0x0000},//6E
{0x0000,0x07E0,0x07E0,0x0000,0x07E0,0x07E0,0x07E0,0x07E0},//6F

{0x0000,0x07E0,0x07E0,0x07E0,0x0000,0x0000,0x0000,0x0000},//70
{0x0000,0x07E0,0x07E0,0x07E0,0x0000,0x0000,0x0000,0x07E0},//71
{0x0000,0x07E0,0x07E0,0x07E0,0x0000,0x0000,0x07E0,0x0000},//72
{0x0000,0x07E0,0x07E0,0x07E0,0x0000,0x0000,0x07E0,0x07E0},//73
{0x0000,0x07E0,0x07E0,0x07E0,0x0000,0x07E0,0x0000,0x0000},//74
{0x0000,0x07E0,0x07E0,0x07E0,0x0000,0x07E0,0x0000,0x07E0},//75
{0x0000,0x07E0,0x07E0,0x07E0,0x0000,0x07E0,0x07E0,0x0000},//76
{0x0000,0x07E0,0x07E0,0x07E0,0x0000,0x07E0,0x07E0,0x07E0},//77

{0x0000,0x07E0,0x07E0,0x07E0,0x07E0,0x0000,0x0000,0x0000},//78
{0x0000,0x07E0,0x07E0,0x07E0,0x07E0,0x0000,0x0000,0x07E0},//79
{0x0000,0x07E0,0x07E0,0x07E0,0x07E0,0x0000,0x07E0,0x0000},//7A
{0x0000,0x07E0,0x07E0,0x07E0,0x07E0,0x0000,0x07E0,0x07E0},//7B
{0x0000,0x07E0,0x07E0,0x07E0,0x07E0,0x07E0,0x0000,0x0000},//7C
{0x0000,0x07E0,0x07E0,0x07E0,0x07E0,0x07E0,0x0000,0x07E0},//7D
{0x0000,0x07E0,0x07E0,0x07E0,0x07E0,0x07E0,0x07E0,0x0000},//7E
{0x0000,0x07E0,0x07E0,0x07E0,0x07E0,0x07E0,0x07E0,0x07E0},//7F

{0x07E0,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000},//80
{0x07E0,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x07E0},//81
{0x07E0,0x0000,0x0000,0x0000,0x0000,0x0000,0x07E0,0x0000},//82
{0x07E0,0x0000,0x0000,0x0000,0x0000,0x0000,0x07E0,0x07E0},//83
{0x07E0,0x0000,0x0000,0x0000,0x0000,0x07E0,0x0000,0x0000},//84
{0x07E0,0x0000,0x0000,0x0000,0x0000,0x07E0,0x0000,0x07E0},//85
{0x07E0,0x0000,0x0000,0x0000,0x0000,0x07E0,0x07E0,0x0000},//86
{0x07E0,0x0000,0x0000,0x0000,0x0000,0x07E0,0x07E0,0x07E0},//87

{0x07E0,0x0000,0x0000,0x0000,0x07E0,0x0000,0x0000,0x0000},//88
{0x07E0,0x0000,0x0000,0x0000,0x07E0,0x0000,0x0000,0x07E0},//89
{0x07E0,0x0000,0x0000,0x0000,0x07E0,0x0000,0x07E0,0x0000},//8A
{0x07E0,0x0000,0x0000,0x0000,0x07E0,0x0000,0x07E0,0x07E0},//8B
{0x07E0,0x0000,0x0000,0x0000,0x07E0,0x07E0,0x0000,0x0000},//8C
{0x07E0,0x0000,0x0000,0x0000,0x07E0,0x07E0,0x0000,0x07E0},//8D
{0x07E0,0x0000,0x0000,0x0000,0x07E0,0x07E0,0x07E0,0x0000},//8E
{0x07E0,0x0000,0x0000,0x0000,0x07E0,0x07E0,0x07E0,0x07E0},//8F

{0x07E0,0x0000,0x0000,0x07E0,0x0000,0x0000,0x0000,0x0000},//90
{0x07E0,0x0000,0x0000,0x07E0,0x0000,0x0000,0x0000,0x07E0},//91
{0x07E0,0x0000,0x0000,0x07E0,0x0000,0x0000,0x07E0,0x0000},//92
{0x07E0,0x0000,0x0000,0x07E0,0x0000,0x0000,0x07E0,0x07E0},//93
{0x07E0,0x0000,0x0000,0x07E0,0x0000,0x07E0,0x0000,0x0000},//94
{0x07E0,0x0000,0x0000,0x07E0,0x0000,0x07E0,0x0000,0x07E0},//95
{0x07E0,0x0000,0x0000,0x07E0,0x0000,0x07E0,0x07E0,0x0000},//96
{0x07E0,0x0000,0x0000,0x07E0,0x0000,0x07E0,0x07E0,0x07E0},//97

{0x07E0,0x0000,0x0000,0x07E0,0x07E0,0x0000,0x0000,0x0000},//98
{0x07E0,0x0000,0x0000,0x07E0,0x07E0,0x0000,0x0000,0x07E0},//99
{0x07E0,0x0000,0x0000,0x07E0,0x07E0,0x0000,0x07E0,0x0000},//9A
{0x07E0,0x0000,0x0000,0x07E0,0x07E0,0x0000,0x07E0,0x07E0},//9B
{0x07E0,0x0000,0x0000,0x07E0,0x07E0,0x07E0,0x0000,0x0000},//9C
{0x07E0,0x0000,0x0000,0x07E0,0x07E0,0x07E0,0x0000,0x07E0},//9D
{0x07E0,0x0000,0x0000,0x07E0,0x07E0,0x07E0,0x07E0,0x0000},//9E
{0x07E0,0x0000,0x0000,0x07E0,0x07E0,0x07E0,0x07E0,0x07E0},//9F

{0x07E0,0x0000,0x07E0,0x0000,0x0000,0x0000,0x0000,0x0000},//a0
{0x07E0,0x0000,0x07E0,0x0000,0x0000,0x0000,0x0000,0x07E0},//a1
{0x07E0,0x0000,0x07E0,0x0000,0x0000,0x0000,0x07E0,0x0000},//a2
{0x07E0,0x0000,0x07E0,0x0000,0x0000,0x0000,0x07E0,0x07E0},//a3
{0x07E0,0x0000,0x07E0,0x0000,0x0000,0x07E0,0x0000,0x0000},//a4
{0x07E0,0x0000,0x07E0,0x0000,0x0000,0x07E0,0x0000,0x07E0},//a5
{0x07E0,0x0000,0x07E0,0x0000,0x0000,0x07E0,0x07E0,0x0000},//a6
{0x07E0,0x0000,0x07E0,0x0000,0x0000,0x07E0,0x07E0,0x07E0},//a7

{0x07E0,0x0000,0x07E0,0x0000,0x07E0,0x0000,0x0000,0x0000},//a8
{0x07E0,0x0000,0x07E0,0x0000,0x07E0,0x0000,0x0000,0x07E0},//a9
{0x07E0,0x0000,0x07E0,0x0000,0x07E0,0x0000,0x07E0,0x0000},//aA
{0x07E0,0x0000,0x07E0,0x0000,0x07E0,0x0000,0x07E0,0x07E0},//aB
{0x07E0,0x0000,0x07E0,0x0000,0x07E0,0x07E0,0x0000,0x0000},//aC
{0x07E0,0x0000,0x07E0,0x0000,0x07E0,0x07E0,0x0000,0x07E0},//aD
{0x07E0,0x0000,0x07E0,0x0000,0x07E0,0x07E0,0x07E0,0x0000},//aE
{0x07E0,0x0000,0x07E0,0x0000,0x07E0,0x07E0,0x07E0,0x07E0},//aF

{0x07E0,0x0000,0x07E0,0x07E0,0x0000,0x0000,0x0000,0x0000},//b0
{0x07E0,0x0000,0x07E0,0x07E0,0x0000,0x0000,0x0000,0x07E0},//b1
{0x07E0,0x0000,0x07E0,0x07E0,0x0000,0x0000,0x07E0,0x0000},//b2
{0x07E0,0x0000,0x07E0,0x07E0,0x0000,0x0000,0x07E0,0x07E0},//b3
{0x07E0,0x0000,0x07E0,0x07E0,0x0000,0x07E0,0x0000,0x0000},//b4
{0x07E0,0x0000,0x07E0,0x07E0,0x0000,0x07E0,0x0000,0x07E0},//b5
{0x07E0,0x0000,0x07E0,0x07E0,0x0000,0x07E0,0x07E0,0x0000},//b6
{0x07E0,0x0000,0x07E0,0x07E0,0x0000,0x07E0,0x07E0,0x07E0},//b7

{0x07E0,0x0000,0x07E0,0x07E0,0x07E0,0x0000,0x0000,0x0000},//b8
{0x07E0,0x0000,0x07E0,0x07E0,0x07E0,0x0000,0x0000,0x07E0},//b9
{0x07E0,0x0000,0x07E0,0x07E0,0x07E0,0x0000,0x07E0,0x0000},//bA
{0x07E0,0x0000,0x07E0,0x07E0,0x07E0,0x0000,0x07E0,0x07E0},//bB
{0x07E0,0x0000,0x07E0,0x07E0,0x07E0,0x07E0,0x0000,0x0000},//bC
{0x07E0,0x0000,0x07E0,0x07E0,0x07E0,0x07E0,0x0000,0x07E0},//bD
{0x07E0,0x0000,0x07E0,0x07E0,0x07E0,0x07E0,0x07E0,0x0000},//bE
{0x07E0,0x0000,0x07E0,0x07E0,0x07E0,0x07E0,0x07E0,0x07E0},//bF

{0x07E0,0x07E0,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000},//c0
{0x07E0,0x07E0,0x0000,0x0000,0x0000,0x0000,0x0000,0x07E0},//c1
{0x07E0,0x07E0,0x0000,0x0000,0x0000,0x0000,0x07E0,0x0000},//c2
{0x07E0,0x07E0,0x0000,0x0000,0x0000,0x0000,0x07E0,0x07E0},//c3
{0x07E0,0x07E0,0x0000,0x0000,0x0000,0x07E0,0x0000,0x0000},//c4
{0x07E0,0x07E0,0x0000,0x0000,0x0000,0x07E0,0x0000,0x07E0},//c5
{0x07E0,0x07E0,0x0000,0x0000,0x0000,0x07E0,0x07E0,0x0000},//c6
{0x07E0,0x07E0,0x0000,0x0000,0x0000,0x07E0,0x07E0,0x07E0},//c7

{0x07E0,0x07E0,0x0000,0x0000,0x07E0,0x0000,0x0000,0x0000},//c8
{0x07E0,0x07E0,0x0000,0x0000,0x07E0,0x0000,0x0000,0x07E0},//c9
{0x07E0,0x07E0,0x0000,0x0000,0x07E0,0x0000,0x07E0,0x0000},//cA
{0x07E0,0x07E0,0x0000,0x0000,0x07E0,0x0000,0x07E0,0x07E0},//cB
{0x07E0,0x07E0,0x0000,0x0000,0x07E0,0x07E0,0x0000,0x0000},//cC
{0x07E0,0x07E0,0x0000,0x0000,0x07E0,0x07E0,0x0000,0x07E0},//cD
{0x07E0,0x07E0,0x0000,0x0000,0x07E0,0x07E0,0x07E0,0x0000},//cE
{0x07E0,0x07E0,0x0000,0x0000,0x07E0,0x07E0,0x07E0,0x07E0},//cF


{0x07E0,0x07E0,0x0000,0x07E0,0x0000,0x0000,0x0000,0x0000},//d0
{0x07E0,0x07E0,0x0000,0x07E0,0x0000,0x0000,0x0000,0x07E0},//d1
{0x07E0,0x07E0,0x0000,0x07E0,0x0000,0x0000,0x07E0,0x0000},//d2
{0x07E0,0x07E0,0x0000,0x07E0,0x0000,0x0000,0x07E0,0x07E0},//d3
{0x07E0,0x07E0,0x0000,0x07E0,0x0000,0x07E0,0x0000,0x0000},//d4
{0x07E0,0x07E0,0x0000,0x07E0,0x0000,0x07E0,0x0000,0x07E0},//d5
{0x07E0,0x07E0,0x0000,0x07E0,0x0000,0x07E0,0x07E0,0x0000},//d6
{0x07E0,0x07E0,0x0000,0x07E0,0x0000,0x07E0,0x07E0,0x07E0},//d7

{0x07E0,0x07E0,0x0000,0x07E0,0x07E0,0x0000,0x0000,0x0000},//d8
{0x07E0,0x07E0,0x0000,0x07E0,0x07E0,0x0000,0x0000,0x07E0},//d9
{0x07E0,0x07E0,0x0000,0x07E0,0x07E0,0x0000,0x07E0,0x0000},//dA
{0x07E0,0x07E0,0x0000,0x07E0,0x07E0,0x0000,0x07E0,0x07E0},//dB
{0x07E0,0x07E0,0x0000,0x07E0,0x07E0,0x07E0,0x0000,0x0000},//dC
{0x07E0,0x07E0,0x0000,0x07E0,0x07E0,0x07E0,0x0000,0x07E0},//dD
{0x07E0,0x07E0,0x0000,0x07E0,0x07E0,0x07E0,0x07E0,0x0000},//dE
{0x07E0,0x07E0,0x0000,0x07E0,0x07E0,0x07E0,0x07E0,0x07E0},//dF

{0x07E0,0x07E0,0x07E0,0x0000,0x0000,0x0000,0x0000,0x0000},//e0
{0x07E0,0x07E0,0x07E0,0x0000,0x0000,0x0000,0x0000,0x07E0},//e1
{0x07E0,0x07E0,0x07E0,0x0000,0x0000,0x0000,0x07E0,0x0000},//e2
{0x07E0,0x07E0,0x07E0,0x0000,0x0000,0x0000,0x07E0,0x07E0},//e3
{0x07E0,0x07E0,0x07E0,0x0000,0x0000,0x07E0,0x0000,0x0000},//e4
{0x07E0,0x07E0,0x07E0,0x0000,0x0000,0x07E0,0x0000,0x07E0},//e5
{0x07E0,0x07E0,0x07E0,0x0000,0x0000,0x07E0,0x07E0,0x0000},//e6
{0x07E0,0x07E0,0x07E0,0x0000,0x0000,0x07E0,0x07E0,0x07E0},//e7

{0x07E0,0x07E0,0x07E0,0x0000,0x07E0,0x0000,0x0000,0x0000},//e8
{0x07E0,0x07E0,0x07E0,0x0000,0x07E0,0x0000,0x0000,0x07E0},//e9
{0x07E0,0x07E0,0x07E0,0x0000,0x07E0,0x0000,0x07E0,0x0000},//eA
{0x07E0,0x07E0,0x07E0,0x0000,0x07E0,0x0000,0x07E0,0x07E0},//eB
{0x07E0,0x07E0,0x07E0,0x0000,0x07E0,0x07E0,0x0000,0x0000},//eC
{0x07E0,0x07E0,0x07E0,0x0000,0x07E0,0x07E0,0x0000,0x07E0},//eD
{0x07E0,0x07E0,0x07E0,0x0000,0x07E0,0x07E0,0x07E0,0x0000},//eE
{0x07E0,0x07E0,0x07E0,0x0000,0x07E0,0x07E0,0x07E0,0x07E0},//eF

{0x07E0,0x07E0,0x07E0,0x07E0,0x0000,0x0000,0x0000,0x0000},//f0
{0x07E0,0x07E0,0x07E0,0x07E0,0x0000,0x0000,0x0000,0x07E0},//f1
{0x07E0,0x07E0,0x07E0,0x07E0,0x0000,0x0000,0x07E0,0x0000},//f2
{0x07E0,0x07E0,0x07E0,0x07E0,0x0000,0x0000,0x07E0,0x07E0},//f3
{0x07E0,0x07E0,0x07E0,0x07E0,0x0000,0x07E0,0x0000,0x0000},//f4
{0x07E0,0x07E0,0x07E0,0x07E0,0x0000,0x07E0,0x0000,0x07E0},//f5
{0x07E0,0x07E0,0x07E0,0x07E0,0x0000,0x07E0,0x07E0,0x0000},//f6
{0x07E0,0x07E0,0x07E0,0x07E0,0x0000,0x07E0,0x07E0,0x07E0},//f7

{0x07E0,0x07E0,0x07E0,0x07E0,0x07E0,0x0000,0x0000,0x0000},//f8
{0x07E0,0x07E0,0x07E0,0x07E0,0x07E0,0x0000,0x0000,0x07E0},//f9
{0x07E0,0x07E0,0x07E0,0x07E0,0x07E0,0x0000,0x07E0,0x0000},//fA
{0x07E0,0x07E0,0x07E0,0x07E0,0x07E0,0x0000,0x07E0,0x07E0},//fB
{0x07E0,0x07E0,0x07E0,0x07E0,0x07E0,0x07E0,0x0000,0x0000},//fC
{0x07E0,0x07E0,0x07E0,0x07E0,0x07E0,0x07E0,0x0000,0x07E0},//fD
{0x07E0,0x07E0,0x07E0,0x07E0,0x07E0,0x07E0,0x07E0,0x0000},//fE
{0x07E0,0x07E0,0x07E0,0x07E0,0x07E0,0x07E0,0x07E0,0x07E0}//fF
};

手工办这个表,复制粘贴花了好大个老劲。贡献出来!
一个字节的点阵数,就查表得到8个16位的色彩,这里0x0000是字符背景色,0X07E0是汉字颜色,绿色。不喜欢可以改这个256*8数组。
位操作是很耗时的,这就快多了。大概时间是原来的1/8吧。

显示汉字函数在原来的基础上修改。
void LCD_DisplayChinese(uint16_t x, uint16_t y, char *pText)
{
        uint16_t  i=0,index = 0, counter = 0;        // 计数变量
  uint16_t  HZnm;        // 汉字区位码
        uint8_t   disChar;        //字模的值
        uint16_t  Xaddress = x; //水平坐标

        //汉字区位码计算该字在库中的地址。16*12用24, 16*16用32
        HZnm = *pText;  //区码
        W25Qxx_TestAddr = (HZnm-0xB0)*32*94 + 32*94*15;
        
        HZnm = *(pText+1);        //位码
        W25Qxx_TestAddr += (HZnm-0xA1)*32;
        //取汉字点阵
         SPI_Status                 = SPI_W25Qxx_ReadBuffer(W25Qxx_ReadBuffer,W25Qxx_TestAddr,32);  //15啊 16薄
        
        //画点显示   
        //for(index = 0; index <LCD_CHFonts->Sizes; index++)
        for(index = 0; index <32; index++)
        {        
                //// 获取相应的字模
                disChar = W25Qxx_ReadBuffer[index];
               
                for(counter = 0; counter < 8; counter++)
                {
                                
                                //LCD_DrawPoint(Xaddress,y,LCD.Color);        //当前模值不为0时,使用画笔色绘点
                                        *(__IO uint16_t*)( LCD.LayerMemoryAdd + 2*(Xaddress + y*LCD_Width) ) = ZFS2YS[disChar][counter];

                        Xaddress++;  //水平坐标自加
                        
                        if( (Xaddress - x)==LCD_CHFonts->Width )         //        如果水平坐标达到了字符宽度,则退出当前循环
                        {                                                                                                                //        进入下一行的绘制
                                Xaddress = x;
                                y++;
                                break;
                        }
                }        
        }        
}


显示汉字效果与原来一样,快多了以空间换时间!


回复

使用道具 举报

5

主题

519

回帖

534

积分

金牌会员

积分
534
发表于 2022-7-25 08:49:11 | 显示全部楼层
取模软件大部分是8BIT字节的,有16BIT,就好了。
回复

使用道具 举报

8

主题

135

回帖

159

积分

初级会员

积分
159
发表于 2022-7-26 08:12:14 | 显示全部楼层
没看出会快很多,反而不方便。if (disChar & 0x01)不就是剩下了一个判断和移位么。多种颜色岂不是非常麻烦了。如果要在图片上显示好像你这样就不行。
回复

使用道具 举报

11

主题

28

回帖

61

积分

初级会员

积分
61
 楼主| 发表于 2022-7-26 17:29:18 | 显示全部楼层
有道理,大家看看有什么更好的办法?
回复

使用道具 举报

5

主题

165

回帖

180

积分

初级会员

积分
180
发表于 2022-7-27 10:25:36 | 显示全部楼层
第一层for循环里每次循环都只从flash读一个字节,如果先把整个字形的字模读到一个缓冲区内再进for循环,应该还能更快
或者更极端点,字模的绘制操作也搞成往一个缓冲区绘制,LCD写函数放到for循环完成之后,绘制完以后只调用一次LCD写函数写入整个缓冲区,甚至还能直接DMA传过去
回复

使用道具 举报

11

主题

28

回帖

61

积分

初级会员

积分
61
 楼主| 发表于 2022-7-27 19:25:29 | 显示全部楼层
SPI_W25Qxx_ReadBuffer(W25Qxx_ReadBuffer,W25Qxx_TestAddr,32);
从flash一次读出32字节(一个汉字)
我考虑过先写一个汉字的缓冲区,我这个显示区也在内存中,想想就不必要了
谢谢大家关注,讨论
回复

使用道具 举报

11

主题

28

回帖

61

积分

初级会员

积分
61
 楼主| 发表于 2022-7-27 19:27:40 | 显示全部楼层
我先前是每行处理显示,这样与接收冲突,现在改成本次接收到的所有行一起显示,就不会与接收冲突了。
回复

使用道具 举报

11

主题

28

回帖

61

积分

初级会员

积分
61
 楼主| 发表于 2022-7-27 19:31:26 | 显示全部楼层
            case 0x0A:      //回车换行结尾,说明要显示字符                             
                                         if((USART_RX_BUF[usart_zz-2]==0X0D) & (USART_RX_BUF[0] != 0XFF))
                                           {
                                                         if(USART_RX_BUF[0]>=0xf0)
                                                            {HZ_XSFS=(USART_RX_BUF[0] &0x0f)+0x30;                                                  
                                                             LCD_DisplayText(760,586,(char *)&HZ_XSFS);       
                                                             HZ_XSFS=USART_RX_BUF[0];        ////汉字显示方式设置 F0=黑底 F1=反与
                                                                        }
                                                                                                                                               
                                                                USART_RX_TIME = HAL_GetTick();        // //字符接收停止时间=获取 systick 当前时间,单位ms       
                                                                 接收中断中,有回车换行就取一个当前时间

if(((UART_HZ_Time- USART_RX_TIME) >=100)&(UART_HZ_Time>= USART_RX_TIME))        // //字符接收停止时间=获取 systick 当前时间,单位ms               
                 {
                         LCD_DisplayNumber( 650, 586, (UART_HZ_Time- USART_RX_TIME),8);        // 显示整数
                         USART_RX_BUF[usart_zz]        =0x00;
                         usart_zz=0;  
                         USART_RX_TIME=0x7FFFFFFF; //设置成大数字,避免重复显示。
                         LCD_DisplayTextHZ(0,0,(char *)USART_RX_BUF);//显示字符串
                         LED1_OFF;
                 }
主程序中判断超时,就显示处理。
回复

使用道具 举报

8

主题

135

回帖

159

积分

初级会员

积分
159
发表于 2022-7-28 11:18:01 | 显示全部楼层
你是想上位机发什么, 然后显示什么吗? 建一个缓冲区, 接收和读取分开。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-5-4 03:18 , Processed in 0.254342 second(s), 24 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表