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

📄 stm32f10x_usart.s

📁 完成数据的采集
💻 S
📖 第 1 页 / 共 2 页
字号:
USART_WakeUpConfig:
        LDRH     R2,[R0, #+12]
        LDR.N    R3,??USART_WakeUpConfig_0  ;; 0xf7ff
        ANDS     R3,R3,R2
        STRH     R3,[R0, #+12]
        LDRH     R2,[R0, #+12]
        ORRS     R2,R2,R1
        STRH     R2,[R0, #+12]
        BX       LR               ;; return
        DATA
??USART_WakeUpConfig_0:
        DC32     0xf7ff

        SECTION `.XML`:CODE:NOROOT(2)
        THUMB
USART_ReceiverWakeUpCmd:
        UXTB     R1,R1            ;; ZeroExtS R1,R1,#+24,#+24
        CMP      R1,#+0
        BEQ.N    ??USART_ReceiverWakeUpCmd_0
        LDRH     R2,[R0, #+12]
        ORRS     R2,R2,#0x2
        STRH     R2,[R0, #+12]
        B.N      ??USART_ReceiverWakeUpCmd_1
??USART_ReceiverWakeUpCmd_0:
        LDRH     R2,[R0, #+12]
        LDR.N    R3,??DataTable3  ;; 0xfffd
        ANDS     R3,R3,R2
        STRH     R3,[R0, #+12]
??USART_ReceiverWakeUpCmd_1:
        BX       LR               ;; return

        SECTION `.XML`:CODE:NOROOT(2)
        THUMB
USART_LINBreakDetectLengthConfig:
        LDRH     R2,[R0, #+16]
        LDR.N    R3,??DataTable2  ;; 0xffdf
        ANDS     R3,R3,R2
        STRH     R3,[R0, #+16]
        LDRH     R2,[R0, #+16]
        ORRS     R2,R2,R1
        STRH     R2,[R0, #+16]
        BX       LR               ;; return

        SECTION `.XML`:CODE:NOROOT(2)
        THUMB
USART_LINCmd:
        UXTB     R1,R1            ;; ZeroExtS R1,R1,#+24,#+24
        CMP      R1,#+0
        BEQ.N    ??USART_LINCmd_0
        LDRH     R2,[R0, #+16]
        ORRS     R2,R2,#0x4000
        STRH     R2,[R0, #+16]
        B.N      ??USART_LINCmd_1
??USART_LINCmd_0:
        LDRH     R2,[R0, #+16]
        LDR.N    R3,??USART_LINCmd_2  ;; 0xbfff
        ANDS     R3,R3,R2
        STRH     R3,[R0, #+16]
??USART_LINCmd_1:
        BX       LR               ;; return
        Nop      
        DATA
??USART_LINCmd_2:
        DC32     0xbfff

        SECTION `.XML`:CODE:NOROOT(2)
        THUMB
USART_SendData:
        LSLS     R2,R1,#+23       ;; ZeroExtS R2,R1,#+23,#+23
        LSRS     R2,R2,#+23
        STRH     R2,[R0, #+4]
        BX       LR               ;; return

        SECTION `.XML`:CODE:NOROOT(2)
        THUMB
USART_ReceiveData:
        LDRH     R0,[R0, #+4]
        LSLS     R0,R0,#+23       ;; ZeroExtS R0,R0,#+23,#+23
        LSRS     R0,R0,#+23
        BX       LR               ;; return

        SECTION `.XML`:CODE:NOROOT(2)
        THUMB
USART_SendBreak:
        LDRH     R1,[R0, #+12]
        ORRS     R1,R1,#0x1
        STRH     R1,[R0, #+12]
        BX       LR               ;; return

        SECTION `.XML`:CODE:NOROOT(2)
        THUMB
USART_SetGuardTime:
        LDRH     R2,[R0, #+24]
        UXTB     R2,R2            ;; ZeroExtS R2,R2,#+24,#+24
        STRH     R2,[R0, #+24]
        LDRH     R2,[R0, #+24]
        UXTB     R1,R1            ;; ZeroExtS R1,R1,#+24,#+24
        UXTH     R1,R1            ;; ZeroExtS R1,R1,#+16,#+16
        ORRS     R2,R2,R1, LSL #+8
        STRH     R2,[R0, #+24]
        BX       LR               ;; return

        SECTION `.XML`:CODE:NOROOT(2)
        THUMB
USART_SetPrescaler:
        LDRH     R2,[R0, #+24]
        ANDS     R2,R2,#0xFF00
        STRH     R2,[R0, #+24]
        LDRH     R2,[R0, #+24]
        UXTB     R1,R1            ;; ZeroExtS R1,R1,#+24,#+24
        ORRS     R2,R2,R1
        STRH     R2,[R0, #+24]
        BX       LR               ;; return

        SECTION `.XML`:CODE:NOROOT(2)
        THUMB
USART_SmartCardCmd:
        UXTB     R1,R1            ;; ZeroExtS R1,R1,#+24,#+24
        CMP      R1,#+0
        BEQ.N    ??USART_SmartCardCmd_0
        LDRH     R2,[R0, #+20]
        ORRS     R2,R2,#0x20
        STRH     R2,[R0, #+20]
        B.N      ??USART_SmartCardCmd_1
??USART_SmartCardCmd_0:
        LDRH     R2,[R0, #+20]
        LDR.N    R3,??DataTable2  ;; 0xffdf
        ANDS     R3,R3,R2
        STRH     R3,[R0, #+20]
??USART_SmartCardCmd_1:
        BX       LR               ;; return

        SECTION `.XML`:CODE:NOROOT(2)
        DATA
??DataTable2:
        DC32     0xffdf

        SECTION `.XML`:CODE:NOROOT(2)
        THUMB
USART_SmartCardNACKCmd:
        UXTB     R1,R1            ;; ZeroExtS R1,R1,#+24,#+24
        CMP      R1,#+0
        BEQ.N    ??USART_SmartCardNACKCmd_0
        LDRH     R2,[R0, #+20]
        ORRS     R2,R2,#0x10
        STRH     R2,[R0, #+20]
        B.N      ??USART_SmartCardNACKCmd_1
??USART_SmartCardNACKCmd_0:
        LDRH     R2,[R0, #+20]
        LDR.N    R3,??USART_SmartCardNACKCmd_2  ;; 0xffef
        ANDS     R3,R3,R2
        STRH     R3,[R0, #+20]
??USART_SmartCardNACKCmd_1:
        BX       LR               ;; return
        Nop      
        DATA
??USART_SmartCardNACKCmd_2:
        DC32     0xffef

        SECTION `.XML`:CODE:NOROOT(2)
        THUMB
USART_HalfDuplexCmd:
        UXTB     R1,R1            ;; ZeroExtS R1,R1,#+24,#+24
        CMP      R1,#+0
        BEQ.N    ??USART_HalfDuplexCmd_0
        LDRH     R2,[R0, #+20]
        ORRS     R2,R2,#0x8
        STRH     R2,[R0, #+20]
        B.N      ??USART_HalfDuplexCmd_1
??USART_HalfDuplexCmd_0:
        LDRH     R2,[R0, #+20]
        LDR.N    R3,??USART_HalfDuplexCmd_2  ;; 0xfff7
        ANDS     R3,R3,R2
        STRH     R3,[R0, #+20]
??USART_HalfDuplexCmd_1:
        BX       LR               ;; return
        Nop      
        DATA
??USART_HalfDuplexCmd_2:
        DC32     0xfff7

        SECTION `.XML`:CODE:NOROOT(2)
        THUMB
USART_IrDAConfig:
        LDRH     R2,[R0, #+20]
        LDR.N    R3,??USART_IrDAConfig_0  ;; 0xfffb
        ANDS     R3,R3,R2
        STRH     R3,[R0, #+20]
        LDRH     R2,[R0, #+20]
        ORRS     R2,R2,R1
        STRH     R2,[R0, #+20]
        BX       LR               ;; return
        DATA
??USART_IrDAConfig_0:
        DC32     0xfffb

        SECTION `.XML`:CODE:NOROOT(2)
        THUMB
USART_IrDACmd:
        UXTB     R1,R1            ;; ZeroExtS R1,R1,#+24,#+24
        CMP      R1,#+0
        BEQ.N    ??USART_IrDACmd_0
        LDRH     R2,[R0, #+20]
        ORRS     R2,R2,#0x2
        STRH     R2,[R0, #+20]
        B.N      ??USART_IrDACmd_1
??USART_IrDACmd_0:
        LDRH     R2,[R0, #+20]
        LDR.N    R3,??DataTable3  ;; 0xfffd
        ANDS     R3,R3,R2
        STRH     R3,[R0, #+20]
??USART_IrDACmd_1:
        BX       LR               ;; return

        SECTION `.XML`:CODE:NOROOT(2)
        DATA
??DataTable3:
        DC32     0xfffd

        SECTION `.XML`:CODE:NOROOT(2)
        THUMB
USART_GetFlagStatus:
        PUSH     {R0,R4}
        MOVS     R2,R0
        MOVS     R3,#+0
        MOVS     R0,R3
        LDRH     R3,[R2, #+0]
        ANDS     R3,R3,R1
        MOVS     R4,R3
        UXTH     R4,R4            ;; ZeroExtS R4,R4,#+16,#+16
        SUBS     R4,R4,#+1
        SBCS     R4,R4,R4
        MVNS     R4,R4
        LSRS     R4,R4,#+31
        MOVS     R0,R4
        UXTB     R0,R0            ;; ZeroExtS R0,R0,#+24,#+24
        ADD      SP,SP,#+4
        POP      {R4}
        BX       LR               ;; return

        SECTION `.XML`:CODE:NOROOT(2)
        THUMB
USART_ClearFlag:
        LDRH     R2,[R0, #+0]
        BICS     R2,R2,R1
        STRH     R2,[R0, #+0]
        BX       LR               ;; return

        SECTION `.XML`:CODE:NOROOT(2)
        THUMB
USART_GetITStatus:
        PUSH     {R4-R7}
        MOVS     R3,R0
        MOVS     R2,#+0
        MOVS     R4,R2
        MOVS     R2,#+0
        MOVS     R5,R2
        MOVS     R2,#+0
        MOVS     R6,R2
        MOVS     R2,#+0
        MOVS     R0,R2
        MOVS     R2,R1
        UXTB     R2,R2            ;; ZeroExtS R2,R2,#+24,#+24
        LSRS     R2,R2,#+5
        UXTB     R2,R2            ;; ZeroExtS R2,R2,#+24,#+24
        MOVS     R6,R2
        UXTH     R1,R1            ;; ZeroExtS R1,R1,#+16,#+16
        LSLS     R2,R1,#+27       ;; ZeroExtS R2,R1,#+27,#+27
        LSRS     R2,R2,#+27
        MOVS     R5,R2
        MOVS     R7,#+1
        MOVS     R2,R5
        MOVS     R5,R7
        LSLS     R5,R5,R2
        CMP      R6,#+1
        BNE.N    ??USART_GetITStatus_0
        MOVS     R2,R5
        LDRH     R5,[R3, #+12]
        ANDS     R5,R5,R2
        B.N      ??USART_GetITStatus_1
??USART_GetITStatus_0:
        CMP      R6,#+2
        BNE.N    ??USART_GetITStatus_2
        MOVS     R2,R5
        LDRH     R5,[R3, #+16]
        ANDS     R5,R5,R2
        B.N      ??USART_GetITStatus_1
??USART_GetITStatus_2:
        MOVS     R2,R5
        LDRH     R5,[R3, #+20]
        ANDS     R5,R5,R2
??USART_GetITStatus_1:
        UXTH     R1,R1            ;; ZeroExtS R1,R1,#+16,#+16
        LSRS     R2,R1,#+8
        UXTH     R2,R2            ;; ZeroExtS R2,R2,#+16,#+16
        MOVS     R4,R2
        MOVS     R7,#+1
        MOVS     R2,R4
        MOVS     R4,R7
        LSLS     R4,R4,R2
        MOVS     R2,R4
        LDRH     R4,[R3, #+0]
        ANDS     R4,R4,R2
        CMP      R5,#+0
        BEQ.N    ??USART_GetITStatus_3
        MOVS     R0,R4
        SUBS     R0,R0,#+1
        SBCS     R0,R0,R0
        MVNS     R0,R0
        LSRS     R0,R0,#+31
        B.N      ??USART_GetITStatus_4
??USART_GetITStatus_3:
        MOVS     R2,#+0
        MOVS     R0,R2
??USART_GetITStatus_4:
        UXTB     R0,R0            ;; ZeroExtS R0,R0,#+24,#+24
        POP      {R4-R7}
        BX       LR               ;; return

        SECTION `.XML`:CODE:NOROOT(2)
        THUMB
USART_ClearITPendingBit:
        PUSH     {R4,R5}
        MOVS     R4,#+0
        MOVS     R2,R4
        MOVS     R4,#+0
        MOVS     R3,R4
        UXTH     R1,R1            ;; ZeroExtS R1,R1,#+16,#+16
        LSRS     R4,R1,#+8
        UXTH     R4,R4            ;; ZeroExtS R4,R4,#+16,#+16
        MOVS     R2,R4
        MOVS     R4,#+1
        LSLS     R4,R4,R2
        MOVS     R3,R4
        LDRH     R4,[R0, #+0]
        MOVS     R5,R3
        BICS     R4,R4,R5
        STRH     R4,[R0, #+0]
        POP      {R4,R5}
        BX       LR               ;; return

        END
// 
// 1 036 bytes in section .XML
// 
// 1 036 bytes of CODE memory
//
//Errors: none
//Warnings: none

⌨️ 快捷键说明

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