如果按照上面截图里AI生成的那些代码,即便硬件I2C调试通过,大概率显示也不会成功
首先,根据注释的说明,显示汉字的函数 ShowHZ16 是按照【列行式】的顺序进行显示的,
即 先在第一个page显示前16个数据,然后再下面一个page显示后16个数据
而按照生成的字库数组的说明,“横向取模,每行2字节”,说明是按照【逐行式】的顺序进行取模的
因此显示出来的必然是乱码。
其次,通过对比,字库数组里的那些数据,既不是逐行式取模的,也不是列行式取模的
比如“芯”这个字
按照函数 ShowHZ16 说明的顺序,进行列行式取模,低位优先。得到的结果是
0x00,0x04,0x04,0x04,0x04,0x1F,0x04,0x24,
0x44,0x84,0x04,0x1F,0x04,0x04,0x04,0x04,
0x00,0x10,0x08,0x06,0x00,0x00,0x3F,0x40,
0x40,0x40,0x40,0x40,0x70,0x01,0x02,0x0C,
而按照字库数组说明的顺序,进行逐行式取模
高位优先,结果是
0x04,0x10,0x04,0x10,0x7F,0xFF,0x04,0x10,
0x04,0x10,0x01,0x00,0x00,0x80,0x00,0x40,
0x02,0x04,0x12,0x02,0x12,0x01,0x22,0x01,
0x42,0x08,0x02,0x08,0x01,0xF8,0x00,0x00,
低位优先,结果是
0x20,0x08,0x20,0x08,0xFE,0xFF,0x20,0x08,
0x20,0x08,0x80,0x00,0x00,0x01,0x00,0x02,
0x40,0x20,0x48,0x40,0x48,0x80,0x44,0x80,
0x42,0x10,0x40,0x10,0x80,0x1F,0x00,0x00,
而截图里的数据却是
0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x04,
0x10,0x04,0x08,0x08,0x08,0x08,0x04,0x10,
0x04,0x10,0x02,0x20,0x01,0x40,0x02,0x20,
0x04,0x10,0x18,0x0C,0x00,0x00,0x00,0x00,
使用STC文字取模工具的反查功能,对这组数据进行查看,结果也确实不是“芯”这个字(不过图案还挺可爱)
期待楼主展示调试到成功显示的过程~~
|