sdcc编译51单片机驱动ili9488屏幕的程序,定义字体
typedef struct
{
unsigned char Index[2];
char Msk[128];
} typFNT_GB32;
const typFNT_GB32 tfont32[] =
{
“字”,0x..............
};
这种数组编译时报错
inc/font.h:210: error 69: struct/union/array 'tfont16': initialization needs curly braces
加上花括号试试看,根据提示信息。
该回答引用GPTᴼᴾᴱᴺᴬᴵ
该错误提示的含义是,在初始化结构体数组tfont32时需要使用花括号来明确初始化的内容,而当前代码使用了不正确的语法。
正确的初始化结构体数组的语法应该是:
const typFNT_GB32 tfont32[] =
{
{'字', {0x....}}, // 第一个元素的初始化
{'字', {0x....}}, // 第二个元素的初始化
// 其他元素的初始化
};
其中,每个元素都用花括号括起来,第一个元素的Index成员用单引号括起来,Msk成员的初始化则使用了大括号括起来的十六进制数值。
·
在这里,我使用了大括号的形式表示了十六进制数值,你需要根据具体的字体库来修改Msk成员的值,确保它们正确地表示了相应字符的点阵数据。
·
需要注意的是,在使用SDCC编译器时,需要对结构体进行对齐操作。可以使用如下语句来实现:
#pragma pack(1)
这样可以确保结构体中的成员按照定义的方式进行排列,避免出现不必要的填充。在结构体定义之后,可以使用如下语句来取消对齐操作:
#pragma pack()
希望这些信息可以帮助你解决问题。