<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > STM32學(xué)習(xí)筆記——TFT2.4彩屏顯示圖片

          STM32學(xué)習(xí)筆記——TFT2.4彩屏顯示圖片

          作者: 時(shí)間:2016-11-28 來源:網(wǎng)絡(luò) 收藏

          本文引用地址:http://www.ex-cimer.com/article/201611/322857.htm

          LCD_cs(1);//關(guān)閉片選使能

          }

          voiddelayms(intcount)//

          {

          inti,j;

          for(i=0;i

          for(j=0;j<100;j++);

          }

          #ifdefBus_16//條件編譯-16位數(shù)據(jù)模式

          voidLCD_Writ_Bus(uintVH,uintVL)//并行數(shù)據(jù)寫入函數(shù)

          {

          //LCD_DataPortH=VH;//高位P1口

          //屏蔽高8位將數(shù)據(jù)送到PA0-PA7

          GPIOA->BSRR=VH&0x00ff;

          GPIOA->BRR=(~VH)&0x00ff;

          //GPIO_SetBits(GPIOA,VH&0x00ff);

          //GPIO_ResetBits(GPIOA,(~VH&0x00ff));

          //LCD_DataPortL=VL;//低位P0口

          //屏蔽低8位將數(shù)據(jù)送到PB8-PB15

          GPIOB->BSRR=(VL)<<8&0xff00;

          GPIOB->BRR=((~VL)<<8)&0xff00;

          LCD_wr(0);

          LCD_wr(1);

          }

          #else//條件編譯-8位數(shù)據(jù)模式

          voidLCD_Writ_Bus(charVH,charVL)//并行數(shù)據(jù)寫入函數(shù)

          {

          //LCD_DataPortH=VH;//八位模式都用P0口送數(shù)據(jù)

          //LCD_wr(0);

          //LCD_wr(1);

          //LCD_DataPortH=VL;//八位模式都用P0口送數(shù)據(jù)

          //LCD_wr(0);

          //LCD_wr(1);

          }

          #endif

          voidLCD_Write_COM(charVH,charVL)//發(fā)送命令

          {

          LCD_rs(0);

          LCD_Writ_Bus(VH,VL);

          }

          voidLCD_Write_DATA(charVH,charVL)//發(fā)送數(shù)據(jù)

          {

          LCD_rs(1);

          LCD_Writ_Bus(VH,VL);

          }

          voidPant(charVH,charVL)//涂滿全屏函數(shù)

          {

          inti,j;

          LCD_cs(0);//打開片選使能

          Address_set(0,0,239,319);

          for(i=0;i<320;i++)

          {

          for(j=0;j<240;j++)

          {

          LCD_Write_DATA(VH,VL);

          }

          }

          LCD_cs(1);//關(guān)閉片選使能

          }

          voidAddress_set(unsignedintx1,unsignedinty1,unsignedintx2,unsignedinty2)//設(shè)置地址范圍函數(shù)

          {

          LCD_Write_COM(0x00,0x20);LCD_Write_DATA(x1>>8,x1);//設(shè)置X坐標(biāo)位置

          LCD_Write_COM(0x00,0x21);LCD_Write_DATA(y1>>8,y1);//設(shè)置Y坐標(biāo)位置

          LCD_Write_COM(0x00,0x50);LCD_Write_DATA(x1>>8,x1);//開始X

          LCD_Write_COM(0x00,0x52);LCD_Write_DATA(y1>>8,y1);//開始Y

          LCD_Write_COM(0x00,0x51);LCD_Write_DATA(x2>>8,x2);//結(jié)束X

          LCD_Write_COM(0x00,0x53);LCD_Write_DATA(y2>>8,y2);//結(jié)束Y

          LCD_Write_COM(0x00,0x22);

          }

          voidpic_play(uintStart_X,uintEnd_X,uintStart_Y,uintEnd_Y)

          {

          uintm;

          //LCD_CS=0;

          GPIO_ResetBits(GPIOB,LCD_CS);//打開片選

          Address_set(Start_X,Start_Y,End_X,End_Y);//指定圖片顯示的范圍

          //LCD_RS=1;

          GPIO_SetBits(GPIOB,LCD_RS);//關(guān)閉片選

          //循環(huán)把圖片的所有數(shù)據(jù)依次寫入

          Address_set(0,0,141,79);//用彩屏顯示圖片時(shí),一定要注意圖片長寬比例,如果長寬比例不對(duì)的話,顯示的圖片就會(huì)變形

          //例如本幅圖片取模軟件輸出的長寬為(177,100),所以在這里圖片的顯示范圍必須設(shè)為(0,0,176,99),即x范圍為0~176,y的范圍為

          //0~99.這樣圖片才能正常顯示,否則圖片就會(huì)變形。

          for(m=0;m<22728/2;m++)//這里的35400這個(gè)數(shù)字指定顯示圖片的范圍,因?yàn)樵搱D的數(shù)據(jù)總共只有35400個(gè),所以這里指定

          //整幅圖都顯示出來。如果這個(gè)數(shù)比35400小,則只顯示該圖的一部分。

          {

          LCD_Write_DATA(gImage_sara[m*2+1],gImage_sara[m*2]);

          }

          Address_set(0,90,65,189);//一定要注意保持比例

          for(m=0;m<13200/2;m++)

          {

          LCD_Write_DATA(gImage_xiaoqian[m*2+1],gImage_xiaoqian[m*2]);

          }

          Address_set(75,90,137,189);//一定要注意保持比例

          for(m=0;m<12600/2;m++)

          {

          LCD_Write_DATA(gImage_yang[m*2+1],gImage_yang[m*2]);

          }

          //LCD_CS=1;

          GPIO_SetBits(GPIOB,LCD_CS);//關(guān)閉片選

          }

          主程序main.c

          在主程序中完成對(duì)系統(tǒng)的初始化配置,利用彩屏的驅(qū)動(dòng)程序完成圖片的顯示等功能,程序如下:

          #include"stm32f10x_lib.h"

          #include"lcd.h"

          GPIO_InitTypeDefGPIO_InitStructure;//定義GPIO初始化的結(jié)構(gòu)體變量

          ErrorStatusHSEStartUpStatus;//定義錯(cuò)誤狀態(tài)變量,為枚舉類型

          voidRCC_Configuration(void);

          voidNVIC_Configuration(void);

          voidDelay(vu32nCount);

          intmain(void)

          {

          #ifdefDEBUG

          debug();//在線調(diào)試使用

          #endif



          評(píng)論


          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();