国产毛片a精品毛-国产毛片黄片-国产毛片久久国产-国产毛片久久精品-青娱乐极品在线-青娱乐精品
電子工程網
標題:
TFT圖片顯示
[打印本頁]
作者:
lixianglin
時間:
2012-3-17 15:18
標題:
TFT圖片顯示
#include "stm32f10x.h"
//#include "JPG.h"
#include "JPG1.h"
//#include "JPG2.h"
/*
控制線:RS-P3^5; WR-P3^6; RD-P3^7; CS-P1^0; REST-P1^1;
數據線: DB0-DB7依次連接P0^0-P0^7; DB8-DB15依次連接P2^0-P2^7;
觸摸功能連接方式:(不使用觸摸可不連接)
D_CLK-P1^2; D_CS-P1^3; D_DIN-P1^4; D_OUT-P1^6; D_PENIRQ-P1^7;
SD卡接線;(不使用觸摸可不連接)
SD_MISO-P31; SD_SCK-P32; SD_MOSI-P33; SD_CS-P34;
*/
#define LCD_RS_1 GPIO_SetBits(GPIOB,GPIO_Pin_0)
#define LCD_RS_0 GPIO_ResetBits(GPIOB,GPIO_Pin_0)
#define LCD_RW_1 GPIO_SetBits(GPIOB,GPIO_Pin_1)
#define LCD_RW_0 GPIO_ResetBits(GPIOB,GPIO_Pin_1)
#define LCD_RD_1 GPIO_SetBits(GPIOE,GPIO_Pin_2)
#define LCD_RD_0 GPIO_ResetBits(GPIOE,GPIO_Pin_2)
#define LCD_CS_1 GPIO_SetBits(GPIOE,GPIO_Pin_3)
#define LCD_CS_0 GPIO_ResetBits(GPIOE,GPIO_Pin_3)
#define LCD_REST_1 GPIO_SetBits(GPIOE,GPIO_Pin_4)
#define LCD_REST_0 GPIO_ResetBits(GPIOE,GPIO_Pin_4)
#define Data GPIOF->ODR
//#define LCD_DataPortH GPIOF->ODR
//#define LCD_DataPortL GPIOG->ODR
void delay_nus(unsigned long n);
void delay_nms(unsigned long count);
void RCC_Configuration(void);
void GPIO_Configuration(void);
/******************************************************
** 函數名:void Lcd_Write_Com( int DH)
** 描述 :TFT寫命令
** 輸入 : 無
** 輸出 :無
** 返回 :無
******************************************************/
void Lcd_Write_Com( uint16_t DH) //命令
{
LCD_RS_0;
LCD_CS_0;
Data=DH;
LCD_RW_0;
LCD_RW_1;
LCD_CS_1;
}
/******************************************************
** 函數名:void lcd_write_color(char hh,char ll)
** 描述 :TFT寫發送圖片的高8位數據與低8位數據的顏色位
** 輸入 : 無
** 輸出 :無
** 返回 :無
******************************************************/
void lcd_write_color(uint16_t hh) //發送顏色數據為提高速度高8位低8位分別傳遞
{
LCD_RS_1;
LCD_CS_0;
Data=hh;
LCD_RW_0;
LCD_RW_1;
LCD_CS_1;
}
/******************************************************
** 函數名:void Lcd_Write_Data(int DH)
** 描述 :TFT寫發送圖片的高8位數據與低8位數據
** 輸入 : 無
** 輸出 :無
** 返回 :無
******************************************************/
void Lcd_Write_Data(uint16_t DH) //數據
{
LCD_RS_1;
LCD_CS_0;
Data=DH;
LCD_RW_0;
LCD_RW_1;
LCD_CS_1;
}
/******************************************************
** 函數名:void Lcd_Write_Com_Data( int com1,int dat1)
** 描述 :TFT寫命令數據
** 輸入 : 無
** 輸出 :無
** 返回 :無
******************************************************/
void Lcd_Write_Com_Data( uint16_t com1,uint16_t dat1) //命令數據一起
{
Lcd_Write_Com(com1);
Lcd_Write_Data(dat1);
}
/******************************************************
** 函數名:void Address_set(unsigned int x1,unsigned int y1,unsigned int x2,unsigned int y2)
** 描述 :設置窗口顯示掃描開始地址
** 輸入 : 無
** 輸出 :無
** 返回 :無
******************************************************/
void Address_set(unsigned int x1,unsigned int y1,unsigned int x2,unsigned int y2)
{
Lcd_Write_Com_Data(0x0044,(x2<<8)+x1);
Lcd_Write_Com_Data(0x0045,y1);
Lcd_Write_Com_Data(0x0046,y2);
Lcd_Write_Com_Data(0x004e,x1);
Lcd_Write_Com_Data(0x004f,y1);
Lcd_Write_Com(0x0022);
}
/******************************************************
** 函數名:void main_init(void)
** 描述 :TFT控制器初始化配置
** 輸入 : 無
** 輸出 :無
** 返回 :無
******************************************************/
void main_init(void)
{
LCD_REST_1;
delay_nms(5);
LCD_REST_0;
delay_nms(10);
LCD_REST_1;
LCD_CS_1;
LCD_RD_1;
LCD_RW_1;
delay_nms(20);
Lcd_Write_Com_Data(0x0000,0x0001); delay_nms(1); //打開晶振
Lcd_Write_Com_Data(0x0003,0xA8A4); delay_nms(1); //0xA8A4
Lcd_Write_Com_Data(0x000C,0x0000); delay_nms(1);
Lcd_Write_Com_Data(0x000D,0x080C); delay_nms(1);
Lcd_Write_Com_Data(0x000E,0x2B00); delay_nms(1);
Lcd_Write_Com_Data(0x001E,0x00B0); delay_nms(1);
Lcd_Write_Com_Data(0x0001,0x2B3F); delay_nms(1); //驅動輸出控制320*240 0x6B3F
Lcd_Write_Com_Data(0x0002,0x0600); delay_nms(1);
Lcd_Write_Com_Data(0x0010,0x0000); delay_nms(1);
Lcd_Write_Com_Data(0x0011,0x6070); delay_nms(1); //0x4030 //定義數據格式 16位色
Lcd_Write_Com_Data(0x0005,0x0000); delay_nms(1);
Lcd_Write_Com_Data(0x0006,0x0000); delay_nms(1);
Lcd_Write_Com_Data(0x0016,0xEF1C); delay_nms(1);
Lcd_Write_Com_Data(0x0017,0x0003); delay_nms(1);
Lcd_Write_Com_Data(0x0007,0x0233); delay_nms(1); //0x0233
Lcd_Write_Com_Data(0x000B,0x0000); delay_nms(1);
Lcd_Write_Com_Data(0x000F,0x0000); delay_nms(1); //掃描開始地址
Lcd_Write_Com_Data(0x0041,0x0000); delay_nms(1);
Lcd_Write_Com_Data(0x0042,0x0000); delay_nms(1);
Lcd_Write_Com_Data(0x0048,0x0000); delay_nms(1);
Lcd_Write_Com_Data(0x0049,0x013F); delay_nms(1);
Lcd_Write_Com_Data(0x004A,0x0000); delay_nms(1);
Lcd_Write_Com_Data(0x004B,0x0000); delay_nms(1);
Lcd_Write_Com_Data(0x0044,0xEF00); delay_nms(1);
Lcd_Write_Com_Data(0x0045,0x0000); delay_nms(1);
Lcd_Write_Com_Data(0x0046,0x013F); delay_nms(1);
Lcd_Write_Com_Data(0x0030,0x0707); delay_nms(1);
Lcd_Write_Com_Data(0x0031,0x0204); delay_nms(1);
Lcd_Write_Com_Data(0x0032,0x0204); delay_nms(1);
Lcd_Write_Com_Data(0x0033,0x0502); delay_nms(1);
Lcd_Write_Com_Data(0x0034,0x0507); delay_nms(1);
Lcd_Write_Com_Data(0x0035,0x0204); delay_nms(1);
Lcd_Write_Com_Data(0x0036,0x0204); delay_nms(1);
Lcd_Write_Com_Data(0x0037,0x0502); delay_nms(1);
Lcd_Write_Com_Data(0x003A,0x0302); delay_nms(1);
Lcd_Write_Com_Data(0x003B,0x0302); delay_nms(1);
Lcd_Write_Com_Data(0x0023,0x0000); delay_nms(1);
Lcd_Write_Com_Data(0x0024,0x0000); delay_nms(1);
Lcd_Write_Com_Data(0x0025,0x8000); delay_nms(1);
Lcd_Write_Com_Data(0x004f,0); //行首址0
Lcd_Write_Com_Data(0x004e,0); //列首址0
Lcd_Write_Com(0x0022);
}
/******************************************************
** 函數名:void Pant(unsigned int color)
** 描述 :TFT初始化清屏顯示
** 輸入 : 無
** 輸出 :無
** 返回 :無
******************************************************/
void Pant(unsigned int color)
{
int i,j;
Address_set(0,0,239,319);
for(i=0;i<320;i++)
{
for (j=0;j<240;j++)
{
Lcd_Write_Data(color);
}
}
}
int main()
{
int i;
uint16_t data=0;
SystemInit();
RCC_Configuration();
GPIO_Configuration();
main_init(); //tft初始化
//Pant(0xf800); //紅色
//Pant(0X07E0); //綠色
//Pant(0x001f); //藍色
Pant(0xffff); //清屏
delay_nms(10);
Address_set(0,0,239,319); //設置圖片掃描的起始位置
for(i=0;i<76800;i++)
{
data=image1[i*2];
data=data<<8;
data=data+image1[i*2+1];
//delay_nms(10);
lcd_write_color(data); //數據的高8位與低8位分別傳送
// delay_nms(1);
}
/*
for(k=0;k<8;k++)
{
for(j=0;j<6;j++)
{
Address_set(40*j,40*k,40*j+39,40*k+39); //坐標設置
for(i=0;i<1600;i++)
{
lcd_write_color(image[i*2+1],image[i*2]); //發送顏色數據為提高速度高8位低8位分別傳遞
}
}
}
*/
while(1);
}
/******************************************************
** 函數名:void RCC_Configuration()
** 描述 :us延時函數
** 輸入 : 無
** 輸出 :無
** 返回 :無
******************************************************/
void RCC_Configuration()
{
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOG,ENABLE);
//RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE);
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOF,ENABLE);
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOE,ENABLE);
}
/******************************************************
** 函數名:void GPIO_Configuration()
** 描述 :GPIO端口初始化
** 輸入 : 無
** 輸出 :無
** 返回 :無
******************************************************/
void GPIO_Configuration()
{
GPIO_InitTypeDef GPIO_InitStructure;
GPIO_InitStructure.GPIO_Pin=GPIO_Pin_All;
GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;
GPIO_Init(GPIOF,&GPIO_InitStructure);
GPIO_InitStructure.GPIO_Pin=GPIO_Pin_0|GPIO_Pin_1|GPIO_Pin_2|GPIO_Pin_3|GPIO_Pin_4|GPIO_Pin_5|GPIO_Pin_6|GPIO_Pin_7;
GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;
GPIO_Init(GPIOG,&GPIO_InitStructure);
GPIO_InitStructure.GPIO_Pin=GPIO_Pin_0|GPIO_Pin_1;
GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;
GPIO_Init(GPIOB,&GPIO_InitStructure);
GPIO_InitStructure.GPIO_Pin=GPIO_Pin_2|GPIO_Pin_3|GPIO_Pin_4;
GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;
GPIO_Init(GPIOE,&GPIO_InitStructure);
}
/******************************************************
** 函數名:void delay_nus(unsigned long n)
** 描述 :us延時函數
** 輸入 : 無
** 輸出 :無
** 返回 :無
******************************************************/
void delay_nus(unsigned long n)
{
unsigned long j;
while(n--)
{
j=8;
while(j--);
}
}
/******************************************************
** 函數名:void delay_nms(unsigned long n)
** 描述 :ms延時函數
** 輸入 : 無
** 輸出 :無
** 返回 :無
******************************************************/
void delay_nms(unsigned long count) // /* X1ms */
{
int i,j;
for(i=0;i
for(j=0;j<100;j++);
}
復制代碼
作者:
WHG168
時間:
2012-4-17 16:14
謝分享。。。。。。。。。。。。。
歡迎光臨 電子工程網 (http://m.qingdxww.cn/)
Powered by Discuz! X3.4
主站蜘蛛池模板:
天堂网www天堂在线网
|
日韩成人免费一级毛片
|
成年人网站在线
|
中国国产成人精品久久
|
天堂中文在线乱码
|
性刺激久久久久久久久
|
国产a一级
|
日韩午夜网站
|
国产午夜不卡在线观看视频666
|
日韩高清一区二区
|
国产一区二区福利久久
|
青青青激情视频在线最新
|
九九九九热精品视频
|
曰韩高清一级毛片
|
青青青青爽视频在线播放
|
久久精品视频热
|
欧美影视一区二区三区
|
麻豆射区
|
免费国产高清精品一区在线
|
一级片aaa
|
热er99久久6国产精品免费
|
男人将机机桶女人
|
国产黄在线免费观看
|
久久的精品99精品66
|
久久99国产精品成人欧美
|
亚洲人成一区二区不卡
|
91香蕉影视
|
日韩欧美一二区
|
亚洲视频手机在线
|
夜夜操天天摸
|
本网站五月
|
成人9久久国产精品品
|
在线毛片网
|
国内自拍视频网站
|
欧美性一级
|
可以免费在线看黄的网站
|
欧美日韩国产最新一区二区
|
日本欧美一二三区色视频
|
国产视频www
|
四虎影视国产精品亚洲精品hd
|
国产91精品对白露脸全集观看
|