硬件基础
正点原子stm32f407探索者开发板
屏幕使用正点原子4.3寸TFTLCD
stm32f407开发使用标准库
本文参考正点原子例程和NT35510的data sheet,尽量使用最少的代码点亮屏幕
一、 LCD功能函数
lcd头文件
#ifndef __LCD_H
#define __LCD_H
#include "stm32f4xx.h"
//屏幕属性
//480X800 16位真彩
//地址引脚A6接屏幕RS,0:命令,1数据
//0x6C000000为FSMC_Bank1_NORSRAM4的起始地址
//FMSC接口接8位外设时使用地址线[25:0]
//FMSC接口接16位外设时使用地址线[24:0]
//原子使用地址
//0X7E = 0111_1110 命令
//0X80 = 1000_0000 数据
//本人使用
//0X00 = 0000_0000 命令
//0X80 = 1000_0000 数据
#define LCD_CMD *((uint16_t*)0x6C000000)
#define LCD_DATA *((uint16_t*)0x6C000080)
//画笔颜色
#define WHITE 0xFFFF
#define BLACK 0x0000
#define BLUE 0x001F
#define BRED 0XF81F
#define GRED 0XFFE0
#define GBLUE 0X07FF
#define RED 0xF800
#define MAGENTA 0xF81F
#define GREEN 0x07E0
#define CYAN 0x7FFF
#define YELLOW 0xFFE0
#define BROWN 0XBC40 //棕色
#define BRRED 0XFC07 //棕红色
#define GRAY 0X8430 //灰色
typedef struct
{
uint16_t width; //LCD 宽度
uint16_t height; //LCD 高度
uint16_t id; //LCD ID
uint16_t dir; //横屏还是竖屏控制:0,竖屏;1,横屏。
}LcdDevice;
void LCD_Init(void);
//读写寄存器
void LCD_WriteReg(uint16_t LCD_Reg,uint16_t LCD_RegValue);
uint16_t LCD_ReadReg(uint16_t LCD_Reg);
void LCD_Display_Dir(uint8_t dir);
void LCD_Clear(uint16_t color);