📄 ili932x_io.c
字号:
#include "..\main\include.h"
//#include "include.h"
#define Bank1_LCD_DATA ((u32)0x60020000) //disp Data ADDR
#define Bank1_LCD_CMD ((u32)0x60000000) //disp Reg ADDR
/******************************************
函数名:LCD写命令函数
功能:向LCD指定位置写入应有命令或数据
入口参数:Index 要寻址的寄存器地址
par 写入的数据或命令值
返回值:无
******************************************/
//带参数的命令写入
void LCD_WR_CmdPar(u16 Index, u16 par)
/*
{
CS_TFT_L();
RS_TFT_L();
//RD_TFT_H();
DataToWrite(Index);
WR_TFT_L();
WR_TFT_H();
RS_TFT_H();
//----------------------
DataToWrite(par);
WR_TFT_L();
WR_TFT_H();
CS_TFT_H();
}
*/
{
*(vu16 *) (Bank1_LCD_CMD)= Index;
*(vu16 *) (Bank1_LCD_DATA)= par;
}
//不带参数的命令写入
void LCD_WR_Cmd(u16 cmd)
/*
{
CS_TFT_L();
RS_TFT_L();
DataToWrite(cmd);
WR_TFT_L();
WR_TFT_H();
RS_TFT_H();
CS_TFT_H();
}
*/
{
*(vu16 *) (Bank1_LCD_CMD)= cmd;
}
void LCD_WR_DATA(u16 par)
/*
{
CS_TFT_L();
DataToWrite(par);
WR_TFT_L();
WR_TFT_H();
CS_TFT_H();
}
*/
{
*(vu16 *) (Bank1_LCD_DATA)= par;
}
u16 LCD_RD_DATA(void)
{
u16 temp=0;
temp=*(vu16 *) (Bank1_LCD_DATA); //虚读一次
temp=*(vu16 *) (Bank1_LCD_DATA); //
return(temp);
}
void LCD_SetBox(u16 x, u16 y, u16 Width, u16 Height)
{
LCD_WR_CmdPar(0x20, x);//起始X坐标
LCD_WR_CmdPar(0x21, y);//起始Y坐标
LCD_WR_CmdPar(0x0050, x);//水平 GRAM起始位置
LCD_WR_CmdPar(0x0051, x+Width-1);//水平GRAM终止位置
LCD_WR_CmdPar(0x0052, y);//垂直GRAM起始位置
LCD_WR_CmdPar(0x0053, y+Height-1);//垂直GRAM终止位置
}
//读取LCD上 1个像素的颜色值
u16 LCD_ReadPixel(u16 x, u16 y)
{u16 temp;
LCD_WR_CmdPar(0x20, x);
LCD_WR_CmdPar(0x21, y);
LCD_WR_Cmd(0x0022);
temp=LCD_RD_DATA();
return(temp);
}
//画1个像素
void DrawPixel(u16 x, u16 y, u16 Color)
{
LCD_WR_CmdPar(0x20, x);//起始X坐标
LCD_WR_CmdPar(0x21, y);//起始Y坐标
//[下面代码,部分TFT需要,部分可以不用
LCD_WR_CmdPar(0x0050, x);//水平 GRAM起始位置
LCD_WR_CmdPar(0x0051, x);//水平GRAM终止位置
LCD_WR_CmdPar(0x0052, y);//垂直GRAM起始位置
LCD_WR_CmdPar(0x0053, y);//垂直GRAM终止位置
//-----------------------------------]
LCD_WR_Cmd(0x0022);//开始读/写
LCD_WR_DATA(Color);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -