【SPI480272高速工业液晶屏试用体验】官方资料分享&解析代码&刷屏
SPI480272屏幕用的是半双工SPI总线(不含触摸的情况下),传输指令和数据都是标准的SPI时序。液晶屏的SPI时序可以与电平模拟SPI或者硬件SPI信号进行通信。一般而言,带有硬件SPI总线的单片机中都有一个发送数据的函数,这个函数是遵循标准的SPI通信时序的:单片机为主机,CLK线出现上升沿时DO线传递一位数据,函数执行一次,CLK就会出现八个上升沿,也就是DO可以传递八位数据,这八位数据传输到从机就合成了一个字节的数据,单片机的硬件SPI时序我们了解了,我们再来了解一下液晶屏的SPI时序:液晶屏作为从机,CLK线为输入状态,被动接收单片机(主机)的CLK线的信号,主从两个CLK线信号握手成功即为同步状态,可以进行数据传输。液晶屏有一套自己的游戏规则:当CS保持为低的过程中持续出现8个CLK上升沿时,传输信息为命令;而CS保持为低的过程中持续出现16个CLK上升沿时,传输信息则为数据;当CS保持为低的过程中持续出现除8、16个以外的CLK上升沿时,传输信息无效。那么我们写代码的时候就很明确了:当片选线CS从拉低到拉高的过程中,出现一个硬件SPI传输函数就是发送命令(寄存器号);出现两个两个硬件SPI函数就发送寄存器数据了。
void LCD_send_command(unsigned char out_cmd)
{
TFT_CS=0;
STC_SPI_Send(out_cmd);
TFT_CS=1;
}
void LCD_send_data(unsigned int out_data)
{
TFT_CS=0;
STC_SPI_Send(out_data>>8);
STC_SPI_Send(out_data);
TFT_CS=1;
}
了解了液晶屏工作方式之后,我们就可以让它乖乖听我们的命令了。首先查看液晶屏的指令集:
我们把玩液晶屏,首先当然是从刷屏开始,刷屏所需要的指令为
1.设置液晶屏刷屏的窗口,即设置X起始寄存器、X终点寄存器、Y起始寄存器、Y终点寄存器四个寄存器的值,确定有效范围,这里我们设置为全屏,即X取0到479,Y取0到271;
2.设置颜色寄存器,确定要刷屏的颜色;
3.设置刷屏指令;
4.设置背光亮度。
至此,刷屏工作完成,看看效果吧:
上传工程文件:
上传技术手册: