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

📄 stm32f10x_rcc.txt

📁 STM32F103ZET6+UCOSII+UCGUI源码
💻 TXT
📖 第 1 页 / 共 4 页
字号:
000004  4770              BX       lr
;;;968    
                          ENDP

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

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

                  RCC_PCLK1Config PROC
;;;419    *******************************************************************************/
;;;420    void RCC_PCLK1Config(u32 RCC_HCLK)
000000  4a03              LDR      r2,|L24.16|
;;;421    {
;;;422      u32 tmpreg = 0;
;;;423    
;;;424      /* Check the parameters */
;;;425      assert_param(IS_RCC_PCLK(RCC_HCLK));
;;;426    
;;;427      tmpreg = RCC->CFGR;
000002  6851              LDR      r1,[r2,#4]
;;;428    
;;;429      /* Clear PPRE1[2:0] bits */
;;;430      tmpreg &= CFGR_PPRE1_Reset_Mask;
000004  f42161e0          BIC      r1,r1,#0x700
;;;431    
;;;432      /* Set PPRE1[2:0] bits according to RCC_HCLK value */
;;;433      tmpreg |= RCC_HCLK;
000008  4301              ORRS     r1,r1,r0
;;;434    
;;;435      /* Store the new value */
;;;436      RCC->CFGR = tmpreg;
00000a  6051              STR      r1,[r2,#4]
;;;437    }
00000c  4770              BX       lr
;;;438    
                          ENDP

00000e  0000              DCW      0x0000
                  |L24.16|
                          DCD      0x40021000

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

                  RCC_PCLK2Config PROC
;;;452    *******************************************************************************/
;;;453    void RCC_PCLK2Config(u32 RCC_HCLK)
000000  4a03              LDR      r2,|L25.16|
;;;454    {
;;;455      u32 tmpreg = 0;
;;;456    
;;;457      /* Check the parameters */
;;;458      assert_param(IS_RCC_PCLK(RCC_HCLK));
;;;459    
;;;460      tmpreg = RCC->CFGR;
000002  6851              LDR      r1,[r2,#4]
;;;461    
;;;462      /* Clear PPRE2[2:0] bits */
;;;463      tmpreg &= CFGR_PPRE2_Reset_Mask;
000004  f4215160          BIC      r1,r1,#0x3800
;;;464    
;;;465      /* Set PPRE2[2:0] bits according to RCC_HCLK value */
;;;466      tmpreg |= RCC_HCLK << 3;
000008  ea4100c0          ORR      r0,r1,r0,LSL #3
;;;467    
;;;468      /* Store the new value */
;;;469      RCC->CFGR = tmpreg;
00000c  6050              STR      r0,[r2,#4]
;;;470    }
00000e  4770              BX       lr
;;;471    
                          ENDP

                  |L25.16|
                          DCD      0x40021000

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

                  RCC_PLLCmd PROC
;;;314    *******************************************************************************/
;;;315    void RCC_PLLCmd(FunctionalState NewState)
000000  4901              LDR      r1,|L26.8|
;;;316    {
;;;317      /* Check the parameters */
;;;318      assert_param(IS_FUNCTIONAL_STATE(NewState));
;;;319    
;;;320      *(vu32 *) CR_PLLON_BB = (u32)NewState;
000002  6608              STR      r0,[r1,#0x60]
;;;321    }
000004  4770              BX       lr
;;;322    
                          ENDP

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

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

                  RCC_PLLConfig PROC
;;;285    *******************************************************************************/
;;;286    void RCC_PLLConfig(u32 RCC_PLLSource, u32 RCC_PLLMul)
000000  4b03              LDR      r3,|L27.16|
;;;287    {
;;;288      u32 tmpreg = 0;
;;;289    
;;;290      /* Check the parameters */
;;;291      assert_param(IS_RCC_PLL_SOURCE(RCC_PLLSource));
;;;292      assert_param(IS_RCC_PLL_MUL(RCC_PLLMul));
;;;293    
;;;294      tmpreg = RCC->CFGR;
000002  685a              LDR      r2,[r3,#4]
;;;295    
;;;296      /* Clear PLLSRC, PLLXTPRE and PLLMUL[3:0] bits */
;;;297      tmpreg &= CFGR_PLL_Mask;
;;;298    
;;;299      /* Set the PLL configuration bits */
;;;300      tmpreg |= RCC_PLLSource | RCC_PLLMul;
000004  4308              ORRS     r0,r0,r1
000006  f422127c          BIC      r2,r2,#0x3f0000       ;297
00000a  4310              ORRS     r0,r0,r2
;;;301    
;;;302      /* Store the new value */
;;;303      RCC->CFGR = tmpreg;
00000c  6058              STR      r0,[r3,#4]
;;;304    }
00000e  4770              BX       lr
;;;305    
                          ENDP

                  |L27.16|
                          DCD      0x40021000

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

                  RCC_RTCCLKCmd PROC
;;;650    *******************************************************************************/
;;;651    void RCC_RTCCLKCmd(FunctionalState NewState)
000000  4901              LDR      r1,|L28.8|
;;;652    {
;;;653      /* Check the parameters */
;;;654      assert_param(IS_FUNCTIONAL_STATE(NewState));
;;;655    
;;;656      *(vu32 *) BDCR_RTCEN_BB = (u32)NewState;
000002  6008              STR      r0,[r1,#0]
;;;657    }
000004  4770              BX       lr
;;;658    
                          ENDP

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

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

                  RCC_RTCCLKConfig PROC
;;;631    *******************************************************************************/
;;;632    void RCC_RTCCLKConfig(u32 RCC_RTCCLKSource)
000000  4902              LDR      r1,|L29.12|
;;;633    {
;;;634      /* Check the parameters */
;;;635      assert_param(IS_RCC_RTCCLK_SOURCE(RCC_RTCCLKSource));
;;;636    
;;;637      /* Select the RTC clock source */
;;;638      RCC->BDCR |= RCC_RTCCLKSource;
000002  6a0a              LDR      r2,[r1,#0x20]
000004  4302              ORRS     r2,r2,r0
000006  620a              STR      r2,[r1,#0x20]
;;;639    }
000008  4770              BX       lr
;;;640    
                          ENDP

00000a  0000              DCW      0x0000
                  |L29.12|
                          DCD      0x40021000

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

                  RCC_SYSCLKConfig PROC
;;;333    *******************************************************************************/
;;;334    void RCC_SYSCLKConfig(u32 RCC_SYSCLKSource)
000000  4a03              LDR      r2,|L30.16|
;;;335    {
;;;336      u32 tmpreg = 0;
;;;337    
;;;338      /* Check the parameters */
;;;339      assert_param(IS_RCC_SYSCLK_SOURCE(RCC_SYSCLKSource));
;;;340    
;;;341      tmpreg = RCC->CFGR;
000002  6851              LDR      r1,[r2,#4]
;;;342    
;;;343      /* Clear SW[1:0] bits */
;;;344      tmpreg &= CFGR_SW_Mask;
000004  f0210103          BIC      r1,r1,#3
;;;345    
;;;346      /* Set SW[1:0] bits according to RCC_SYSCLKSource value */
;;;347      tmpreg |= RCC_SYSCLKSource;
000008  4301              ORRS     r1,r1,r0
;;;348    
;;;349      /* Store the new value */
;;;350      RCC->CFGR = tmpreg;
00000a  6051              STR      r1,[r2,#4]
;;;351    }
00000c  4770              BX       lr
;;;352    
                          ENDP

00000e  0000              DCW      0x0000
                  |L30.16|
                          DCD      0x40021000

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

                  RCC_USBCLKConfig PROC
;;;518    *******************************************************************************/
;;;519    void RCC_USBCLKConfig(u32 RCC_USBCLKSource)
000000  4901              LDR      r1,|L31.8|
;;;520    {
;;;521      /* Check the parameters */
;;;522      assert_param(IS_RCC_USBCLK_SOURCE(RCC_USBCLKSource));
;;;523    
;;;524      *(vu32 *) CFGR_USBPRE_BB = RCC_USBCLKSource;
000002  6008              STR      r0,[r1,#0]
;;;525    }
000004  4770              BX       lr
;;;526    
                          ENDP

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

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

                  RCC_WaitForHSEStartUp PROC
;;;198    *******************************************************************************/
;;;199    ErrorStatus RCC_WaitForHSEStartUp(void)
000000  b530              PUSH     {r4,r5,lr}
;;;200    {
;;;201      ErrorStatus status = ERROR;
;;;202    
;;;203      /* Wait till HSE is ready and if Time out is reached exit */
;;;204      do
;;;205      {
;;;206        HSEStatus = RCC_GetFlagStatus(RCC_FLAG_HSERDY);
000002  4c0b              LDR      r4,|L32.48|
;;;207        StartUpCounter++;  
;;;208      } while((HSEStatus == RESET) && (StartUpCounter != HSEStartUp_TimeOut));
000004  f24015ff          MOV      r5,#0x1ff
                  |L32.8|
000008  2031              MOVS     r0,#0x31              ;206
00000a  f7fffffe          BL       RCC_GetFlagStatus
00000e  7020              STRB     r0,[r4,#0]            ;206
000010  6860              LDR      r0,[r4,#4]            ;207  ; StartUpCounter
000012  1c40              ADDS     r0,r0,#1              ;207
000014  6060              STR      r0,[r4,#4]            ;207  ; StartUpCounter
000016  7820              LDRB     r0,[r4,#0]  ; HSEStatus
000018  b910              CBNZ     r0,|L32.32|
00001a  6860              LDR      r0,[r4,#4]  ; StartUpCounter
00001c  42a8              CMP      r0,r5
00001e  d1f3              BNE      |L32.8|
                  |L32.32|
;;;209    
;;;210    
;;;211      if (RCC_GetFlagStatus(RCC_FLAG_HSERDY) != RESET)
000020  2031              MOVS     r0,#0x31
000022  f7fffffe          BL       RCC_GetFlagStatus
000026  2800              CMP      r0,#0
000028  d000              BEQ      |L32.44|
;;;212      {
;;;213        status = SUCCESS;
00002a  2001              MOVS     r0,#1
                  |L32.44|
;;;214      }
;;;215      else
;;;216      {
;;;217        status = ERROR;
;;;218      }  
;;;219    
;;;220      return (status);
;;;221    }
00002c  bd30              POP      {r4,r5,pc}
;;;222    
                          ENDP

00002e  0000              DCW      0x0000
                  |L32.48|
                          DCD      ||.data||

                          AREA ||.constdata||, DATA, READONLY, ALIGN=0

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

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

                  HSEStatus
000000  00000000          DCB      0x00,0x00,0x00,0x00
                  StartUpCounter
                          DCD      0x00000000

⌨️ 快捷键说明

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