STM32学习笔记02:LCD液晶应用程序

本文介绍了STM32微控制器上实现LCD液晶显示的步骤,包括工程配置、宏定义管脚状态、初始化LCD、创建取模数组以及测试程序。重点讲解了128*64点阵液晶的16*16汉字取模数组的建立,为后续液晶显示应用奠定了基础。
摘要由CSDN通过智能技术生成

一、工程配置

      笔记01已经建立好了工程,工程目录如下图:(注:建立好的基础工程中是没有LCD1286425A这个组的,这个组是后面添加的LCD液晶应用程序)。

      打开工程以后应对工程进行配置,在菜单里Project中点击Options,进行如下配置:

      ①在General Options中选择目标设备为ST STM32F407ZE芯片,如下图所示:

      ②若编译时提示某些头文件无法找到,应在C/C++ Compiler的Preprocessor预处理器中添加包含对应头文件的目录,如下图所示:(注:在预处理器中添加的头文件目录建议修改为相对路径,这样当工程拷贝到其他地方使用时也能找到对应的头文件

      ③在Debugger的Setup中选择Driver模式为J-Link/J-Tracef下载方式。

      工程配置好以后进行编译,在Build Output输出信息框无任何errors,接下来可向工程中添加应用程序文件。

二、添加应用程序

      1、在应用程序头文件中宏定义管脚和管脚的reset和set状态。(控制引脚设置即对应到之前将GPIO口默认拉高或者拉低)

/******************************************
 * file    : LCD1286425A.c
 * brief   : 
 * owner   : 
 * version : 1.0
 * date    : 2018-05-03
******************************************/

#ifndef LCD1286425A_H
#define LCD1286425A_H

#include "stm32f4xx_hal.h"

/* 引脚定义 */
#define  LCD_CS_PIN           GPIO_PIN_0
#define  LCD_CS_PORT          GPIOC
//#define  LCD_CS_APB2Periph    RCC_APB2Periph_GPIOC

#define  LCD_RES_PIN          GPIO_PIN_1
#define  LCD_RES_PORT         GPIOC
//#define  LCD_RES_APB2Periph   RCC_APB2Periph_GPIOC

#define  LCD_A0_PIN           GPIO_PIN_2
#define  LCD_A0_PORT          GPIOC
//#define  LCD_A0_APB2Periph    RCC_APB2Periph_GPIOC

#define  LCD_WR_PIN           GPIO_PIN_3
#define  LCD_WR_PORT          GPIOC
//#define  LCD_WR_APB2Periph    RCC_APB2Periph_GPIOC

#define  LCD_RD_PIN           GPIO_PIN_4
#define  LCD_RD_PORT          GPIOC
//#define  LCD_RD_APB2Periph    RCC_APB2Periph_GPIOC

#define  LCD_DATA_PORT        GPIOD
#define  LCD_DATA_APB2Periph  RCC_APB2Periph_GPIOD

#define  LCD_C86_PIN          GPIO_PIN_5
#define  LCD_C86_PORT         GPIOC
//#define  LCD_C86_APB2Periph   RCC_APB2Periph_GPIOC

#define  LCD_PS_PIN           GPIO_PIN_6
#define  LCD_PS_PORT          GPIOC
//#define  LCD_PS_APB2Periph    RCC_APB2Periph_GPIOC

/* 控制引脚设置 */
#define  lcd_set_cs()     HAL_GPIO_WritePin(LCD_CS_PORT, LCD_CS_PIN, GPIO_PIN_SET)
#define  lcd_reset_cs()   HAL_GPIO_WritePin(LCD_CS_PORT, LCD_CS_PIN, GPIO_PIN_RESET)

#define  lcd_set_res()    HAL_GPIO_WritePin(LCD_RES_PORT, LCD_RES_PIN, GPIO_PIN_SET)
#define  lcd_reset_res()  HAL_GPIO_WritePin(LCD_RES_PORT, LCD_RES_PIN, GPIO_PIN_RESET)

#define  lcd_set_a0()     HAL_GPIO_WritePin(LCD_A0_PORT, LCD_A0_PIN, GPIO_PIN_SET)
#define  lcd_reset_a0()   HAL_GPIO_WritePin(LCD_A0_PORT, LCD_A0_PIN, GPIO_PIN_RESET)

#define  lcd_set_wr()     HAL_GPIO_WritePin(LCD_WR_PORT, LCD_WR_PIN, GPIO_PIN_SET)
#define  lcd_reset_wr()   HAL_GPIO_WritePin(LCD_WR_PORT, LCD_WR_PIN, GPIO_PIN_RESET)

#define  lcd_set_rd()     HAL_GPIO_WritePin(LCD_RD_PORT, LCD_RD_PIN, GPIO_PIN_SET)
#define  lcd_reset_rd()   HAL_GPIO_WritePin(LCD_RD_PORT, LCD_RD_PIN, GPIO_PIN_RESET)

#define  lcd_set_c86()    HAL_GPIO_WritePin(LCD_C86_PORT, LCD_C86_PIN, GPIO_PIN_SET)
#define  lcd_reset_c86()  HAL_GPIO_WritePin(LCD_C86_PORT, LCD_C86_PIN, GPIO_PIN_RESET)

#define  lcd_set_
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值