STM32 LCD12864 AIP31020 基础指令集 调试显示字符
求点赞谢谢啦ovo 关注就太感激啦! 歇歇支持啦
下一章写关于LCD12864实现绘制图像功能。
引言
在嵌入式开发中,LCD 显示屏广泛用于图形界面和文字显示。今天,我们来介绍如何用 STM32 微控制器驱动一个常见的 128x64 分辨率的 LCD 显示屏(LCD12864)。LCD12864 采用串行接口,并使用基本的命令和数据通信方式。本文将详细解析如何在 STM32 环境中驱动 LCD12864,包括引脚配置、命令发送、以及显示数据的具体实现。
LCD12864 模块简介
LCD12864 是一种字符型和图形型显示屏,支持 128x64 的显示分辨率。它使用 3 根主要控制引脚:
- CS (Chip Select):选择 LCD 模块。
- SID (Serial Data):串行数据输入线,负责传送数据。
- CLK (Serial Clock):串行时钟线,用于同步数据传输。
1. LCD 显示模式
LCD12864 支持基本指令集和扩展指令集,可以进行文字显示,也可以通过扩展指令绘制图形。通过串行通信传送的每个字节需要分为 3 个数据包进行传输,且有特定的时序要求。
具体参考说明书,设置在h文件中有说明
2. STM32 GPIO 初始化
在 STM32 微控制器中,我们需要对控制 LCD 的 GPIO 引脚进行初始化。以 STM32F1xx 为例,本次我以
//PA5 CS
//PA6 SID
//PA7 SCLK
宏定义如下
#define LCD_CS_GPIO_PIN GPIO_PIN_5 // PA5 - Chip Select
#define LCD_SID_GPIO_PIN GPIO_PIN_6 // PA6 - Serial Data (MOSI)
#define LCD_CLK_GPIO_PIN GPIO_PIN_7 // PA7 - Serial Clock
#define LCD_GPIO_PORT GPIOA
/* 12864使用的引脚定义,CS:PB13 CLK:PB15, SID:PB14 */
#define LCD_CS(a) HAL_GPIO_WritePin(LCD_GPIO_PORT, LCD_CS_GPIO_PIN, (a) ? GPIO_PIN_SET : GPIO_PIN_RESET)
#define LCD_CLK(a) HAL_GPIO_WritePin(LCD_GPIO_PORT, LCD_CLK_GPIO_PIN, (a) ? GPIO_PIN_SET : GPIO_PIN_RESET)
#define LCD_SID(a) HAL_GPIO_WritePin(LCD_GPIO_PORT, LCD_SID_GPIO_PIN, (a) ? GPIO_PIN_SET : GPIO_PIN_RESET)
/* 功能设置指令 */
#define LCD_FUNCTION_SET_BASIC 0x30 // 8位接口,基本指令集 (DL=1, RE=0) 0011 0000
#define LCD_FUNCTION_SET_EXTEND 0x34 // 8位接口,扩展指令集 (DL=1, RE=1) 0011 0100
#define LCD_FUNCTION_SET_DRAWPIC 0x36 // 拓展指令集下打开绘画显示
/* 显示控制指令 */
#define LCD_DISPLAY_OFF 0x08 // 关闭整体显示 (D=0, C=0, B=0) 0000 1000
#define LCD_DISPL