// 每一行由 2 个字节(16位)组成,1代表亮,0代表灭0x00, 0x00, // 00000000 000000000x18, 0x18, // 00011000 000110000x24, 0x24, // 00100100 001001000x42, 0x42, // 01000010 010000100x7E, 0x7E, // 01111110 01111110...
显示流程
第一步:获取编码:读取字符串中字符的 ASCII 码。
第二步:查表:根据 ASCII 码在字模数组中找到对应的点阵数据。
第三步:描点:遍历点阵数据的每一个 bit,如果是 1,则在 LCD 对应的 (x, y) 坐标上绘制前景色;如果是 0,则跳过(或绘制背景色)。
宽高比例约定
内存占用计算公式
实战举例
-
在目录 components/BSP/LCD下创建lcdfont.h文件。 -
修改components/BSP/LCD目录下的lcd.h和lcd.c文件,在lcd.h文件中添加如下代码,lcd.c因内容太多不在这里贴源代码,要在源代码中直接查看代码:
void lcd_draw_point(uint16_t x, uint16_t y, uint16_t color);void lcd_show_char(uint16_t x, uint16_t y, char chr, uint8_t size, uint8_t mode, uint16_t color);void lcd_show_string(uint16_t x, uint16_t y, uint16_t width, uint16_t height, uint8_t size, char *p, uint16_t color);
-
修改main.c代码,增加代码:
lcd_show_string(10, 10, 240, 32, 32, "Hello World", RED);
-
完成代码编写后,编译并下载代码到开发板,就可以看到开发板上显示如下图样子。
-
代码地址: https://github.com/bkssxzdwy/esp32s3_samples/tree/main/examples/mcu_lcd_ascii_project