📄 ili9320.c
字号:
//==================================================================
//文件: ili9320.c
//修改: 李光祥 chenfengmcu@126.com
//日期: 2008/10/9
//描述:
//
//版本历史记录 V1.0
//==================================================================
#include "44b.h"
#include "ili9320.h"
#include "TargetLib.h"
#include "LCD.h"
#include "os_cpu.h"
//------------------------------------------------------------------
// 函数名 : void LCD_Delay(INT32U time)
// 输入 : 延时time*100us
// 输出 : Null
// 全局变量: Null
// 功能描述: 延时
//------------------------------------------------------------------
void LCD_Delay(INT32U time)
{
Delay(time);
}
//------------------------------------------------------------------
// 函数名 : void LCD_SetReg(INT8U addr,INT16U dat)
// 输入 : addr :寄存器地址 dat :写入的数据
// 输出 : Null
// 全局变量: Null
// 功能描述: 设寄存器值
//------------------------------------------------------------------
void LCD_SetReg(INT8U addr,INT16U dat)
{
LCD_REG =addr;
LCD_DAT =dat;
}
//------------------------------------------------------------------
// 函数名 : INT16U LCD_GetReg(INT8U addr)
// 输入 : addr :寄存器地址
// 输出 : 寄存器内容
// 全局变量: Null
// 功能描述: 获得寄存器值
//------------------------------------------------------------------
INT16U LCD_GetReg(INT8U addr)
{
LCD_REG =addr;
return LCD_DAT;
}
//------------------------------------------------------------------
// 函数名 : void LCD_Init(void)
// 输入 : Null
// 输出 : Null
// 全局变量: Null
// 功能描述: 初始化LCD
//------------------------------------------------------------------
void LCD_Init9320(void)
{
LCD_RESET_H;
LCD_Delay(1);
LCD_RESET_L;
LCD_Delay(15); //>1ms
LCD_RESET_H;
LCD_Delay(150); //>10ms
LCD_SetReg(0xE5,0x8000);
LCD_SetReg(0x00,0x0001);
LCD_SetReg(0x2B,0x0010);
LCD_SetReg(0x01,0x0100);
LCD_SetReg(0x02,0x0700);
LCD_SetReg(0x03,0x1230);
LCD_SetReg(0x04,0x0000);
LCD_SetReg(0x08,0x0202);
LCD_SetReg(0x09,0x0000);
LCD_SetReg(0x0A,0x0000);
LCD_SetReg(0x0C,0x0000);
LCD_SetReg(0x0D,0x0000);
LCD_SetReg(0x0F,0x0000);
LCD_SetReg(0x50,0x0000);
LCD_SetReg(0x51,0x00EF);
LCD_SetReg(0x52,0x0000);
LCD_SetReg(0x53,0x013F);
LCD_SetReg(0x60,0x2700);
LCD_SetReg(0x61,0x0001);
LCD_SetReg(0x6A,0x0000);
LCD_SetReg(0x80,0x0000);
LCD_SetReg(0x81,0x0000);
LCD_SetReg(0x82,0x0000);
LCD_SetReg(0x83,0x0000);
LCD_SetReg(0x84,0x0000);
LCD_SetReg(0x85,0x0000);
LCD_SetReg(0x90,0x0010);
LCD_SetReg(0x92,0x0000);
LCD_SetReg(0x93,0x0003);
LCD_SetReg(0x95,0x0110);
LCD_SetReg(0x97,0x0000);
LCD_SetReg(0x98,0x0000);
LCD_SetReg(0x10,0x0000);
LCD_SetReg(0x11,0x0000);
LCD_SetReg(0x12,0x0000);
LCD_SetReg(0x13,0x0000);
LCD_Delay(2000); //>200ms
LCD_SetReg(0x10,0x17B0);
LCD_SetReg(0x11,0x0004);
LCD_Delay(550); //>50ms
LCD_SetReg(0x12,0x013E);
LCD_Delay(550); //>50ms
LCD_SetReg(0x13,0x1F00);
LCD_SetReg(0x29,0x000F);
LCD_Delay(550); //>50ms
LCD_SetReg(0x20,0x0000);
LCD_SetReg(0x21,0x0000);
LCD_SetReg(0x30,0x0204);
LCD_SetReg(0x31,0x0001);
LCD_SetReg(0x32,0x0000);
LCD_SetReg(0x35,0x0206);
LCD_SetReg(0x36,0x0600);
LCD_SetReg(0x37,0x0500);
LCD_SetReg(0x38,0x0505);
LCD_SetReg(0x39,0x0407);
LCD_SetReg(0x3C,0x0500);
LCD_SetReg(0x3D,0x0503);
LCD_SetReg(0x07,0x0173);
}
//------------------------------------------------------------------
// 函数名 : void LCD_SetPoint(INT16U x,INT16U y,INT16U color)
// 输入 : x,y 坐标 color 色值
// 输出 : Null
// 全局变量: Null
// 功能描述: 设置点
//------------------------------------------------------------------
void LCD_SetPoint(INT16U x,INT16U y,INT16U color)
{
LCD_REG =0x20;
LCD_DAT =x;
LCD_REG =0x21;
LCD_DAT =y;
LCD_REG =0x22;
LCD_DAT =color;
}
//------------------------------------------------------------------
// 函数名 : INT16U LCD_GetPoint(INT16U x,INT16U y)
// 输入 : x,y 坐标
// 输出 : 色值
// 全局变量: Null
// 功能描述: 得到点
//------------------------------------------------------------------
INT16U LCD_GetPoint(INT16U x,INT16U y)
{
LCD_REG =0x20;
LCD_DAT =x;
LCD_REG =0x21;
LCD_DAT =y;
LCD_REG =0x22;
return LCD_REG;
}
//==================================================================
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -