stm32 fsmc lcd调试Word文件下载.docx

上传人:b****4 文档编号:17082735 上传时间:2022-11-28 格式:DOCX 页数:12 大小:94.61KB
下载 相关 举报
stm32 fsmc lcd调试Word文件下载.docx_第1页
第1页 / 共12页
stm32 fsmc lcd调试Word文件下载.docx_第2页
第2页 / 共12页
stm32 fsmc lcd调试Word文件下载.docx_第3页
第3页 / 共12页
stm32 fsmc lcd调试Word文件下载.docx_第4页
第4页 / 共12页
stm32 fsmc lcd调试Word文件下载.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

stm32 fsmc lcd调试Word文件下载.docx

《stm32 fsmc lcd调试Word文件下载.docx》由会员分享,可在线阅读,更多相关《stm32 fsmc lcd调试Word文件下载.docx(12页珍藏版)》请在冰豆网上搜索。

stm32 fsmc lcd调试Word文件下载.docx

#defineLCD_Command*(*(volatileu80x6c000000

#defineLCD_Data*(*(volatileu80x6c000001(LCD数据宽度为8BIT

当数据写入LCD_Command对应的地址时地址和数据会分别被发送到对应的AFIO复用端口将AFIO的A0接至LCD的C/D(Command/data脚就自动切换了命令和数据

LCD_Command=0x55;

A0=0;

对应地址低位0x6c000000

LCD_Data=0x55;

A0=1;

对应地址低位0x6c000001

此开发板LCD与MCU的引脚对应关系为:

D0---->

PD14D4---->

PE7A0------>

PF00

D1---->

PD15D5---->

PE8FSMC_NE4------>

PG12

D2---->

PD0D6---->

PE9FSMC_NWE------->

PD5

D3---->

PD1D7---->

PE10FSMC_NOE------->

PD4

本例中所有引脚配置为AFIO

程序如下:

对于FSMC的工作模式时序配置可以看手册的18章

/****************************************************************************************************************

Funtion:

fsmc

para----|input:

null

|output:

data:

2010/5/9

ver:

0.1

modify:

author:

x

****************************************************************************************************************/

voidLCD_FSMCConfig(void

{

#ifndefNO_LCD

FSMC_NORSRAMInitTypeDefFSMC_NORSRAMInitStructure;

FSMC_NORSRAMTimingInitTypeDefp;

RCC_AHBPeriphClockCmd(RCC_AHBPeriph_FSMC,ENABLE;

/*--FSMCConfiguration

------------------------------------------------------*/

/*-----------------------SRAMBank4

----------------------------------------*/

/*FSMC_Bank1_NORSRAM4configuration*/

p.FSMC_AddressSetupTime=1;

p.FSMC_AddressHoldTime=1;

p.FSMC_DataSetupTime=20;

p.FSMC_BusTurnAroundDuration=0;

p.FSMC_CLKDivision=0;

p.FSMC_DataLatency=1;

p.FSMC_AccessMode=FSMC_AccessMode_A;

/*ColorLCDconfiguration------------------------------------LCDconfiguredasfollow:

-Data/AddressMUX=Disable

-MemoryType=SRAM

-DataWidth=16bit

-WriteOperation=Enable

-ExtendedMode=Enable

-AsynchronousWait=Disable*/

FSMC_NORSRAMInitStructure.FSMC_Bank=FSMC_Bank1_NORSRAM4;

FSMC_NORSRAMInitStructure.FSMC_DataAddressMux=

FSMC_DataAddressMux_Disable;

FSMC_NORSRAMInitStructure.FSMC_MemoryType=FSMC_MemoryType_SRAM;

FSMC_NORSRAMInitStructure.FSMC_MemoryDataWidth=

FSMC_MemoryDataWidth_8b;

FSMC_NORSRAMInitStructure.FSMC_BurstAccessMode=

FSMC_BurstAccessMode_Disable;

FSMC_NORSRAMInitStructure.FSMC_WaitSignalPolarity=

FSMC_WaitSignalPolarity_Low;

FSMC_NORSRAMInitStructure.FSMC_WrapMode=FSMC_WrapMode_Disable;

FSMC_NORSRAMInitStructure.FSMC_WaitSignalActive=

FSMC_WaitSignalActive_BeforeWaitState;

FSMC_NORSRAMInitStructure.FSMC_WriteOperation=

FSMC_WriteOperation_Enable;

FSMC_NORSRAMInitStructure.FSMC_WaitSignal=

FSMC_WaitSignal_Disable;

FSMC_NORSRAMInitStructure.FSMC_ExtendedMode=

FSMC_ExtendedMode_Disable;

FSMC_NORSRAMInitStructure.FSMC_WriteBurst=

FSMC_WriteBurst_Disable;

FSMC_NORSRAMInitStructure.FSMC_ReadWriteTimingStruct=&

p;

FSMC_NORSRAMInitStructure.FSMC_WriteTimingStruct=&

FSMC_NORSRAMInit(&

FSMC_NORSRAMInitStructure;

/*BANK4(ofNOR/SRAMBank1~4isenabled*/

FSMC_NORSRAMCmd(FSMC_Bank1_NORSRAM4,ENABLE;

#endif

}

/*******************************************************************************

*FunctionName:

STM3210E_LCD_Init

*Description:

InitializestheLCD.

*Input:

None

*Output:

*Return:

*******************************************************************************/

voidSTM3210E_LCD_Init(void

/*ConfiguretheLCDControlpins

--------------------------------------------*/

LCD_IOConfig(;

/*ConfiguretheFSMCParallelinterface

-------------------------------------*/

LCD_FSMCConfig(;

LCD_Command=Display_Off;

delay(;

LCD_Command=LCD_Reset;

reset_delay(;

LCD_Command=Set_LCD_Bias_9;

LCD_Command=Set_ADC_Normal;

LCD_Command=COM_Scan_Dir_Reverse;

LCD_Command=Set_Start_Line_X|0x0;

LCD_Command=0x2c;

power_delay(;

//50msrequried

LCD_Command=0x2e;

//50ms

LCD_Command=0x2f;

LCD_Command=Set_Ref_Vol_Reg|0x05;

LCD_Command=Set_Ref_Vol_Mode;

LCD_Command=Set_Ref_Vol_Reg;

LCD_Clear(;

LCD_Command=Set_Page_Addr_X|0x0;

LCD_Command=Set_ColH_Addr_X|0x0;

LCD_Command=Set_ColL_Addr_X|0x0;

LCD_Command=Display_On;

/*********************************************************************************************************************/

voidLCD_IOConfig(void

*/

/*补充:

复位后LCD模式如下:

Pageaddress:

0

Columnaddress:

Modify-read:

OFF

DisplayON/OFF:

Initialdisplayline:

0(first

InitialCOM0register:

0(COM0

Partialdisplaydutyratio:

1/64

Iconenable/disable:

0(disable

ReversedisplayON/OFF:

OFF(normal

n-lineinversionregister:

EntiredisplayON/OFF:

Powercontrolregister(VC,VR,VF=(0,0,0

DC-DCstepup:

3timesconvertercircuit=(0,0

Regulatorresistorselectregister:

(R2,R1,R0=(0,0,0

Referencevoltagecontrolregister:

(EV5,EV4,EV3,EV2,EV1,EV0=(1,0,0,0,0,0

LCDbiasratio:

1/9

SHLselect:

ADCselect:

Oscillatorstatus:

Powersavemode:

release

GPIO_InitTypeDefGPIO_InitStructure;

GPIO_DeInit(GPIOD;

/*SetPD.00(D2,PD.01(D3,PD.04(NOE,PD.05(NWE,PD.14(D0,PD.15(D1asalternate

functionpushpull*/

GPIO_InitStructure.GPIO_Pin=GPIO_Pin_0|GPIO_Pin_1|GPIO_Pin_4|GPIO_Pin_5|

GPIO_Pin_14|GPIO_Pin_15;

GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;

GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AF_PP;

GPIO_Init(GPIOD,&

GPIO_InitStructure;

GPIO_DeInit(GPIOE;

/*SetPE.07(D4,PE.08(D5,PE.09(D6,PE.10(D7asalternatefunctionpushpull*/

GPIO_InitStructure.GPIO_Pin=GPIO_Pin_7|GPIO_Pin_8|GPIO_Pin_9|GPIO_Pin_10;

GPIO_Init(GPIOE,&

//GPIO_DeInit(GPIOF;

/*SetPF.00(A0(RSasalternatefunctionpushpull*/

GPIO_InitStructure.GPIO_Pin=GPIO_Pin_0;

GPIO_Init(GPIOF,&

GPIO_DeInit(GPIOG;

/*SetPG.12(NE4(LCD/CSasalternatefunctionpushpull-CE3(LCD/CS*/

GPIO_InitStructure.GPIO_Pin=GPIO_Pin_12;

GPIO_Init(GPIOG,&

#ifdef__CC_ARM

__asmvoidwait(

nop

BXlr

voiddelay(void;

voiddelay(

vu8i=0x8;

while(i--

wait(;

#else

asm("

nop"

;

voidreset_delay(void;

voidreset_delay({

vu32i=0xff;

voidpower_delay(void;

voidpower_delay({

vu32i=0x4ffff;

LCD_Draw_ST_Logo

drawaSTlogo

0--failure

1--success

voidLCD_Draw_ST_Logo(

u8i,j;

u8*p=DispSTLoGoTable;

for(i=0;

i<

8;

i++

//foreachpage

LCD_Command=Set_Page_Addr_X|i;

//pageno.

//fixedcolfirstaddrdelay(;

j=128;

while(j--

LCD_Data=*p++;

ST的LOGO

u8DispSTLoGoTable[]={

/*page0*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xC0,0xC0,0xE0,0xF0,0xF8,0xF8,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0x7C,0x0C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

/*page1*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF8,0xFC,0xFE,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x7F,0x7F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0xBF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x7F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x0F,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

/*page2*/

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x1F,0x3F,0x7F,0xFF,0xFF

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > PPT模板 > 商务科技

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1