📄 stm32f10x_rcc.txt
字号:
;;;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 + -