⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 lcd.txt

📁 stm32.rar
💻 TXT
📖 第 1 页 / 共 5 页
字号:
; generated by ARM/Thumb C/C++ Compiler with , RVCT3.1 [Build 942] for uVision
; commandline ArmCC [--split_sections --debug -c --asm --interleave -o.\Int_Flash\lcd.o --depend=.\Int_Flash\lcd.d --device=DARMSTM --apcs=interwork -O3 -I..\include -I..\..\..\..\..\INC\ST\STM32F10x\USB -Id:\Keil\ARM\INC\ST\STM32F10x -D__MICROLIB --omf_browse=.\Int_Flash\lcd.crf ..\source\lcd.c]
                          THUMB

                          AREA ||i.LCD_WriteReg||, CODE, READONLY, ALIGN=1

                  LCD_WriteReg PROC
000000  f04f42d8          MOV      r2,#0x6c000000
000004  8010              STRH     r0,[r2,#0]
000006  8051              STRH     r1,[r2,#2]
000008  4770              BX       lr
                          ENDP


                          AREA ||i.LCD_FSMCConfig||, CODE, READONLY, ALIGN=1

                  LCD_FSMCConfig PROC
;;;781    void LCD_FSMCConfig(void)
;;;782    {
000000  b500              PUSH     {lr}
000002  b097              SUB      sp,sp,#0x5c
;;;783      FSMC_NORSRAMInitTypeDef  FSMC_NORSRAMInitStructure;
;;;784      FSMC_NORSRAMTimingInitTypeDef  p;
;;;785    
;;;786    /*-- FSMC Configuration ------------------------------------------------------*/
;;;787      /* FSMC_Bank1_NORSRAM4 timing configuration */
;;;788      p.FSMC_AddressSetupTime = 1;
000004  2001              MOVS     r0,#1
;;;789      p.FSMC_AddressHoldTime = 0;
000006  9001              STR      r0,[sp,#4]
000008  2000              MOVS     r0,#0
;;;790      p.FSMC_DataSetupTime = 5;
00000a  2105              MOVS     r1,#5
;;;791      p.FSMC_BusTurnAroundDuration = 0;
00000c  e9cd0102          STRD     r0,r1,[sp,#8]
;;;792      p.FSMC_CLKDivision = 0;
;;;793      p.FSMC_DataLatency = 0;
;;;794      p.FSMC_AccessMode = FSMC_AccessMode_B;
000010  f04f5180          MOV      r1,#0x10000000
;;;795    
;;;796      /* FSMC_Bank1_NORSRAM4 configured as follows:
;;;797            - Data/Address MUX = Disable
;;;798            - Memory Type = SRAM
;;;799            - Data Width = 16bit
;;;800            - Write Operation = Enable
;;;801            - Extended Mode = Disable
;;;802            - Asynchronous Wait = Disable */
;;;803      FSMC_NORSRAMInitStructure.FSMC_Bank = FSMC_Bank1_NORSRAM4;
000014  e9cd0106          STRD     r0,r1,[sp,#0x18]
000018  9004              STR      r0,[sp,#0x10]         ;792
00001a  2106              MOVS     r1,#6
;;;804      FSMC_NORSRAMInitStructure.FSMC_DataAddressMux = FSMC_DataAddressMux_Disable;
;;;805      FSMC_NORSRAMInitStructure.FSMC_MemoryType = FSMC_MemoryType_SRAM;
00001c  e9cd1008          STRD     r1,r0,[sp,#0x20]
000020  9005              STR      r0,[sp,#0x14]         ;793
;;;806      FSMC_NORSRAMInitStructure.FSMC_MemoryDataWidth = FSMC_MemoryDataWidth_16b;
000022  2110              MOVS     r1,#0x10
;;;807      FSMC_NORSRAMInitStructure.FSMC_BurstAccessMode = FSMC_BurstAccessMode_Disable;
000024  e9cd010a          STRD     r0,r1,[sp,#0x28]
;;;808      FSMC_NORSRAMInitStructure.FSMC_WaitSignalPolarity = FSMC_WaitSignalPolarity_Low;
000028  900c              STR      r0,[sp,#0x30]
;;;809      FSMC_NORSRAMInitStructure.FSMC_WrapMode = FSMC_WrapMode_Disable;
00002a  900d              STR      r0,[sp,#0x34]
;;;810      FSMC_NORSRAMInitStructure.FSMC_WaitSignalActive = FSMC_WaitSignalActive_BeforeWaitState;
00002c  900e              STR      r0,[sp,#0x38]
;;;811      FSMC_NORSRAMInitStructure.FSMC_WriteOperation = FSMC_WriteOperation_Enable;
00002e  0209              LSLS     r1,r1,#8
;;;812      FSMC_NORSRAMInitStructure.FSMC_WaitSignal = FSMC_WaitSignal_Disable;
000030  e9cd010f          STRD     r0,r1,[sp,#0x3c]
;;;813      FSMC_NORSRAMInitStructure.FSMC_ExtendedMode = FSMC_ExtendedMode_Disable;
000034  9011              STR      r0,[sp,#0x44]
;;;814      FSMC_NORSRAMInitStructure.FSMC_WriteBurst = FSMC_WriteBurst_Disable;
000036  9012              STR      r0,[sp,#0x48]
;;;815      FSMC_NORSRAMInitStructure.FSMC_ReadWriteTimingStruct = &p;
000038  9014              STR      r0,[sp,#0x50]
00003a  a801              ADD      r0,sp,#4
;;;816      FSMC_NORSRAMInitStructure.FSMC_WriteTimingStruct = &p;
00003c  9015              STR      r0,[sp,#0x54]
;;;817    
;;;818      FSMC_NORSRAMInit(&FSMC_NORSRAMInitStructure);  
00003e  9016              STR      r0,[sp,#0x58]
000040  a808              ADD      r0,sp,#0x20
000042  f7fffffe          BL       FSMC_NORSRAMInit
;;;819    
;;;820      /* Enable FSMC_Bank1_NORSRAM4 */
;;;821      FSMC_NORSRAMCmd(FSMC_Bank1_NORSRAM4, ENABLE);
000046  2101              MOVS     r1,#1
000048  2006              MOVS     r0,#6
00004a  f7fffffe          BL       FSMC_NORSRAMCmd
;;;822    }
00004e  b017              ADD      sp,sp,#0x5c
000050  bd00              POP      {pc}
;;;823    
                          ENDP


                          AREA ||i.LCD_CtrlLinesConfig||, CODE, READONLY, ALIGN=2

                  LCD_CtrlLinesConfig PROC
;;;737    void LCD_CtrlLinesConfig(void)
;;;738    {
000000  b508              PUSH     {r3,lr}
;;;739      GPIO_InitTypeDef GPIO_InitStructure;
;;;740    
;;;741      /* Enable FSMC, GPIOD, GPIOE, GPIOF, GPIOG and AFIO clocks */
;;;742      RCC_AHBPeriphClockCmd(RCC_AHBPeriph_FSMC, ENABLE);
000002  2101              MOVS     r1,#1
000004  0208              LSLS     r0,r1,#8
000006  f7fffffe          BL       RCC_AHBPeriphClockCmd
;;;743    
;;;744      RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD | RCC_APB2Periph_GPIOE |
00000a  2101              MOVS     r1,#1
00000c  f24010e1          MOV      r0,#0x1e1
000010  f7fffffe          BL       RCC_APB2PeriphClockCmd
;;;745                             RCC_APB2Periph_GPIOF | RCC_APB2Periph_GPIOG |
;;;746                             RCC_APB2Periph_AFIO, ENABLE);
;;;747    
;;;748      /* Set PD.00(D2), PD.01(D3), PD.04(NOE), PD.05(NWE), PD.08(D13), PD.09(D14),
;;;749         PD.10(D15), PD.14(D0), PD.15(D1) as alternate 
;;;750         function push pull */
;;;751      GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_4 | GPIO_Pin_5 |
000014  f24c7033          MOV      r0,#0xc733
000018  f8ad0000          STRH     r0,[sp,#0]
;;;752                                    GPIO_Pin_8 | GPIO_Pin_9 | GPIO_Pin_10 | GPIO_Pin_14 | 
;;;753                                    GPIO_Pin_15;
;;;754      GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
00001c  2003              MOVS     r0,#3
00001e  f88d0002          STRB     r0,[sp,#2]
;;;755      GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
000022  2018              MOVS     r0,#0x18
000024  f88d0003          STRB     r0,[sp,#3]
;;;756      GPIO_Init(GPIOD, &GPIO_InitStructure);
000028  4669              MOV      r1,sp
00002a  480d              LDR      r0,|L3.96|
00002c  f7fffffe          BL       GPIO_Init
;;;757    
;;;758      /* Set PE.07(D4), PE.08(D5), PE.09(D6), PE.10(D7), PE.11(D8), PE.12(D9), PE.13(D10),
;;;759         PE.14(D11), PE.15(D12) as alternate function push pull */
;;;760      GPIO_InitStructure.GPIO_Pin = GPIO_Pin_7 | GPIO_Pin_8 | GPIO_Pin_9 | GPIO_Pin_10 | 
000030  f64f7080          MOV      r0,#0xff80
000034  f8ad0000          STRH     r0,[sp,#0]
;;;761                                    GPIO_Pin_11 | GPIO_Pin_12 | GPIO_Pin_13 | GPIO_Pin_14 | 
;;;762                                    GPIO_Pin_15;
;;;763      GPIO_Init(GPIOE, &GPIO_InitStructure);
000038  4669              MOV      r1,sp
00003a  480a              LDR      r0,|L3.100|
00003c  f7fffffe          BL       GPIO_Init
;;;764    
;;;765      /* Set PF.00(A0 (RS)) as alternate function push pull */
;;;766      GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0;
000040  2001              MOVS     r0,#1
000042  f8ad0000          STRH     r0,[sp,#0]
;;;767      GPIO_Init(GPIOF, &GPIO_InitStructure);
000046  4669              MOV      r1,sp
000048  4807              LDR      r0,|L3.104|
00004a  f7fffffe          BL       GPIO_Init
;;;768    
;;;769      /* Set PG.12(NE4 (LCD/CS)) as alternate function push pull - CE3(LCD /CS) */
;;;770      GPIO_InitStructure.GPIO_Pin = GPIO_Pin_12;
00004e  f44f5080          MOV      r0,#0x1000
000052  f8ad0000          STRH     r0,[sp,#0]
;;;771      GPIO_Init(GPIOG, &GPIO_InitStructure);
000056  4669              MOV      r1,sp
000058  4804              LDR      r0,|L3.108|
00005a  f7fffffe          BL       GPIO_Init
;;;772    }
00005e  bd08              POP      {r3,pc}
;;;773    
                          ENDP

                  |L3.96|
000060  40011400          DCD      0x40011400
                  |L3.100|
000064  40011800          DCD      0x40011800
                  |L3.104|
000068  40011c00          DCD      0x40011c00
                  |L3.108|
00006c  40012000          DCD      0x40012000

                          AREA ||i.STM3210E_LCD_Init||, CODE, READONLY, ALIGN=1

                  STM3210E_LCD_Init PROC
;;;49     void STM3210E_LCD_Init(void)
;;;50     { 
000000  e92d5ff0          PUSH     {r4-r12,lr}
;;;51     /* Configure the LCD Control pins --------------------------------------------*/
;;;52       LCD_CtrlLinesConfig();
000004  f7fffffe          BL       LCD_CtrlLinesConfig
;;;53     
;;;54     /* Configure the FSMC Parallel interface -------------------------------------*/
;;;55       LCD_FSMCConfig();
000008  f7fffffe          BL       LCD_FSMCConfig
;;;56     
;;;57       Delay(5); /* delay 50 ms */
00000c  2005              MOVS     r0,#5
00000e  f7fffffe          BL       Delay
000012  20e3              MOVS     r0,#0xe3
000014  f04f44d8          MOV      r4,#0x6c000000
000018  8020              STRH     r0,[r4,#0]
00001a  f2430008          MOV      r0,#0x3008
00001e  8060              STRH     r0,[r4,#2]
000020  20e7              MOVS     r0,#0xe7
000022  8020              STRH     r0,[r4,#0]
000024  2612              MOVS     r6,#0x12
000026  8066              STRH     r6,[r4,#2]
000028  f04f0aef          MOV      r10,#0xef
00002c  f8a4a000          STRH     r10,[r4,#0]
000030  f2412031          MOV      r0,#0x1231
000034  8060              STRH     r0,[r4,#2]
000036  2001              MOVS     r0,#1
000038  8020              STRH     r0,[r4,#0]
00003a  0200              LSLS     r0,r0,#8
00003c  8060              STRH     r0,[r4,#2]
00003e  2002              MOVS     r0,#2
000040  8020              STRH     r0,[r4,#0]
000042  f44f60e0          MOV      r0,#0x700
000046  8060              STRH     r0,[r4,#2]
000048  2703              MOVS     r7,#3
00004a  8027              STRH     r7,[r4,#0]
00004c  f2410030          MOV      r0,#0x1030
000050  8060              STRH     r0,[r4,#2]
000052  2004              MOVS     r0,#4
000054  8020              STRH     r0,[r4,#0]
000056  2500              MOVS     r5,#0
000058  8065              STRH     r5,[r4,#2]
00005a  2008              MOVS     r0,#8
00005c  8020              STRH     r0,[r4,#0]
00005e  f2402002          MOV      r0,#0x202
000062  8060              STRH     r0,[r4,#2]
000064  2009              MOVS     r0,#9
000066  8020              STRH     r0,[r4,#0]
000068  8065              STRH     r5,[r4,#2]
00006a  200a              MOVS     r0,#0xa
00006c  8020              STRH     r0,[r4,#0]
00006e  8065              STRH     r5,[r4,#2]
000070  200c              MOVS     r0,#0xc
000072  8020              STRH     r0,[r4,#0]
000074  8065              STRH     r5,[r4,#2]
000076  200d              MOVS     r0,#0xd
000078  8020              STRH     r0,[r4,#0]
00007a  8065              STRH     r5,[r4,#2]
00007c  200f              MOVS     r0,#0xf
00007e  8020              STRH     r0,[r4,#0]
000080  8065              STRH     r5,[r4,#2]
000082  f04f0810          MOV      r8,#0x10
000086  f8a48000          STRH     r8,[r4,#0]
00008a  8065              STRH     r5,[r4,#2]
00008c  f04f0b11          MOV      r11,#0x11
000090  f8a4b000          STRH     r11,[r4,#0]
000094  8065              STRH     r5,[r4,#2]
000096  8026              STRH     r6,[r4,#0]
000098  8065              STRH     r5,[r4,#2]
00009a  f04f0913          MOV      r9,#0x13
00009e  f8a49000          STRH     r9,[r4,#0]
0000a2  8065              STRH     r5,[r4,#2]
;;;58     /* Start Initial Sequence ----------------------------------------------------*/
;;;59     	LCD_WriteReg(0x00e3,0x3008);
;;;60     	LCD_WriteReg(0x00e7,0x0012);
;;;61     	LCD_WriteReg(0x00ef,0x1231);//Set the internal vcore voltage
;;;62     	LCD_WriteReg(0x0001,0x0100);//S
;;;63     	
;;;64       //LCD_WriteReg(R229,0x8000); /* Set the internal vcore voltage */
;;;65       //LCD_WriteReg(R0,  0x0001); /* Start internal OSC. */
;;;66       //LCD_WriteReg(R1,  0x0100); /* set SS and SM bit */
;;;67       LCD_WriteReg(R2,  0x0700); /* set 1 line inversion */
;;;68       LCD_WriteReg(R3,  0x1030); /* set GRAM write direction and BGR=1. */
;;;69       LCD_WriteReg(R4,  0x0000); /* Resize register */
;;;70       LCD_WriteReg(R8,  0x0202); /* set the back porch and front porch */
;;;71       LCD_WriteReg(R9,  0x0000); /* set non-display area refresh cycle ISC[3:0] */
;;;72       LCD_WriteReg(R10, 0x0000); /* FMARK function */
;;;73       LCD_WriteReg(R12, 0x0000); /* RGB interface setting */
;;;74       LCD_WriteReg(R13, 0x0000); /* Frame marker Position */
;;;75       LCD_WriteReg(R15, 0x0000); /* RGB interface polarity */
;;;76     
;;;77     /* Power On sequence ---------------------------------------------------------*/
;;;78       LCD_WriteReg(R16, 0x0000); /* SAP, BT[3:0], AP, DSTB, SLP, STB */
;;;79       LCD_WriteReg(R17, 0x0000); /* DC1[2:0], DC0[2:0], VC[2:0] */
;;;80       LCD_WriteReg(R18, 0x0000); /* VREG1OUT voltage */
;;;81       LCD_WriteReg(R19, 0x0000); /* VDV[4:0] for VCOM amplitude */
;;;82       Delay(20);                 /* Dis-charge capacitor power voltage (200ms) */
0000a4  2014              MOVS     r0,#0x14
0000a6  f7fffffe          BL       Delay
0000aa  f8a48000          STRH     r8,[r4,#0]
0000ae  f24170b0          MOV      r0,#0x17b0
0000b2  8060              STRH     r0,[r4,#2]
0000b4  f8a4b000          STRH     r11,[r4,#0]
0000b8  f2401037          MOV      r0,#0x137
0000bc  8060              STRH     r0,[r4,#2]
;;;83       LCD_WriteReg(R16, 0x17B0); /* SAP, BT[3:0], AP, DSTB, SLP, STB */
;;;84       LCD_WriteReg(R17, 0x0137); /* DC1[2:0], DC0[2:0], VC[2:0] */
;;;85       Delay(5);                  /* Delay 50 ms */
0000be  2005              MOVS     r0,#5
0000c0  f7fffffe          BL       Delay
0000c4  8026              STRH     r6,[r4,#0]
0000c6  f2401039          MOV      r0,#0x139
0000ca  8060              STRH     r0,[r4,#2]
;;;86       LCD_WriteReg(R18, 0x0139); /* VREG1OUT voltage */
;;;87       Delay(5);                  /* Delay 50 ms */
0000cc  2005              MOVS     r0,#5
0000ce  f7fffffe          BL       Delay
0000d2  f8a49000          STRH     r9,[r4,#0]
0000d6  f44f50e8          MOV      r0,#0x1d00
0000da  8060              STRH     r0,[r4,#2]
0000dc  2029              MOVS     r0,#0x29
0000de  8020              STRH     r0,[r4,#0]
0000e0  f8a49002          STRH     r9,[r4,#2]
;;;88       LCD_WriteReg(R19, 0x1d00); /* VDV[4:0] for VCOM amplitude */
;;;89       LCD_WriteReg(R41, 0x0013); /* VCM[4:0] for VCOMH */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -