登錄功能網(wǎng)站怎么做的搜索引擎優(yōu)化是什么意思啊
hx8352_8080_8bit_FMSC板級(jí)驅(qū)動(dòng)
- 1.LCD相關(guān)
- 1.1LCD參數(shù)
- 1.2 LCD引腳
- 1.3 LCD實(shí)物
- 1.4 LCD引腳解釋
- 2.接線關(guān)系
- 3.STM32F40x基于FMSC@16bit修改
- 1)地址偏移
- 2)刪除多余GPIO
- 3)修改FMSC的配置
- 4)LCD初始化寄存器
- 3.板驅(qū)動(dòng)程序
- 4.運(yùn)行結(jié)果
1.LCD相關(guān)
1.1LCD參數(shù)
LCD控制芯片:HX8352
LCD控制芯片通信方式:8080@8bit
LCD分辨率:240pix * 430pix
1.2 LCD引腳
通過LCD電路圖可知,帶斜杠的為低電平有效。
RS為判斷DBx傳輸?shù)臑閿?shù)據(jù)或命令,高為數(shù)據(jù),低為命令
WR、RD分別為讀寫使能,低電平有效
RESET為復(fù)位、CS為片選,
DB10-17為數(shù)據(jù)/命令傳輸端口,相當(dāng)于8位同步傳輸,

1.3 LCD實(shí)物
圖上AB位置與12標(biāo)注依次對應(yīng),注意B上端有個(gè)2個(gè)空引腳。
圖上C位置,由于3處沒有焊接觸摸屏的處理芯片和電容,所以觸摸屏無效,C引腳無效。
圖上D位置為4對應(yīng)的SD卡引腳,為SPI驅(qū)動(dòng),此教程未使用。

1.4 LCD引腳解釋
LCD的驅(qū)動(dòng)芯片為HX8352, 驅(qū)動(dòng)芯片會(huì)在出廠時(shí),設(shè)定IM0-2,從而確定LCD控制模式,如圖選定8位數(shù)據(jù)8080通信,選定的通信引腳為D8-17。


2.接線關(guān)系
這個(gè)要對應(yīng)上,需要插一會(huì)。

3.STM32F40x基于FMSC@16bit修改
其實(shí)只要在FSMC16位數(shù)據(jù)通信模式上修改即可,需要修改以下幾處。
1)地址偏移
FSMC為8位bit,不需要偏移一位。
只要將FSMC_Ax的x位設(shè)置為1或者0即可。
如實(shí)例:
片選選擇FSMC_NE2,對應(yīng)引腳PG9,儲(chǔ)存起始位為0x64000000,
RS連接FSMC_A13,對應(yīng)引腳PG2,
傳輸數(shù)據(jù)FSMC地址寫入0x64000000+0<<13 =0x64000000
傳輸數(shù)據(jù)FSMC地址寫入0x64000000+1<<13 = 0x64002000
/******************************* HX8352 顯示屏的 FSMC 參數(shù)定義 ***************************/#define FSMC_Addr_HX8352_CMD ( ( uint32_t ) 0x64000000 ) //FSMC_Bank1_NORSRAM用于LCD命令操作的地址
#define FSMC_Addr_HX8352_DATA ( ( uint32_t ) 0x64002000 ) //FSMC_Bank1_NORSRAM用于LCD數(shù)據(jù)操作的地址 #define FSMC_Bank1_NORSRAMx FSMC_Bank1_NORSRAM2 //由片選引腳決定的NOR/SRAM塊
/******************************* HX8352 顯示屏8080通訊引腳定義 ***************************/
//片選,選擇NOR/SRAM塊
#define LCD_CS_CLK RCC_AHB1Periph_GPIOG
#define LCD_CS_PORT GPIOG
#define LCD_CS_PIN GPIO_Pin_9
#define LCD_CS_PinSource GPIO_PinSource9
//DC引腳,使用FSMC的地址信號(hào)控制,本引腳決定了訪問LCD時(shí)使用的地址
//PG2為FSMC_A13
#define LCD_DC_CLK RCC_AHB1Periph_GPIOG
#define LCD_DC_PORT GPIOG
#define LCD_DC_PIN GPIO_Pin_3
#define LCD_DC_PinSource GPIO_PinSource3
2)刪除多余GPIO
刪除FSMC_D0-7所有對應(yīng)的引腳控制,包括引腳時(shí)鐘、引腳輸入輸出配置復(fù)用。
GPIO_InitTypeDef GPIO_InitStructure;/* 使能FSMC對應(yīng)相應(yīng)管腳時(shí)鐘*/RCC_AHB1PeriphClockCmd ( /*控制信號(hào)*/LCD_CS_CLK|LCD_DC_CLK|LCD_WR_CLK|LCD_RD_CLK |LCD_RST_CLK|//LCD_BK_CLK|/*數(shù)據(jù)信號(hào)*/RCC_AHB1Periph_GPIOE|RCC_AHB1Periph_GPIOD , ENABLE );/* 配置FSMC相對應(yīng)的數(shù)據(jù)線,FSMC-D0~D15 */ GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0|GPIO_Pin_1//|GPIO_Pin_8|GPIO_Pin_9|GPIO_Pin_10|GPIO_Pin_14|GPIO_Pin_15; //PD 0 1 14 15 //8 9 10 GPIO_Init(GPIOD, &GPIO_InitStructure);GPIO_InitStructure.GPIO_Pin = GPIO_Pin_7|GPIO_Pin_8|GPIO_Pin_9|GPIO_Pin_10;//|GPIO_Pin_11//|GPIO_Pin_12|GPIO_Pin_13|GPIO_Pin_14|GPIO_Pin_15; //PE7-10 11-15 GPIO_Init(GPIOE, &GPIO_InitStructure);GPIO_PinAFConfig(GPIOD,GPIO_PinSource0,GPIO_AF_FSMC); GPIO_PinAFConfig(GPIOD,GPIO_PinSource1,GPIO_AF_FSMC);
// GPIO_PinAFConfig(GPIOD,GPIO_PinSource8,GPIO_AF_FSMC);
// GPIO_PinAFConfig(GPIOD,GPIO_PinSource9,GPIO_AF_FSMC);
// GPIO_PinAFConfig(GPIOD,GPIO_PinSource10,GPIO_AF_FSMC);GPIO_PinAFConfig(GPIOD,GPIO_PinSource14,GPIO_AF_FSMC);GPIO_PinAFConfig(GPIOD,GPIO_PinSource15,GPIO_AF_FSMC); GPIO_PinAFConfig(GPIOE,GPIO_PinSource7,GPIO_AF_FSMC); GPIO_PinAFConfig(GPIOE,GPIO_PinSource8,GPIO_AF_FSMC);GPIO_PinAFConfig(GPIOE,GPIO_PinSource9,GPIO_AF_FSMC);GPIO_PinAFConfig(GPIOE,GPIO_PinSource10,GPIO_AF_FSMC);
// GPIO_PinAFConfig(GPIOE,GPIO_PinSource11,GPIO_AF_FSMC);
// GPIO_PinAFConfig(GPIOE,GPIO_PinSource12,GPIO_AF_FSMC);
// GPIO_PinAFConfig(GPIOE,GPIO_PinSource13,GPIO_AF_FSMC);
// GPIO_PinAFConfig(GPIOE,GPIO_PinSource14,GPIO_AF_FSMC);
// GPIO_PinAFConfig(GPIOE,GPIO_PinSource15,GPIO_AF_FSMC);
3)修改FMSC的配置
重要是修改 FSMC_NORSRAMInitTypeDef類型 的結(jié)構(gòu)體參數(shù) FSMC_MemoryDataWidth
FSMC_NORSRAMInitTypeDef FSMC_NORSRAMInitStructure;
FSMC_NORSRAMInitStructure.FSMC_MemoryDataWidth = FSMC_MemoryDataWidth_8b; //數(shù)據(jù)寬度為8bit
4)LCD初始化寄存器
LCD控制芯片的寄存器需要初始化,其和芯片信號(hào)相關(guān),這里為hx8352
LCD_W_CMD( 0x1A);LCD_W_DATA(0x02); //BTLCD_W_CMD( 0x1B);LCD_W_DATA(0x88); //VRH//****VCOM offset**///LCD_W_CMD( 0x23);LCD_W_DATA(0x00); //SEL_VCMLCD_W_CMD( 0x24);LCD_W_DATA(0x64); //LCD_W_CMD( 0x25);LCD_W_DATA(0x15); //VDVLCD_W_CMD( 0x2D);LCD_W_DATA(0x03); //NOW[2:0]=001//****OPON**//LCD_W_CMD( 0xE8);LCD_W_DATA(0x60);//Power on SettingLCD_W_CMD( 0x18);LCD_W_DATA(0x04); //Frame rate 72HzLCD_W_CMD( 0x19);LCD_W_DATA(0x01); //OSC_EN='1', start OscLCD_W_CMD( 0x01);LCD_W_DATA(0x00); //DP_STB='0', out deep sleepLCD_W_CMD( 0x1F);LCD_W_DATA(0x88); //STB=0//delayms(50);LCD_W_CMD( 0x1F);LCD_W_DATA(0x80); //DK=0//delayms(50);LCD_W_CMD( 0x1F);LCD_W_DATA(0x90); //PON=1//delayms(50);LCD_W_CMD( 0x1F);LCD_W_DATA(0xD0); //VCOMG=1//delayms(50);//262k/65k color selectionLCD_W_CMD( 0x17);LCD_W_DATA(0x05); //default 0x06 262k color // 0x05 65k color//SET PANELLCD_W_CMD( 0x36);LCD_W_DATA(0x03);//12 //屏幕正反向,紅藍(lán)交換,背景,放大屏幕等// 0x03 正常// 0x04 上下反向LCD_W_CMD( 0x29);LCD_W_DATA(0x31); //400 linesLCD_W_CMD( 0x71);LCD_W_DATA(0x1A); //RTN//Gamma 2.2 SettingLCD_W_CMD( 0x40);LCD_W_DATA(0x00);LCD_W_CMD( 0x41);LCD_W_DATA(0x45);LCD_W_CMD( 0x42);LCD_W_DATA(0x45);LCD_W_CMD( 0x43);LCD_W_DATA(0x04);LCD_W_CMD( 0x44);LCD_W_DATA(0x00);LCD_W_CMD( 0x45);LCD_W_DATA(0x08);LCD_W_CMD( 0x46);LCD_W_DATA(0x23);LCD_W_CMD( 0x47);LCD_W_DATA(0x23);LCD_W_CMD( 0x48);LCD_W_DATA(0x77);LCD_W_CMD( 0x49);LCD_W_DATA(0x40);LCD_W_CMD( 0x4A);LCD_W_DATA(0x04);LCD_W_CMD( 0x4B);LCD_W_DATA(0x00);LCD_W_CMD( 0x4C);LCD_W_DATA(0x88);LCD_W_CMD( 0x4D);LCD_W_DATA(0x88);LCD_W_CMD( 0x4E);LCD_W_DATA(0x88);LCD_W_CMD( 0x02);LCD_W_DATA(0x00);LCD_W_CMD( 0x03);LCD_W_DATA(0x00); //Column StartLCD_W_CMD( 0x04);LCD_W_DATA(0x00);LCD_W_CMD( 0x05);LCD_W_DATA(0xEF); //Column EndLCD_W_CMD( 0x06);LCD_W_DATA(0x00);LCD_W_CMD( 0x07);LCD_W_DATA(0x00); //Row StartLCD_W_CMD( 0x08);LCD_W_DATA(0x01);LCD_W_CMD( 0x09);LCD_W_DATA(0x8F); //8f//Row End//Display ON SettingLCD_W_CMD( 0x28);LCD_W_DATA(0x38); //GON=1, DTE=1, D=10//delayms(40);LCD_Delay(0xFFFFF );LCD_W_CMD( 0x28);LCD_W_DATA(0x3F); //3//3c//GON=1, DTE=1, D=11//LCD_W_CMD( 0x22); //Start GRAM write//LCD_W_CMD( 0x16);LCD_W_DATA(0xaa); //填充方向
3.板驅(qū)動(dòng)程序
stm32f40x_hx8352_LCD驅(qū)動(dòng)下載連接
ask碼字模font.c自帶
中文字模需要導(dǎo)入到外部flash上
4.運(yùn)行結(jié)果
bsp_hx8352_lcd.c 中的 test_HX8352_LCD_3() 運(yùn)行結(jié)果
