LCD12864串口模式操作
非转载,仅为个人经验记录。如需转载请注明出处;若有侵权,请管理告知删帖。
- 准备工作
a、硬件及文档
- LCD12864(控制器型号ST7920);
- STM32F103RCT6核心板;
- 杜邦线若干;
- STM32F1标准固件库V3.5;
- ST7920中文、英文版手册;
b、开发环境
- MDK V5.0
c、硬件连接
LCD16284 ----------------> STM32F103RCT6核心板
GND -------------------------> GND
VCC -------------------------> 5V
V0 自己接一个5Ω可调电阻到LCD的Vout
RS ---------------------------> GPIOA_Pin0这几根线参考lcd12864头文件
EN ---------------------------> GPIOA_Pin1
RW ---------------------------> GPIOA_Pin2
- 代码
usr_lcd12864.h
#ifndef _USR_LCD12864_H
#define _USR_LCD12864_H
#include <stdint.h>
// 引脚及对应连接
// LCD -> STM32F103RCT6
// CS -> GPIOA_Pin0
// SCL -> GPIOA_Pin1
// SDA -> GPIOA_Pin2
#define LCD12864_CS_PIN GPIO_Pin_0
#define LCD12864_CS_PORT GPIOA
#define LCD12864_CS_RCC RCC_APB2Periph_GPIOA
#define LCD12864_SCL_PIN GPIO_Pin_1
#define LCD12864_SCL_PORT GPIOA
#define LCD12864_SCL_RCC RCC_APB2Periph_GPIOA
#define LCD12864_SDA_PIN GPIO_Pin_2
#define LCD12864_SDA_PORT GPIOA
#define LCD12864_SDA_RCC RCC_APB2Periph_GPIOA
// 指令预览
#define DISPLAYCLEAR 0x01
#define RETURNHOME 0x02
#define ENTRY_MODE 0x04
#define DISPLAY_CONTROL 0x08
#define CURSOR_DISPLAY 0x10
#define FUNCTION_SET 0x20
#define CGRAM_ADDR 0x40
#define DDRAM_ADDR 0x80
#define STANDBY_MODE 0x01
#define SCROLL_CGRAM_ADDR 0x02
#define REVERSE 0x04
#define EXTENDED_FUNCTION 0x20
#define SCROLL_ADDR 0x40
#define GDRAM_ADDR 0x80
// 引脚操作声明
#define CS_SET() LCD12864_CS_PORT->BSRR=LCD12864_CS_PIN
#define CS_RESET() LCD12864_CS_PORT->BRR=LCD12864_CS_PIN
#define SCL_SET() LCD12864_SCL_PORT->BSRR=LCD12864_SCL_PIN
#define