亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? tft018.c

?? STM32 使用TFT液晶屏幕
?? C
字號:
/*

                         \\\|///
                       \\  - -  //
                        (  @ @  )
+---------------------oOOo-(_)-oOOo-------------------------+
|                 智林STM32開發(fā)板試驗程序                   |
|                   1.8‘ TFT LCD Driver                     |
|                 劉笑然 by Xiaoran Liu                     |
|                        2008.4.16                          |
|                                                           |
|           智林測控技術(shù)研究所 ZERO research group          |
|                      www.the0.net                         |
|                             Oooo                          |
+-----------------------oooO--(   )-------------------------+
                       (   )   ) /
                        \ (   (_/
                         \_)     

*/
/*----------------------------------------------------------*\
 |  引入相關(guān)芯片的頭文件                                    |
\*----------------------------------------------------------*/
#include <stm32f10x_lib.h>    // STM32F10x Library Definitions
#include "MyType.h"
#include "TFT018.h"
/*----------------------------------------------------------*\
 | HARDWARE DEFINITIONS                                     |
\*----------------------------------------------------------*/
/* PINS: 
   - DB0 = PC0
   - DB1 = PC1
   - DB2 = PC2
   - DB3 = PC3
   - DB4 = PC4
   - DB5 = PC5
   - DB6 = PC6
   - DB7 = PC7
   - RD  = PC8
   - RW  = PC9
   - RS  = PC10
   - RST = PC11
   - CS  = PC12                                             */

#define PIN_CS               (   1 << 12)
#define PIN_RST              (   1 << 11)
#define PIN_RS               (   1 << 10)
#define PIN_RW               (   1 <<  9)
#define PIN_RD               (   1 <<  8)
#define PINS_CTRL            (0x1F <<  8)
#define PINS_DATA            (0xFF <<  0)
#define PINS_ALL             (PINS_CTRL | PINS_DATA)

/* Enable Clock for peripheral driving LCD pins                               */
#define LCD_CLOCK_EN         (RCC->APB2ENR |= (1 << 4)); // enable clock for GPIOC

/* pin CS  setting to 0 or 1                                                  */
#define LCD_CS(x)             GPIOC->ODR = (GPIOC->ODR & ~PIN_CS) | (x ? PIN_CS : 0);
/* pin RST setting to 0 or 1                                                   */
#define LCD_RST(x)            GPIOC->ODR = (GPIOC->ODR & ~PIN_RST) | (x ? PIN_RST : 0);
/* pin RS setting to 0 or 1                                                   */
#define LCD_RS(x)             GPIOC->ODR = (GPIOC->ODR & ~PIN_RS) | (x ? PIN_RS : 0);
/* pin RW setting to 0 or 1                                                   */
#define LCD_RW(x)             GPIOC->ODR = (GPIOC->ODR & ~PIN_RW) | (x ? PIN_RW : 0);
/* pin RD setting to 0 or 1                                                   */
#define LCD_RD(x)             GPIOC->ODR = (GPIOC->ODR & ~PIN_RD) | (x ? PIN_RD : 0);

/* Reading DATA pins                                                          */
#define LCD_DATA_IN           (((GPIOC->IDR & PINS_DATA) >> 0) & 0xFF)
/* Writing value to DATA pins                                                 */
#define LCD_DATA_OUT(x)       GPIOC->ODR = (GPIOC->ODR & ~PINS_DATA) | (x << 0);

/* Setting all pins to output mode                                            */
#define LCD_ALL_DIR_OUT       GPIOC->CRL = (GPIOC->CRL & 0x00000000) | 0x33333333; \
                              GPIOC->CRH = (GPIOC->CRH & 0xFFF00000) | 0x00033333;
 
/* Setting DATA pins to input mode                                            */
#define LCD_DATA_DIR_IN       GPIOC->CRL = (GPIOC->CRL & 0x00000000) | 0x44444444;

/* Setting DATA pins to output mode                                           */
#define LCD_DATA_DIR_OUT      GPIOC->CRL = (GPIOC->CRL & 0x00000000) | 0x33333333;

/*----------------------------------------------------------*\
 | SOFTWARE DEFINITIONS                                     |
\*----------------------------------------------------------*/
/*------------------------- Speed dependant settings -------------------------*/

/* If processor works on high frequency delay has to be increased, it can be 
   increased by factor 2^N by this constant                                   */
#define DELAY_2N     0

volatile U8 Font=0;

/*----------------------------------------------------------*\
 | Delay in while loop cycles                               |
 | cnt:    number of while cycles to delay                  |
\*----------------------------------------------------------*/
static void delay (int cnt) {
  cnt <<= DELAY_2N;

  while (cnt--);
  }
/*----------------------------------------------------------*\
 | LOW LEVEL OPERATE : BUS simulate                         |
\*----------------------------------------------------------*/
void LCD_Bus_Initial( void ) {
  LCD_CLOCK_EN                          /* Enable clock for peripheral        */

  /* Set all pins for LCD as outputs                                          */
  LCD_ALL_DIR_OUT

  LCD_RST(0);
  delay( 15000 );
  LCD_CS(1);
  LCD_RW(1);
  LCD_RD(1);
  LCD_RS(1);
  LCD_RST(1);
  }
void LCD_Bus_Write_Byte( unsigned char Data ) {
  LCD_DATA_OUT( Data );
  LCD_RW(0);
  delay( 1 );
  LCD_RW(1);
  }
void LCD_Bus_Write_Data( unsigned short Data ) {
  LCD_Bus_Write_Byte( Data>>8 );
  LCD_Bus_Write_Byte( Data );
  }
unsigned int LCD_Bus_Read_Byte( void ) {
  unsigned int BusData;

  LCD_DATA_DIR_IN;
  LCD_RD(0);
  BusData = LCD_DATA_IN;
  delay( 1 );
  LCD_RD(1);

  return BusData>>8;
  }
void LCD_Inst(unsigned int Cmd) {
  LCD_CS(0);
  LCD_RD(1);
  LCD_RS(0);
  LCD_Bus_Write_Byte( Cmd );
  LCD_CS(1);
  }
void LCD_Data(unsigned int Data) {
  LCD_CS(0);
  LCD_RD(1);
  LCD_RS(1);
  LCD_Bus_Write_Byte( Data );
  LCD_CS(1);
  }
void LCD_Reg_Set(unsigned int Cmd,unsigned int Data) {
  LCD_CS(0);
  LCD_RD(1);
  LCD_RS(0);
  LCD_Bus_Write_Byte( Cmd );
  LCD_RS(1);
  LCD_Bus_Write_Byte( Data );
  LCD_CS(1);
  }
/*----------------------------------------------------------*\
 | HIGHLEVEL OPERATION                                      |
\*----------------------------------------------------------*/
void LCD_Init( void ) {
	LCD_Bus_Initial();

	LCD_Inst(0x11);	// sleep out/power on(SLPOUT)
	delay( 1500 );
	LCD_Inst(0x20);	// display inversion off
	LCD_Inst(0x38);	// ID mode off (IDMOFF)
	LCD_Inst(0x13);	// Normal display mode on (Partial mode off)
	// color mode Interface pixel format  (COLMOD)
	LCD_Reg_Set(0x3A,0x05);	// 16-bit/pixel , 1-times data transfer
	LCD_Reg_Set(0xC0,0x03);	// power control 1      (PWCTR1) , GVDD voltage set 4.65
	LCD_Reg_Set(0xC1,0x05);	// VCOMH voltage set 4.10V
	delay( 1500 );
	LCD_Reg_Set(0xC5,0xBA);	// VCOMAC voltage set 4.35V
	LCD_Reg_Set(0xC6,0x10);	// VCOMAC voltage set 4.35V
	delay( 1500 );
	// Gamma voltage adjustalbe level
	//Gamma + Polarity correction characteristics set
	LCD_Inst(0xE0);
	LCD_Data(0x01);
	LCD_Data(0x0A);
	LCD_Data(0x11);
	LCD_Data(0x23);
	LCD_Data(0x20);
	LCD_Data(0x01);
	LCD_Data(0x1E);
	LCD_Data(0x02);
	LCD_Data(0x06);
	LCD_Data(0x05);
	LCD_Data(0x0E);
	LCD_Data(0x0D);
	LCD_Data(0x01);
	LCD_Data(0x05);
	LCD_Data(0x03);
	LCD_Data(0x06);
	//Gamma + Polarity correction characteristics set
	LCD_Inst(0xE1);
	LCD_Data(0x01);
	LCD_Data(0x20);
	LCD_Data(0x23);
	LCD_Data(0x11);
	LCD_Data(0x0A);
	LCD_Data(0x01);
	LCD_Data(0x02);
	LCD_Data(0x1E);
	LCD_Data(0x06);
	LCD_Data(0x03);
	LCD_Data(0x05);
	LCD_Data(0x01);
	LCD_Data(0x0D);
	LCD_Data(0x0E);
	LCD_Data(0x05);
	LCD_Data(0x06);
	// memory data access control  (MADCTR)
	LCD_Reg_Set(0x36,0xA0);	// MY=1; MX=0; MV=0; ML=0; RGB=0
	LCD_Inst(0x37);
	LCD_Data(0x00);
	LCD_Data(0x00);
	// display on
	LCD_Inst(0x29);
	}
void LCD_SetArea( U8 x0, U8 y0, U8 x1, U8 y1 ) {

	LCD_Inst(0x2A);
	LCD_Data(0x00);
	LCD_Data(x0+1);
	LCD_Data(0x00);
	LCD_Data(x1+1);

	LCD_Inst(0x2B);
	LCD_Data(0x00);
	LCD_Data(y0+1);
	LCD_Data(0x00);
	LCD_Data(y1+1);
	}
void LCD_Rectangle( unsigned short x0, unsigned short y0, unsigned short x1, unsigned short y1, unsigned int Data ) {
	int x,y;

	LCD_SetArea(x0,y0,x1,y1);

	LCD_Inst(0x2C);

	LCD_CS(0);
	LCD_RD(1);

	LCD_RS(1);
	for(x=0;x<=x1-x0;x++)
		for(y=0;y<=y1-y0;y++) {
			LCD_Bus_Write_Byte( Data>>8 );
			LCD_Bus_Write_Byte( Data );
			}

	LCD_CS(1);
	}
void LCD_Clear_Screen( unsigned int Data ) {
	LCD_Rectangle(0,0,159,128, Data );
	}
void LCD_SetPixel(unsigned short x, unsigned short y, unsigned short color) {
	LCD_SetArea(x,y,x,y);
	LCD_Inst(0x2C);

	LCD_CS(0);
	LCD_RD(1);
	LCD_RS(1);
	LCD_Bus_Write_Byte( color>>8 );
	LCD_Bus_Write_Byte( color );
	LCD_CS(1);
	}
#include "8X16.h"

void LCD_PutChar8x16(unsigned short x, unsigned short y, char c, unsigned int f, unsigned int b) {
	register unsigned int i,j;

	LCD_SetArea(x,y,x+8-1,y+16-1);
	LCD_Inst(0x2C);

	LCD_CS(0);
	LCD_RD(1);
	LCD_RS(1);

	for(i=0; i<16;i++) {
		unsigned char m=Font8x16[c*16+i];
		for(j=0;j<8;j++) {
			if((m&0x80)==0x80) {
				LCD_Bus_Write_Byte(f>>8);
				LCD_Bus_Write_Byte(f);
				}
			else {
				LCD_Bus_Write_Byte(b>>8);
				LCD_Bus_Write_Byte(b);
				}
			m<<=1;
			}
		}

	LCD_CS(1);
	}
#include "8X8h.h"

void LCD_PutChar8x8(unsigned short x, unsigned short y, char c, unsigned int f, unsigned int b) {
	register unsigned int i,j;

	LCD_SetArea(x,y,x+8-1,y+8-1);
	LCD_Inst(0x2C);

	LCD_CS(0);
	LCD_RD(1);
	LCD_RS(1);

	for(i=0; i<8;i++) {
		unsigned char m=Font8x8[c][i];
		for(j=0;j<8;j++) {
			if((m&0x80)==0x80) {
				LCD_Bus_Write_Byte(f>>8);
				LCD_Bus_Write_Byte(f);
				}
			else {
				LCD_Bus_Write_Byte(b>>8);
				LCD_Bus_Write_Byte(b);
				}
			m<<=1;
			}
		}

	LCD_CS(1);
	}

void LCD_PutChar(unsigned short x, unsigned short y, char c, unsigned int f, unsigned int b) {
	if( Font )
		LCD_PutChar8x8( x, y, c, f, b );
	else
		LCD_PutChar8x16( x, y, c, f, b );
	}

void LCD_PutString(unsigned short x, unsigned short y, char *s, unsigned int f, unsigned int b) {
	register unsigned char l=0;
	while(*s) {
		LCD_PutChar(x+l*8,y,*s,f,b);
		s++;l++;
		}
	}

/*----------------------------------------------------------*\
 | END OF FILE                                              |
\*----------------------------------------------------------*/

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩欧美国产一区二区在线播放 | 国产精品免费av| 美女视频第一区二区三区免费观看网站 | 国产一区二区三区精品视频| 久久尤物电影视频在线观看| 国产精品资源在线| 婷婷激情综合网| 欧美日韩在线免费视频| 免费精品视频最新在线| 欧美刺激脚交jootjob| 91精品免费在线观看| 老司机免费视频一区二区| 久久久久88色偷偷免费| 丁香啪啪综合成人亚洲小说| 亚洲欧洲av在线| 欧美午夜在线观看| 久久精品国产澳门| 国产精品区一区二区三| 欧美吞精做爰啪啪高潮| 久久国产精品99精品国产| 国产拍揄自揄精品视频麻豆| 在线精品视频免费观看| 蓝色福利精品导航| 亚洲欧美自拍偷拍色图| 69精品人人人人| 成人小视频在线| 日韩精品午夜视频| 欧美国产在线观看| 欧美日韩一区二区三区免费看 | 一区二区三区不卡视频 | 日韩一区二区三区观看| 成人精品亚洲人成在线| 天天av天天翘天天综合网| 久久综合九色综合欧美98| 91色在线porny| 国产一区二三区好的| 亚洲你懂的在线视频| 欧美成人女星排行榜| 99国产精品国产精品毛片| 日本人妖一区二区| 亚洲欧美国产77777| 日韩欧美国产系列| 91小宝寻花一区二区三区| 国产一区二区在线观看视频| 亚洲一区二区三区四区在线观看 | 国产偷v国产偷v亚洲高清| 久久久另类综合| 成人精品电影在线观看| 蜜桃久久av一区| 夜夜爽夜夜爽精品视频| 日韩免费看的电影| 日本丶国产丶欧美色综合| 国产一区二区视频在线| 亚洲国产日韩一区二区| 中文字幕一区二区三区蜜月| www精品美女久久久tv| 欧美午夜影院一区| 99久久久久免费精品国产| 久久99在线观看| 日韩中文欧美在线| 亚洲免费在线视频| 国产精品久久久久aaaa| 久久久久国色av免费看影院| 日韩三级视频中文字幕| 欧美老年两性高潮| 欧美人狂配大交3d怪物一区| 色婷婷综合久久久| 99精品视频在线观看| 成人免费黄色大片| 国产成人自拍网| 日韩亚洲欧美在线| 欧美日韩精品福利| 欧美主播一区二区三区| 91香蕉视频黄| 91免费国产在线| 91视频91自| 色婷婷激情一区二区三区| 91浏览器打开| 欧美性三三影院| 欧美日韩国产欧美日美国产精品| 色视频一区二区| 色婷婷精品大视频在线蜜桃视频| 色哟哟一区二区| 欧美日韩亚洲综合一区二区三区| 在线观看日产精品| 欧美视频一区二区三区在线观看 | 亚洲18色成人| 亚洲成av人片| 免费的成人av| 极品尤物av久久免费看| 国产丶欧美丶日本不卡视频| 国产麻豆精品在线| 99免费精品在线观看| 色94色欧美sute亚洲线路一ni| 欧美在线视频不卡| 欧美久久久久免费| 久久亚洲综合av| 中文字幕国产一区| 亚洲激情图片qvod| 日韩电影在线看| 91精品国产一区二区三区| 久久se精品一区精品二区| 日韩影院在线观看| 免费视频一区二区| 国产一区在线精品| 91亚洲精品一区二区乱码| 欧美日韩在线播放一区| 日韩欧美一二三| 国产精品伦一区| 日韩专区欧美专区| 国产成人精品免费| 色av成人天堂桃色av| 日韩欧美亚洲国产精品字幕久久久| 欧美成va人片在线观看| 国产精品毛片大码女人| 午夜影视日本亚洲欧洲精品| 国内精品视频一区二区三区八戒 | 国产精品影音先锋| 97se亚洲国产综合自在线不卡 | 欧美mv日韩mv国产网站| 日本一区二区三区在线观看| 亚洲午夜在线观看视频在线| 精品一区二区三区在线观看国产| 成人激情小说乱人伦| 欧美精品免费视频| 国产精品色呦呦| 日本不卡一区二区三区| 成人自拍视频在线| 91精品在线一区二区| 中文字幕+乱码+中文字幕一区| 亚洲成人黄色影院| 成人午夜伦理影院| 欧美国产一区视频在线观看| 久久精品国产一区二区| 成人动漫在线一区| 欧美成人官网二区| 亚洲一区二区三区视频在线| 欧美精三区欧美精三区| 日本一区二区不卡视频| 麻豆极品一区二区三区| 色综合色狠狠综合色| 精品国产凹凸成av人网站| 五月激情丁香一区二区三区| 91亚洲资源网| 国产日韩欧美精品一区| 免费在线观看一区二区三区| 欧洲人成人精品| 国产精品福利一区| 国产suv精品一区二区6| 日韩欧美一区中文| 天堂va蜜桃一区二区三区漫画版| 91亚洲国产成人精品一区二三| 国产欧美日本一区二区三区| 韩国一区二区视频| 精品乱码亚洲一区二区不卡| 午夜婷婷国产麻豆精品| 一本一道久久a久久精品| 国产精品传媒视频| 成人综合日日夜夜| 国产精品妹子av| 国产亚洲婷婷免费| 久久久久久久久久久久久久久99| 亚洲你懂的在线视频| 成人免费视频app| 国产性做久久久久久| 麻豆精品蜜桃视频网站| 91麻豆精品国产91久久久久久 | 亚洲欧美一区二区三区极速播放| 国产成人福利片| 久久精品无码一区二区三区| 韩国成人在线视频| 久久先锋资源网| 国产精品123区| 欧美国产一区二区| 99久久综合色| 一区二区三区色| 欧美日韩国产免费| 人人狠狠综合久久亚洲| 欧美一区三区四区| 精品一区二区免费在线观看| 久久中文字幕电影| 成人精品国产一区二区4080| 国产不卡视频在线播放| 国产一区二区影院| 精品国产亚洲一区二区三区在线观看 | 国产黄色精品网站| 国产欧美一区二区精品性色超碰 | 不卡一区二区中文字幕| 日本一区二区三区dvd视频在线| 成人免费高清在线| 亚洲免费视频中文字幕| 欧美日韩在线直播| 精品一区二区免费| 国产精品伦理一区二区| 色噜噜狠狠色综合中国| 婷婷久久综合九色综合伊人色| 日韩视频一区二区在线观看| 国产很黄免费观看久久| 亚洲乱码日产精品bd| 337p亚洲精品色噜噜狠狠|