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

📄 main.txt

📁 STM32 demo板的例程
💻 TXT
📖 第 1 页 / 共 2 页
字号:
; generated by ARM/Thumb C/C++ Compiler with , RVCT3.1 [Build 919] for uVision
; commandline ArmCC [--debug -c --asm --interleave -o..\obj\main.o --depend=..\obj\main.d --device=DARMSTM --apcs=interwork -O0 -I..\..\LAB5 -I..\..\library\inc -IC:\Keil\ARM\INC\ST\STM32F10x -DVECT_TAB_RAM --omf_browse=..\obj\main.crf main.c]
                          THUMB

                          AREA ||.text||, CODE, READONLY, ALIGN=2

                  Delay PROC
;;;242    {
;;;243      for(; nCount!= 0;nCount--);
000000  e000              B        |L1.4|
                  |L1.2|
000002  1e40              SUBS     r0,r0,#1
                  |L1.4|
000004  2800              CMP      r0,#0
000006  d1fc              BNE      |L1.2|
;;;244    }
000008  4770              BX       lr
;;;245    
                          ENDP

                  EXTI_Configuration PROC
;;;211    void EXTI_Configuration(void)
;;;212    {
00000a  b51c              PUSH     {r2-r4,lr}
;;;213      EXTI_InitTypeDef EXTI_InitStructure;
;;;214    
;;;215      /* Connect EXTI Line0 to PA.00 */
;;;216      GPIO_EXTILineConfig(GPIO_PortSourceGPIOA, GPIO_PinSource0);
00000c  2100              MOVS     r1,#0
00000e  4608              MOV      r0,r1
000010  f7fff7ff          BL       GPIO_EXTILineConfig
;;;217      
;;;218      EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;
000014  2000              MOVS     r0,#0
000016  f88df88d          STRB     r0,[sp,#4]
;;;219      EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Falling;
00001a  200c              MOVS     r0,#0xc
00001c  f88df88d          STRB     r0,[sp,#5]
;;;220      EXTI_InitStructure.EXTI_Line = EXTI_Line0;
000020  2001              MOVS     r0,#1
000022  9000              STR      r0,[sp,#0]
;;;221      EXTI_InitStructure.EXTI_LineCmd = ENABLE;
000024  f88df88d          STRB     r0,[sp,#6]
;;;222      EXTI_Init(&EXTI_InitStructure);
000028  4668              MOV      r0,sp
00002a  f7fff7ff          BL       EXTI_Init
;;;223      
;;;224      /* Connect EXTI Line9 to PC.13 */
;;;225      GPIO_EXTILineConfig(GPIO_PortSourceGPIOC, GPIO_PinSource13);
00002e  210d              MOVS     r1,#0xd
000030  2002              MOVS     r0,#2
000032  f7fff7ff          BL       GPIO_EXTILineConfig
;;;226      
;;;227      EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;
000036  2000              MOVS     r0,#0
000038  f88df88d          STRB     r0,[sp,#4]
;;;228      EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Falling;
00003c  200c              MOVS     r0,#0xc
00003e  f88df88d          STRB     r0,[sp,#5]
;;;229      EXTI_InitStructure.EXTI_Line = EXTI_Line9;
000042  f44ff44f          MOV      r0,#0x200
000046  9000              STR      r0,[sp,#0]
;;;230      EXTI_InitStructure.EXTI_LineCmd = ENABLE;
000048  2001              MOVS     r0,#1
00004a  f88df88d          STRB     r0,[sp,#6]
;;;231      EXTI_Init(&EXTI_InitStructure);
00004e  4668              MOV      r0,sp
000050  f7fff7ff          BL       EXTI_Init
;;;232    }
000054  bd1c              POP      {r2-r4,pc}
;;;233    
                          ENDP

                  GPIO_Configuration PROC
;;;183    void GPIO_Configuration(void)
;;;184    {
000056  b508              PUSH     {r3,lr}
;;;185      GPIO_InitTypeDef GPIO_InitStructure;
;;;186    
;;;187      /* Configure PC6, PC7, PC8 and PC9 as output push-pull */
;;;188      GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
000058  2010              MOVS     r0,#0x10
00005a  f88df88d          STRB     r0,[sp,#3]
;;;189      GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
00005e  2003              MOVS     r0,#3
000060  f88df88d          STRB     r0,[sp,#2]
;;;190      GPIO_InitStructure.GPIO_Pin =  GPIO_Pin_8 | GPIO_Pin_9 | GPIO_Pin_10 | GPIO_Pin_11|GPIO_Pin_12|GPIO_Pin_13|GPIO_Pin_14|GPIO_Pin_15;
000064  f44ff44f          MOV      r0,#0xff00
000068  f8adf8ad          STRH     r0,[sp,#0]
;;;191      GPIO_Init(GPIOB, &GPIO_InitStructure);
00006c  4669              MOV      r1,sp
00006e  487c              LDR      r0,|L1.608|
000070  f7fff7ff          BL       GPIO_Init
;;;192      
;;;193      /* Configure GPIOA Pin0 as input floating */
;;;194      GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0;
000074  2001              MOVS     r0,#1
000076  f8adf8ad          STRH     r0,[sp,#0]
;;;195      GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
00007a  2004              MOVS     r0,#4
00007c  f88df88d          STRB     r0,[sp,#3]
;;;196      GPIO_Init(GPIOA, &GPIO_InitStructure);
000080  4669              MOV      r1,sp
000082  4878              LDR      r0,|L1.612|
000084  f7fff7ff          BL       GPIO_Init
;;;197      
;;;198      /* Configure GPIOB Pin9 as input floating */
;;;199      GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13;
000088  f44ff44f          MOV      r0,#0x2000
00008c  f8adf8ad          STRH     r0,[sp,#0]
;;;200      GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
000090  2004              MOVS     r0,#4
000092  f88df88d          STRB     r0,[sp,#3]
;;;201      GPIO_Init(GPIOC, &GPIO_InitStructure);
000096  4669              MOV      r1,sp
000098  4873              LDR      r0,|L1.616|
00009a  f7fff7ff          BL       GPIO_Init
;;;202    }
00009e  bd08              POP      {r3,pc}
;;;203    
                          ENDP

                  RCC_Configuration PROC
;;;118    void RCC_Configuration(void)
;;;119    {
0000a0  b510              PUSH     {r4,lr}
;;;120      /* RCC system reset(for debug purpose) */
;;;121      RCC_DeInit();
0000a2  f7fff7ff          BL       RCC_DeInit
;;;122    
;;;123      /* Enable HSE */
;;;124      RCC_HSEConfig(RCC_HSE_ON);
0000a6  f44ff44f          MOV      r0,#0x10000
0000aa  f7fff7ff          BL       RCC_HSEConfig
;;;125    
;;;126      /* Wait till HSE is ready */
;;;127      while(RCC_GetFlagStatus(RCC_FLAG_HSERDY) == RESET)
0000ae  bf00              NOP      
                  |L1.176|
0000b0  2031              MOVS     r0,#0x31
0000b2  f7fff7ff          BL       RCC_GetFlagStatus
0000b6  2800              CMP      r0,#0
0000b8  d0fa              BEQ      |L1.176|
;;;128      {
;;;129      }
;;;130    
;;;131      /* HCLK = SYSCLK */
;;;132      RCC_HCLKConfig(RCC_SYSCLK_Div1); 
0000ba  2000              MOVS     r0,#0
0000bc  f7fff7ff          BL       RCC_HCLKConfig
;;;133      
;;;134      /* PCLK2 = HCLK */
;;;135      RCC_PCLK2Config(RCC_HCLK_Div1); 
0000c0  2000              MOVS     r0,#0
0000c2  f7fff7ff          BL       RCC_PCLK2Config
;;;136    
;;;137      /* PCLK1 = HCLK */
;;;138      RCC_PCLK1Config(RCC_HCLK_Div1);
0000c6  2000              MOVS     r0,#0
0000c8  f7fff7ff          BL       RCC_PCLK1Config
;;;139    
;;;140      /* Select HSE as system clock source */
;;;141      RCC_SYSCLKConfig(RCC_SYSCLKSource_HSE);
0000cc  2001              MOVS     r0,#1
0000ce  f7fff7ff          BL       RCC_SYSCLKConfig
;;;142    
;;;143      /* Wait till HSE is used as system clock source */
;;;144      while(RCC_GetSYSCLKSource() != 0x04)
0000d2  bf00              NOP      
                  |L1.212|
0000d4  f7fff7ff          BL       RCC_GetSYSCLKSource
0000d8  2804              CMP      r0,#4
0000da  d1fb              BNE      |L1.212|
;;;145      {
;;;146      }
;;;147    
;;;148      /* Enable GPIOA, GPIOB, GPIOC and AFIO clock */
;;;149      RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOB
0000dc  2101              MOVS     r1,#1
0000de  201d              MOVS     r0,#0x1d
0000e0  f7fff7ff          BL       RCC_APB2PeriphClockCmd
;;;150                             | RCC_APB2Periph_GPIOC | RCC_APB2Periph_AFIO, ENABLE);
;;;151    }
0000e4  bd10              POP      {r4,pc}
;;;152    
                          ENDP

                  main PROC
;;;43     int main(void)
;;;44     {
0000e6  b510              PUSH     {r4,lr}
;;;45     #ifdef DEBUG
;;;46       debug();
;;;47     #endif
;;;48       
;;;49       /* System Clocks Configuration */
;;;50       RCC_Configuration();
0000e8  f7fff7ff          BL       RCC_Configuration
;;;51       
;;;52       /* Configure GPIOs */
;;;53       GPIO_Configuration();
0000ec  f7fff7ff          BL       GPIO_Configuration
;;;54     
;;;55       /* Configures the EXTI Lines */
;;;56       EXTI_Configuration();
0000f0  f7fff7ff          BL       EXTI_Configuration
;;;57     
;;;58            
;;;59     #ifdef  VECT_TAB_RAM  
;;;60       /* Set the Vector Table base location at 0x20000000 */ 

⌨️ 快捷键说明

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