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

📄 main.s

📁 完成数据的采集
💻 S
📖 第 1 页 / 共 3 页
字号:
        LDR.N    R0,??DataTable11  ;; 0x40012400
        BL       ADC_SoftwareStartConvCmd
??GetADC1Channel_0:
        MOVS     R1,#+2
        LDR.N    R0,??DataTable11  ;; 0x40012400
        BL       ADC_GetFlagStatus
        CMP      R0,#+0
        BEQ.N    ??GetADC1Channel_0
        LDR.N    R0,??DataTable11  ;; 0x40012400
        BL       ADC_GetConversionValue
        POP      {R4,PC}          ;; return

        SECTION `.XML`:CODE:NOROOT(2)
        THUMB
InitADC1:
        PUSH     {LR}
        SUB      SP,SP,#+28
        MOVS     R1,#+1
        MOVS     R0,#+512
        BL       RCC_APB2PeriphClockCmd
        LDR.N    R0,??DataTable11  ;; 0x40012400
        BL       ADC_DeInit
        MOVS     R0,#+8
        STRH     R0,[SP, #+0]
        MOVS     R0,#+0
        STRB     R0,[SP, #+2]
        MOVS     R0,#+0
        STRB     R0,[SP, #+3]
        MOV      R1,SP
        LDR.N    R0,??DataTable19  ;; 0x40011000
        BL       GPIO_Init
        ADD      R0,SP,#+4
        BL       ADC_StructInit
        MOVS     R0,#+0
        STR      R0,[SP, #+4]
        MOVS     R0,#+0
        STRB     R0,[SP, #+8]
        MOVS     R0,#+0
        STRB     R0,[SP, #+9]
        MOVS     R0,#+917504
        STR      R0,[SP, #+12]
        MOVS     R0,#+0
        STR      R0,[SP, #+16]
        MOVS     R0,#+1
        STRB     R0,[SP, #+20]
        ADD      R1,SP,#+4
        LDR.N    R0,??DataTable11  ;; 0x40012400
        BL       ADC_Init
        MOVS     R1,#+1
        LDR.N    R0,??DataTable11  ;; 0x40012400
        BL       ADC_Cmd
        LDR.N    R0,??DataTable11  ;; 0x40012400
        BL       ADC_ResetCalibration
??InitADC1_0:
        LDR.N    R0,??DataTable11  ;; 0x40012400
        BL       ADC_GetResetCalibrationStatus
        CMP      R0,#+1
        BEQ.N    ??InitADC1_0
        LDR.N    R0,??DataTable11  ;; 0x40012400
        BL       ADC_StartCalibration
??InitADC1_1:
        LDR.N    R0,??DataTable11  ;; 0x40012400
        BL       ADC_GetCalibrationStatus
        CMP      R0,#+1
        BEQ.N    ??InitADC1_1
        ADD      SP,SP,#+28
        POP      {PC}             ;; return

        SECTION `.XML`:CODE:NOROOT(2)
        DATA
??DataTable11:
        DC32     0x40012400

        SECTION `.XML`:CODE:NOROOT(2)
        THUMB
ADC_TEMP:
        PUSH     {R0,R4-R7,LR}
        MOVS     R4,R0
        MOVS     R0,#+13
        BL       GetADC1Channel
        MOVS     R5,R0
        LDR.N    R0,??ADC_TEMP_0  ;; ??TAD + 14
        LDR.N    R1,??ADC_TEMP_0+0x4  ;; ??TAD + 12
        LDRH     R1,[R1, #+0]
        STRH     R1,[R0, #+0]
        LDR.N    R0,??ADC_TEMP_0+0x4  ;; ??TAD + 12
        LDR.N    R1,??ADC_TEMP_0+0x8  ;; ??TAD + 10
        LDRH     R1,[R1, #+0]
        STRH     R1,[R0, #+0]
        LDR.N    R0,??ADC_TEMP_0+0x8  ;; ??TAD + 10
        LDR.N    R1,??ADC_TEMP_0+0xC  ;; ??TAD + 8
        LDRH     R1,[R1, #+0]
        STRH     R1,[R0, #+0]
        LDR.N    R0,??ADC_TEMP_0+0xC  ;; ??TAD + 8
        LDR.N    R1,??ADC_TEMP_0+0x10  ;; ??TAD + 6
        LDRH     R1,[R1, #+0]
        STRH     R1,[R0, #+0]
        LDR.N    R0,??ADC_TEMP_0+0x10  ;; ??TAD + 6
        LDR.N    R1,??ADC_TEMP_0+0x14  ;; ??TAD + 4
        LDRH     R1,[R1, #+0]
        STRH     R1,[R0, #+0]
        LDR.N    R0,??ADC_TEMP_0+0x14  ;; ??TAD + 4
        LDR.N    R1,??ADC_TEMP_0+0x18  ;; ??TAD + 2
        LDRH     R1,[R1, #+0]
        STRH     R1,[R0, #+0]
        LDR.N    R0,??ADC_TEMP_0+0x18  ;; ??TAD + 2
        LDR.N    R1,??ADC_TEMP_0+0x1C  ;; ??TAD
        LDRH     R1,[R1, #+0]
        STRH     R1,[R0, #+0]
        LDR.N    R0,??ADC_TEMP_0+0x1C  ;; ??TAD
        STRH     R5,[R0, #+0]
        LDR.N    R0,??ADC_TEMP_0+0x20  ;; ??ADC_COUNT
        LDRH     R0,[R0, #+0]
        ADDS     R0,R0,#+1
        LDR.N    R1,??ADC_TEMP_0+0x20  ;; ??ADC_COUNT
        STRH     R0,[R1, #+0]
        UXTH     R0,R0            ;; ZeroExtS R0,R0,#+16,#+16
        CMP      R0,#+5
        BCC.N    ??ADC_TEMP_1
        LDR.N    R0,??ADC_TEMP_0+0x20  ;; ??ADC_COUNT
        MOVS     R1,#+0
        STRH     R1,[R0, #+0]
        MOVS     R0,#+0
        MOVS     R7,R0
        MOVS     R0,#+0
        MOVS     R5,R0
??ADC_TEMP_2:
        UXTH     R5,R5            ;; ZeroExtS R5,R5,#+16,#+16
        CMP      R5,#+8
        BCS.N    ??ADC_TEMP_3
        UXTH     R5,R5            ;; ZeroExtS R5,R5,#+16,#+16
        MOVS     R0,#+2
        MULS     R0,R5,R0
        LDR.N    R1,??ADC_TEMP_0+0x1C  ;; ??TAD
        LDRH     R0,[R1, R0]
        ADDS     R7,R7,R0
        ADDS     R5,R5,#+1
        B.N      ??ADC_TEMP_2
??ADC_TEMP_3:
        LSRS     R7,R7,#+3
        LSRS     R7,R7,#+4
        LDR.N    R0,??ADC_TEMP_0+0x24  ;; TEMP_TAB
        LDRH     R0,[R0, #+0]
        MOVS     R6,R0
        MOVS     R0,#+0
        MOVS     R5,R0
??ADC_TEMP_4:
        UXTH     R5,R5            ;; ZeroExtS R5,R5,#+16,#+16
        CMP      R5,#+130
        BCS.N    ??ADC_TEMP_5
        UXTH     R6,R6            ;; ZeroExtS R6,R6,#+16,#+16
        CMP      R7,R6
        BCS.N    ??ADC_TEMP_5
        ADDS     R5,R5,#+1
        MOVS     R0,R5
        MOVS     R5,R0
        UXTH     R0,R0            ;; ZeroExtS R0,R0,#+16,#+16
        MOVS     R1,#+2
        MULS     R0,R1,R0
        LDR.N    R1,??ADC_TEMP_0+0x24  ;; TEMP_TAB
        LDRH     R0,[R1, R0]
        MOVS     R6,R0
        B.N      ??ADC_TEMP_4
??ADC_TEMP_5:
        STRH     R5,[R4, #+0]
        CMP      R7,#+250
        BCC.N    ??ADC_TEMP_1
        MOVS     R0,#+255
        STRH     R0,[R4, #+0]
??ADC_TEMP_1:
        ADD      SP,SP,#+4
        POP      {R4-R7,PC}       ;; return
        DATA
??ADC_TEMP_0:
        DC32     ??TAD + 14
        DC32     ??TAD + 12
        DC32     ??TAD + 10
        DC32     ??TAD + 8
        DC32     ??TAD + 6
        DC32     ??TAD + 4
        DC32     ??TAD + 2
        DC32     ??TAD
        DC32     ??ADC_COUNT
        DC32     TEMP_TAB

        SECTION `.bss`:DATA:NOROOT(1)
??ADC_COUNT:
        DS8 2

        SECTION `.bss`:DATA:NOROOT(2)
??TAD:
        DS8 16

        SECTION `.XML`:CODE:NOROOT(2)
        THUMB
delay:
        MOVS     R2,#+0
        MOVS     R1,R2
??delay_0:
        UXTH     R1,R1            ;; ZeroExtS R1,R1,#+16,#+16
        UXTH     R0,R0            ;; ZeroExtS R0,R0,#+16,#+16
        CMP      R1,R0
        BCS.N    ??delay_1
        ADDS     R1,R1,#+1
        B.N      ??delay_0
??delay_1:
        BX       LR               ;; return

        SECTION `.XML`:CODE:NOROOT(2)
        THUMB
delay_nop:
        PUSH     {R0,R4,R5,LR}
        MOVS     R4,R0
??delay_nop_0:
        MOVS     R0,R4
        SUBS     R4,R0,#+1
        UXTH     R0,R0            ;; ZeroExtS R0,R0,#+16,#+16
        CMP      R0,#+0
        BEQ.N    ??delay_nop_1
        MOVS     R0,#+200
        MOVS     R5,R0
??delay_nop_2:
        UXTH     R5,R5            ;; ZeroExtS R5,R5,#+16,#+16
        CMP      R5,#+0
        BEQ.N    ??delay_nop_0
        BL       WWDG_ClearFlag
        SUBS     R5,R5,#+1
        B.N      ??delay_nop_2
??delay_nop_1:
        ADD      SP,SP,#+4
        POP      {R4,R5,PC}       ;; return

        SECTION `.XML`:CODE:NOROOT(2)
        THUMB
InitGPIO:
        PUSH     {R0,LR}
        MOVS     R1,#+1
        MOVS     R0,#+60
        BL       RCC_APB2PeriphClockCmd
        LDR.N    R0,??InitGPIO_0  ;; 0x40010800
        BL       GPIO_DeInit
        LDR.N    R0,??DataTable17  ;; 0x40010c00
        BL       GPIO_DeInit
        LDR.N    R0,??DataTable19  ;; 0x40011000
        BL       GPIO_DeInit
        LDR.N    R0,??DataTable14  ;; 0x40011400
        BL       GPIO_DeInit
        LDR.N    R0,??InitGPIO_0+0x4  ;; 0x191d
        STRH     R0,[SP, #+0]
        MOVS     R0,#+3
        STRB     R0,[SP, #+2]
        MOVS     R0,#+16
        STRB     R0,[SP, #+3]
        MOV      R1,SP
        LDR.N    R0,??InitGPIO_0  ;; 0x40010800
        BL       GPIO_Init
        MOVS     R0,#+242
        STRH     R0,[SP, #+0]
        MOVS     R0,#+0
        STRB     R0,[SP, #+2]
        MOVS     R0,#+4
        STRB     R0,[SP, #+3]
        MOV      R1,SP
        LDR.N    R0,??InitGPIO_0  ;; 0x40010800
        BL       GPIO_Init
        LDR.N    R0,??InitGPIO_0+0x8  ;; 0xa25
        STRH     R0,[SP, #+0]
        MOVS     R0,#+0
        STRB     R0,[SP, #+2]
        MOVS     R0,#+4
        STRB     R0,[SP, #+3]
        MOV      R1,SP
        LDR.N    R0,??DataTable17  ;; 0x40010c00
        BL       GPIO_Init
        LDR.N    R0,??InitGPIO_0+0xC  ;; 0xf5e2
        STRH     R0,[SP, #+0]
        MOVS     R0,#+3
        STRB     R0,[SP, #+2]
        MOVS     R0,#+16
        STRB     R0,[SP, #+3]
        MOV      R1,SP
        LDR.N    R0,??DataTable17  ;; 0x40010c00
        BL       GPIO_Init
        MOVS     R1,#+65024
        LDR.N    R0,??DataTable17  ;; 0x40010c00
        BL       GPIO_Write
        LDR.N    R0,??InitGPIO_0+0x10  ;; 0x1fe9
        STRH     R0,[SP, #+0]
        MOVS     R0,#+3
        STRB     R0,[SP, #+2]
        MOVS     R0,#+16
        STRB     R0,[SP, #+3]
        MOV      R1,SP
        LDR.N    R0,??DataTable19  ;; 0x40011000
        BL       GPIO_Init
        MOVS     R0,#+22
        STRH     R0,[SP, #+0]
        MOVS     R0,#+0
        STRB     R0,[SP, #+2]
        MOVS     R0,#+4
        STRB     R0,[SP, #+3]
        MOV      R1,SP
        LDR.N    R0,??DataTable19  ;; 0x40011000
        BL       GPIO_Init
        ADD      SP,SP,#+4
        POP      {PC}             ;; return
        DATA
??InitGPIO_0:
        DC32     0x40010800
        DC32     0x191d
        DC32     0xa25
        DC32     0xf5e2
        DC32     0x1fe9

        SECTION `.XML`:CODE:NOROOT(2)
        DATA
??DataTable14:
        DC32     0x40011400

        SECTION `.XML`:CODE:NOROOT(2)
        DATA
??DataTable17:
        DC32     0x40010c00

        SECTION `.XML`:CODE:NOROOT(2)
        DATA
??DataTable19:
        DC32     0x40011000

        SECTION `.XML`:CODE:NOROOT(2)
        THUMB
InitTemperature:
        LDR.N    R0,??InitTemperature_0  ;; TemRHA
        LDR.N    R1,??InitTemperature_0+0x4  ;; 0x40011000
        STR      R1,[R0, #+0]
        LDR.N    R0,??InitTemperature_0+0x8  ;; TemRHA + 4
        MOVS     R1,#+12
        STRB     R1,[R0, #+0]
        LDR.N    R0,??InitTemperature_0+0xC  ;; TemRHA + 8
        LDR.N    R1,??InitTemperature_0+0x10  ;; 0x40011400
        STR      R1,[R0, #+0]
        LDR.N    R0,??InitTemperature_0+0x14  ;; TemRHA + 12
        MOVS     R1,#+2
        STRB     R1,[R0, #+0]
        BX       LR               ;; return
        Nop      
        DATA
??InitTemperature_0:
        DC32     TemRHA
        DC32     0x40011000
        DC32     TemRHA + 4
        DC32     TemRHA + 8
        DC32     0x40011400
        DC32     TemRHA + 12

        SECTION `.XML`:CODE:NOROOT(2)
        THUMB

⌨️ 快捷键说明

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