标题:
Stm32 ILI9431 3寸触摸屏源程序与资料下载
[打印本页]
作者:
badmaker
时间:
2019-1-9 18:32
标题:
Stm32 ILI9431 3寸触摸屏源程序与资料下载
一、用STM32控制TFTLCD显示的编程方法,在编程驱动TFTLCD液晶显示器之前,我们先熟悉以下概念:
1、色彩深度,这是一个与TFTLCD显存对应的概念;所谓色彩深度就是每个像素点需要多少位的RGB
数据表示该点的颜色信息。注意,不同的TFTLCD显示器的RGB的对应关系不一样,这个可以在LCD
控制芯片手册中找到答案。
例: 某LCD显示支持8、16、24位RGB,这些位数是指该像素点颜色由8、16、24位RGB构成,但是
R\G\B三种颜色各占的位数可以查看数据手册。
2、TFTLCD的操作分为两种:
A、对控制寄存器的读写操作(即程序员将要操作LCD显存寄存器的地址设置成可读或者可写)。
B、对显存寄存器的读写操作(即读写LCD显存寄存器)。
3、TFTLCD有一个索引寄存器,对控制寄存器操作前,需要对索引寄存器进行定入操作,用以指明
寄存器读写是针对那个寄存器的,具体操作步骤如下:
RS为低电平状态下,写入两个字节的数据,第一个字节为零,第二个字节为寄存器索引值。
RS为高电平状态下,读取两个字节数据,第一个字节为高八位,第二个字节为低八位。
0.png
(53.15 KB, 下载次数: 26)
下载附件
2019-1-10 02:09 上传
程序功能介绍:上电后屏幕显示40*40小图片若干和一些字符。按S4按键会显示纯色,每按一次颜色变一次,红绿蓝交替显示.
单片机源程序如下:
#include "led.h"
#include "delay.h"
#include "key.h"
#include "sys.h"
#include "lcd.h"
#include "usart.h"
#include "24cxx.h"
#include "flash.h"
#include "flash.h"
#include "spi.h"
u8 state=0;
void beepms(u16 va);
void xianshi(void);//显示信息
void refshow(void);//刷新显示
void Load_Drow_Dialog(void)
{
LCD_Clear(WHITE);//清屏
POINT_COLOR=BLUE;//设置字体为蓝色
LCD_ShowString(lcddev.width-24,0,200,16,16,"RST");//显示清屏区域
POINT_COLOR=RED;//设置画笔蓝色
}
void xianshi()//显示信息
{
BACK_COLOR=WHITE;
POINT_COLOR=RED;
//显示32*32汉字
showhanzi32(0,0,0); //淘
showhanzi32(40,0,1); //晶
showhanzi32(80,0,2); //驰
//显示16*16汉字
showhanzi16(0,35,0); //专
showhanzi16(20,35,1); //注
showhanzi16(40,35,2); //显
showhanzi16(60,35,3); //示
showhanzi16(80,35,4); //方
showhanzi16(100,35,5); //案
LCD_ShowString(0,55,200,16,16,"2.2 TFT SPI 240*320");
}
void showqq()
{
u16 x,y;
x=0;
y=75;
while(y<lcddev.height-39)
{
x=0;
while(x<lcddev.width-39)
{
showimage(x,y);
x+=40;
}
y+=40;
}
}
void refshow(void) //刷新显示
{
switch(state)
{
case 0:
LCD_Clear(WHITE);
xianshi();
showqq();
break;
case 1:
LCD_Clear(BLACK);
break;
case 2:
LCD_Clear(RED);
break;
case 3:
LCD_Clear(GREEN);
break;
case 4:
LCD_Clear(BLUE);
break;
}
}
void jiance(u8 key) //检测按键
{
if(key==2)
{
state++;
if(state==5)
{
state=0;
}
refshow();//刷新显示
}
}
void beepms(u16 va)
{
beep=1;
delay_ms(va);
beep=0;
}
int main(void)
{
u16 i=0;
u8 key=0;
delay_init(); //延时函数初始化
NVIC_Configuration(); //设置NVIC中断分组2:2位抢占优先级,2位响应优先级
uart_init(9600); //串口初始化为9600
LED_Init(); //LED端口初始化
SPI_Flash_Init();//初始化Flash;
KEY_Init(); //按键初始化
SPI1_Init(); //SPI1初始化
LCD_Init();
POINT_COLOR=RED;//设置字体为红色
xianshi(); //显示信息
showqq(); //显示QQ
while(1)
{
key=KEY_Scan(0);//扫描按键
jiance(key);//检测按键
i++;
if(i==65000)
{
i=0;
LED0=!LED0;
}
}
}
复制代码
所有资料51hei提供下载:
3寸触摸屏.7z
(4.04 MB, 下载次数: 99)
2019-1-10 02:11 上传
点击文件名下载附件
Stm32程序
下载积分: 黑币 -5
作者:
wenbin168
时间:
2022-8-26 01:40
非常感谢 刚进了9431屏
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1