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

📄 stm32f10x_rcc.txt

📁 STM32手持式示波器源代码
💻 TXT
📖 第 1 页 / 共 4 页
字号:
;;;848          break;      
000028  bf00              NOP      
                  |L21.42|
00002a  bf00              NOP                            ;840
;;;849      }
;;;850    }
00002c  4770              BX       lr
;;;851    
                          ENDP

00002e  0000              DCW      0x0000
                  |L21.48|
                          DCD      0x40021020

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

                  RCC_LSICmd PROC
;;;857      */
;;;858    void RCC_LSICmd(FunctionalState NewState)
000000  4901              LDR      r1,|L22.8|
;;;859    {
;;;860      /* Check the parameters */
;;;861      assert_param(IS_FUNCTIONAL_STATE(NewState));
;;;862      *(__IO uint32_t *) CSR_LSION_BB = (uint32_t)NewState;
000002  6008              STR      r0,[r1,#0]
;;;863    }
000004  4770              BX       lr
;;;864    
                          ENDP

000006  0000              DCW      0x0000
                  |L22.8|
                          DCD      0x42420480

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

                  RCC_MCOConfig PROC
;;;1258     */
;;;1259   void RCC_MCOConfig(uint8_t RCC_MCO)
000000  4901              LDR      r1,|L23.8|
;;;1260   {
;;;1261     /* Check the parameters */
;;;1262     assert_param(IS_RCC_MCO(RCC_MCO));
;;;1263   
;;;1264     /* Perform Byte access to MCO bits to select the MCO source */
;;;1265     *(__IO uint8_t *) CFGR_BYTE4_ADDRESS = RCC_MCO;
000002  71c8              STRB     r0,[r1,#7]
;;;1266   }
000004  4770              BX       lr
;;;1267   
                          ENDP

000006  0000              DCW      0x0000
                  |L23.8|
                          DCD      0x40021000

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

                  RCC_PCLK1Config PROC
;;;629      */
;;;630    void RCC_PCLK1Config(uint32_t RCC_HCLK)
000000  2100              MOVS     r1,#0
;;;631    {
;;;632      uint32_t tmpreg = 0;
;;;633      /* Check the parameters */
;;;634      assert_param(IS_RCC_PCLK(RCC_HCLK));
;;;635      tmpreg = RCC->CFGR;
000002  4a03              LDR      r2,|L24.16|
000004  6851              LDR      r1,[r2,#4]
;;;636      /* Clear PPRE1[2:0] bits */
;;;637      tmpreg &= CFGR_PPRE1_Reset_Mask;
000006  f42161e0          BIC      r1,r1,#0x700
;;;638      /* Set PPRE1[2:0] bits according to RCC_HCLK value */
;;;639      tmpreg |= RCC_HCLK;
00000a  4301              ORRS     r1,r1,r0
;;;640      /* Store the new value */
;;;641      RCC->CFGR = tmpreg;
00000c  6051              STR      r1,[r2,#4]
;;;642    }
00000e  4770              BX       lr
;;;643    
                          ENDP

                  |L24.16|
                          DCD      0x40021000

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

                  RCC_PCLK2Config PROC
;;;655      */
;;;656    void RCC_PCLK2Config(uint32_t RCC_HCLK)
000000  2100              MOVS     r1,#0
;;;657    {
;;;658      uint32_t tmpreg = 0;
;;;659      /* Check the parameters */
;;;660      assert_param(IS_RCC_PCLK(RCC_HCLK));
;;;661      tmpreg = RCC->CFGR;
000002  4a04              LDR      r2,|L25.20|
000004  6851              LDR      r1,[r2,#4]
;;;662      /* Clear PPRE2[2:0] bits */
;;;663      tmpreg &= CFGR_PPRE2_Reset_Mask;
000006  f4215160          BIC      r1,r1,#0x3800
;;;664      /* Set PPRE2[2:0] bits according to RCC_HCLK value */
;;;665      tmpreg |= RCC_HCLK << 3;
00000a  ea4101c0          ORR      r1,r1,r0,LSL #3
;;;666      /* Store the new value */
;;;667      RCC->CFGR = tmpreg;
00000e  6051              STR      r1,[r2,#4]
;;;668    }
000010  4770              BX       lr
;;;669    
                          ENDP

000012  0000              DCW      0x0000
                  |L25.20|
                          DCD      0x40021000

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

                  RCC_PLLCmd PROC
;;;400      */
;;;401    void RCC_PLLCmd(FunctionalState NewState)
000000  4901              LDR      r1,|L26.8|
;;;402    {
;;;403      /* Check the parameters */
;;;404      assert_param(IS_FUNCTIONAL_STATE(NewState));
;;;405    
;;;406      *(__IO uint32_t *) CR_PLLON_BB = (uint32_t)NewState;
000002  6608              STR      r0,[r1,#0x60]
;;;407    }
000004  4770              BX       lr
;;;408    
                          ENDP

000006  0000              DCW      0x0000
                  |L26.8|
                          DCD      0x42420000

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

                  RCC_PLLConfig PROC
;;;377      */
;;;378    void RCC_PLLConfig(uint32_t RCC_PLLSource, uint32_t RCC_PLLMul)
000000  2200              MOVS     r2,#0
;;;379    {
;;;380      uint32_t tmpreg = 0;
;;;381    
;;;382      /* Check the parameters */
;;;383      assert_param(IS_RCC_PLL_SOURCE(RCC_PLLSource));
;;;384      assert_param(IS_RCC_PLL_MUL(RCC_PLLMul));
;;;385    
;;;386      tmpreg = RCC->CFGR;
000002  4b05              LDR      r3,|L27.24|
000004  685a              LDR      r2,[r3,#4]
;;;387      /* Clear PLLSRC, PLLXTPRE and PLLMUL[3:0] bits */
;;;388      tmpreg &= CFGR_PLL_Mask;
000006  f422127c          BIC      r2,r2,#0x3f0000
;;;389      /* Set the PLL configuration bits */
;;;390      tmpreg |= RCC_PLLSource | RCC_PLLMul;
00000a  ea400301          ORR      r3,r0,r1
00000e  431a              ORRS     r2,r2,r3
;;;391      /* Store the new value */
;;;392      RCC->CFGR = tmpreg;
000010  4b01              LDR      r3,|L27.24|
000012  605a              STR      r2,[r3,#4]
;;;393    }
000014  4770              BX       lr
;;;394    
                          ENDP

000016  0000              DCW      0x0000
                  |L27.24|
                          DCD      0x40021000

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

                  RCC_RTCCLKCmd PROC
;;;888      */
;;;889    void RCC_RTCCLKCmd(FunctionalState NewState)
000000  4901              LDR      r1,|L28.8|
;;;890    {
;;;891      /* Check the parameters */
;;;892      assert_param(IS_FUNCTIONAL_STATE(NewState));
;;;893      *(__IO uint32_t *) BDCR_RTCEN_BB = (uint32_t)NewState;
000002  6008              STR      r0,[r1,#0]
;;;894    }
000004  4770              BX       lr
;;;895    
                          ENDP

000006  0000              DCW      0x0000
                  |L28.8|
                          DCD      0x4242043c

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

                  RCC_RTCCLKConfig PROC
;;;874      */
;;;875    void RCC_RTCCLKConfig(uint32_t RCC_RTCCLKSource)
000000  4902              LDR      r1,|L29.12|
;;;876    {
;;;877      /* Check the parameters */
;;;878      assert_param(IS_RCC_RTCCLK_SOURCE(RCC_RTCCLKSource));
;;;879      /* Select the RTC clock source */
;;;880      RCC->BDCR |= RCC_RTCCLKSource;
000002  6a09              LDR      r1,[r1,#0x20]
000004  4301              ORRS     r1,r1,r0
000006  4a01              LDR      r2,|L29.12|
000008  6211              STR      r1,[r2,#0x20]
;;;881    }
00000a  4770              BX       lr
;;;882    
                          ENDP

                  |L29.12|
                          DCD      0x40021000

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

                  RCC_SYSCLKConfig PROC
;;;559      */
;;;560    void RCC_SYSCLKConfig(uint32_t RCC_SYSCLKSource)
000000  2100              MOVS     r1,#0
;;;561    {
;;;562      uint32_t tmpreg = 0;
;;;563      /* Check the parameters */
;;;564      assert_param(IS_RCC_SYSCLK_SOURCE(RCC_SYSCLKSource));
;;;565      tmpreg = RCC->CFGR;
000002  4a03              LDR      r2,|L30.16|
000004  6851              LDR      r1,[r2,#4]
;;;566      /* Clear SW[1:0] bits */
;;;567      tmpreg &= CFGR_SW_Mask;
000006  f0210103          BIC      r1,r1,#3
;;;568      /* Set SW[1:0] bits according to RCC_SYSCLKSource value */
;;;569      tmpreg |= RCC_SYSCLKSource;
00000a  4301              ORRS     r1,r1,r0
;;;570      /* Store the new value */
;;;571      RCC->CFGR = tmpreg;
00000c  6051              STR      r1,[r2,#4]
;;;572    }
00000e  4770              BX       lr
;;;573    
                          ENDP

                  |L30.16|
                          DCD      0x40021000

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

                  RCC_USBCLKConfig PROC
;;;723      */
;;;724    void RCC_USBCLKConfig(uint32_t RCC_USBCLKSource)
000000  4901              LDR      r1,|L31.8|
;;;725    {
;;;726      /* Check the parameters */
;;;727      assert_param(IS_RCC_USBCLK_SOURCE(RCC_USBCLKSource));
;;;728    
;;;729      *(__IO uint32_t *) CFGR_USBPRE_BB = RCC_USBCLKSource;
000002  6008              STR      r0,[r1,#0]
;;;730    }
000004  4770              BX       lr
;;;731    #else
                          ENDP

000006  0000              DCW      0x0000
                  |L31.8|
                          DCD      0x424200d8

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

                  RCC_WaitForHSEStartUp PROC
;;;303      */
;;;304    ErrorStatus RCC_WaitForHSEStartUp(void)
000000  b570              PUSH     {r4-r6,lr}
;;;305    {
;;;306      __IO uint32_t StartUpCounter = 0;
000002  2400              MOVS     r4,#0
;;;307      ErrorStatus status = ERROR;
000004  2500              MOVS     r5,#0
;;;308      FlagStatus HSEStatus = RESET;
000006  2600              MOVS     r6,#0
;;;309      
;;;310      /* Wait till HSE is ready and if Time out is reached exit */
;;;311      do
000008  bf00              NOP      
                  |L32.10|
;;;312      {
;;;313        HSEStatus = RCC_GetFlagStatus(RCC_FLAG_HSERDY);
00000a  2031              MOVS     r0,#0x31
00000c  f7fffffe          BL       RCC_GetFlagStatus
000010  4606              MOV      r6,r0
;;;314        StartUpCounter++;  
000012  1c64              ADDS     r4,r4,#1
;;;315      } while((StartUpCounter != HSEStartUp_TimeOut) && (HSEStatus == RESET));
000014  f5b46fa0          CMP      r4,#0x500
000018  d001              BEQ      |L32.30|
00001a  2e00              CMP      r6,#0
00001c  d0f5              BEQ      |L32.10|
                  |L32.30|
;;;316      
;;;317      if (RCC_GetFlagStatus(RCC_FLAG_HSERDY) != RESET)
00001e  2031              MOVS     r0,#0x31
000020  f7fffffe          BL       RCC_GetFlagStatus
000024  b108              CBZ      r0,|L32.42|
;;;318      {
;;;319        status = SUCCESS;
000026  2501              MOVS     r5,#1
000028  e000              B        |L32.44|
                  |L32.42|
;;;320      }
;;;321      else
;;;322      {
;;;323        status = ERROR;
00002a  2500              MOVS     r5,#0
                  |L32.44|
;;;324      }  
;;;325      return (status);
00002c  4628              MOV      r0,r5
;;;326    }
00002e  bd70              POP      {r4-r6,pc}
;;;327    
                          ENDP


                          AREA ||.data||, DATA, ALIGN=0

                  APBAHBPrescTable
000000  00000000          DCB      0x00,0x00,0x00,0x00
000004  01020304          DCB      0x01,0x02,0x03,0x04
000008  01020304          DCB      0x01,0x02,0x03,0x04
00000c  06070809          DCB      0x06,0x07,0x08,0x09
                  ADCPrescTable
000010  02040608          DCB      0x02,0x04,0x06,0x08

⌨️ 快捷键说明

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