一、工程配置
笔记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_