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

📄 stm32f10x_i2c.s79

📁 STM32利用正交编码器实现电机的控制
💻 S79
📖 第 1 页 / 共 4 页
字号:
        LDR.N    R0,??I2C_SMBusAlertConfig_1  ;; 0xcfff
        CMP      R5,R0
        BEQ.N    ??I2C_SMBusAlertConfig_0
        LDR.N    R1,??I2C_SMBusAlertConfig_1+0x4  ;; 0x29d
        LDR.N    R0,??DataTable36  ;; `?<Constant "C:\\\\David JIANG\\\\ST MCU...">`
        _BLF     assert_failed,??assert_failed??rT
??I2C_SMBusAlertConfig_0:
        MOVS     R0,#+8192
        CMP      R5,R0
        BNE.N    ??I2C_SMBusAlertConfig_2
        LDRH     R0,[R4, #+0]
        ORRS     R0,R0,#0x2000
        STRH     R0,[R4, #+0]
        B.N      ??I2C_SMBusAlertConfig_3
??I2C_SMBusAlertConfig_2:
        LDRH     R0,[R4, #+0]
        LDR.N    R1,??I2C_SMBusAlertConfig_1  ;; 0xcfff
        ANDS     R1,R1,R0
        STRH     R1,[R4, #+0]
??I2C_SMBusAlertConfig_3:
        POP      {R4,R5,PC}       ;; return
        DATA
??I2C_SMBusAlertConfig_1:
        DC32     0xcfff
        DC32     0x29d

        RSEG CODE:CODE:NOROOT(2)
        THUMB
I2C_TransmitPEC:
        PUSH     {R4,R5,LR}
        MOVS     R4,R0
        MOVS     R5,R1
        CMP      R5,#+0
        BEQ.N    ??I2C_TransmitPEC_0
        CMP      R5,#+1
        BEQ.N    ??I2C_TransmitPEC_0
        LDR.N    R1,??I2C_TransmitPEC_1  ;; 0x2b7
        LDR.N    R0,??DataTable36  ;; `?<Constant "C:\\\\David JIANG\\\\ST MCU...">`
        _BLF     assert_failed,??assert_failed??rT
??I2C_TransmitPEC_0:
        CMP      R5,#+0
        BEQ.N    ??I2C_TransmitPEC_2
        LDRH     R0,[R4, #+0]
        ORRS     R0,R0,#0x1000
        STRH     R0,[R4, #+0]
        B.N      ??I2C_TransmitPEC_3
??I2C_TransmitPEC_2:
        LDRH     R0,[R4, #+0]
        LDR.N    R1,??DataTable28  ;; 0xefff
        ANDS     R1,R1,R0
        STRH     R1,[R4, #+0]
??I2C_TransmitPEC_3:
        POP      {R4,R5,PC}       ;; return
        Nop      
        DATA
??I2C_TransmitPEC_1:
        DC32     0x2b7

        RSEG CODE:CODE:NOROOT(2)
        DATA
??DataTable28:
        DC32     0xefff

        RSEG CODE:CODE:NOROOT(2)
        THUMB
I2C_PECPositionConfig:
        PUSH     {R4,R5,LR}
        MOVS     R4,R0
        MOVS     R5,R1
        MOVS     R0,#+2048
        CMP      R5,R0
        BEQ.N    ??I2C_PECPositionConfig_0
        LDR.N    R0,??DataTable29  ;; 0xf7ff
        CMP      R5,R0
        BEQ.N    ??I2C_PECPositionConfig_0
        LDR.N    R1,??I2C_PECPositionConfig_1  ;; 0x2d5
        LDR.N    R0,??DataTable36  ;; `?<Constant "C:\\\\David JIANG\\\\ST MCU...">`
        _BLF     assert_failed,??assert_failed??rT
??I2C_PECPositionConfig_0:
        MOVS     R0,#+2048
        CMP      R5,R0
        BNE.N    ??I2C_PECPositionConfig_2
        LDRH     R0,[R4, #+0]
        ORRS     R0,R0,#0x800
        STRH     R0,[R4, #+0]
        B.N      ??I2C_PECPositionConfig_3
??I2C_PECPositionConfig_2:
        LDRH     R0,[R4, #+0]
        LDR.N    R1,??DataTable29  ;; 0xf7ff
        ANDS     R1,R1,R0
        STRH     R1,[R4, #+0]
??I2C_PECPositionConfig_3:
        POP      {R4,R5,PC}       ;; return
        DATA
??I2C_PECPositionConfig_1:
        DC32     0x2d5

        RSEG CODE:CODE:NOROOT(2)
        DATA
??DataTable29:
        DC32     0xf7ff

        RSEG CODE:CODE:NOROOT(2)
        THUMB
I2C_CalculatePEC:
        PUSH     {R4,R5,LR}
        MOVS     R4,R0
        MOVS     R5,R1
        CMP      R5,#+0
        BEQ.N    ??I2C_CalculatePEC_0
        CMP      R5,#+1
        BEQ.N    ??I2C_CalculatePEC_0
        MOVS     R1,#+752
        LDR.N    R0,??DataTable36  ;; `?<Constant "C:\\\\David JIANG\\\\ST MCU...">`
        _BLF     assert_failed,??assert_failed??rT
??I2C_CalculatePEC_0:
        CMP      R5,#+0
        BEQ.N    ??I2C_CalculatePEC_1
        LDRH     R0,[R4, #+0]
        ORRS     R0,R0,#0x20
        STRH     R0,[R4, #+0]
        B.N      ??I2C_CalculatePEC_2
??I2C_CalculatePEC_1:
        LDRH     R0,[R4, #+0]
        LDR.N    R1,??I2C_CalculatePEC_3  ;; 0xffdf
        ANDS     R1,R1,R0
        STRH     R1,[R4, #+0]
??I2C_CalculatePEC_2:
        POP      {R4,R5,PC}       ;; return
        DATA
??I2C_CalculatePEC_3:
        DC32     0xffdf

        RSEG CODE:CODE:NOROOT(2)
        THUMB
I2C_GetPEC:
        LDRH     R0,[R0, #+24]
        LSLS     R0,R0,#+16       ;; ZeroExtS R0,R0,#+16,#+16
        LSRS     R0,R0,#+16
        LSRS     R0,R0,#+8
        LSLS     R0,R0,#+24       ;; ZeroExtS R0,R0,#+24,#+24
        LSRS     R0,R0,#+24
        BX       LR               ;; return

        RSEG CODE:CODE:NOROOT(2)
        THUMB
I2C_ARPCmd:
        PUSH     {R4,R5,LR}
        MOVS     R4,R0
        MOVS     R5,R1
        CMP      R5,#+0
        BEQ.N    ??I2C_ARPCmd_0
        CMP      R5,#+1
        BEQ.N    ??I2C_ARPCmd_0
        LDR.N    R1,??I2C_ARPCmd_1  ;; 0x31b
        LDR.N    R0,??DataTable36  ;; `?<Constant "C:\\\\David JIANG\\\\ST MCU...">`
        _BLF     assert_failed,??assert_failed??rT
??I2C_ARPCmd_0:
        CMP      R5,#+0
        BEQ.N    ??I2C_ARPCmd_2
        LDRH     R0,[R4, #+0]
        ORRS     R0,R0,#0x10
        STRH     R0,[R4, #+0]
        B.N      ??I2C_ARPCmd_3
??I2C_ARPCmd_2:
        LDRH     R0,[R4, #+0]
        LDR.N    R1,??I2C_ARPCmd_1+0x4  ;; 0xffef
        ANDS     R1,R1,R0
        STRH     R1,[R4, #+0]
??I2C_ARPCmd_3:
        POP      {R4,R5,PC}       ;; return
        Nop      
        DATA
??I2C_ARPCmd_1:
        DC32     0x31b
        DC32     0xffef

        RSEG CODE:CODE:NOROOT(2)
        THUMB
I2C_StretchClockCmd:
        PUSH     {R4,R5,LR}
        MOVS     R4,R0
        MOVS     R5,R1
        CMP      R5,#+0
        BEQ.N    ??I2C_StretchClockCmd_0
        CMP      R5,#+1
        BEQ.N    ??I2C_StretchClockCmd_0
        LDR.N    R1,??I2C_StretchClockCmd_1  ;; 0x335
        LDR.N    R0,??DataTable36  ;; `?<Constant "C:\\\\David JIANG\\\\ST MCU...">`
        _BLF     assert_failed,??assert_failed??rT
??I2C_StretchClockCmd_0:
        CMP      R5,#+0
        BNE.N    ??I2C_StretchClockCmd_2
        LDRH     R0,[R4, #+0]
        ORRS     R0,R0,#0x80
        STRH     R0,[R4, #+0]
        B.N      ??I2C_StretchClockCmd_3
??I2C_StretchClockCmd_2:
        LDRH     R0,[R4, #+0]
        LDR.N    R1,??I2C_StretchClockCmd_1+0x4  ;; 0xff7f
        ANDS     R1,R1,R0
        STRH     R1,[R4, #+0]
??I2C_StretchClockCmd_3:
        POP      {R4,R5,PC}       ;; return
        Nop      
        DATA
??I2C_StretchClockCmd_1:
        DC32     0x335
        DC32     0xff7f

        RSEG CODE:CODE:NOROOT(2)
        THUMB
I2C_FastModeDutyCycleConfig:
        PUSH     {R4,R5,LR}
        MOVS     R4,R0
        MOVS     R5,R1
        MOVS     R0,#+16384
        CMP      R5,R0
        BEQ.N    ??I2C_FastModeDutyCycleConfig_0
        LDR.N    R0,??DataTable37  ;; 0xbfff
        CMP      R5,R0
        BEQ.N    ??I2C_FastModeDutyCycleConfig_0
        LDR.N    R1,??I2C_FastModeDutyCycleConfig_1  ;; 0x351
        LDR.N    R0,??DataTable36  ;; `?<Constant "C:\\\\David JIANG\\\\ST MCU...">`
        _BLF     assert_failed,??assert_failed??rT
??I2C_FastModeDutyCycleConfig_0:
        MOVS     R0,#+16384
        CMP      R5,R0
        BEQ.N    ??I2C_FastModeDutyCycleConfig_2
        LDRH     R0,[R4, #+28]
        LDR.N    R1,??DataTable37  ;; 0xbfff
        ANDS     R1,R1,R0
        STRH     R1,[R4, #+28]
        B.N      ??I2C_FastModeDutyCycleConfig_3
??I2C_FastModeDutyCycleConfig_2:
        LDRH     R0,[R4, #+28]
        ORRS     R0,R0,#0x4000
        STRH     R0,[R4, #+28]
??I2C_FastModeDutyCycleConfig_3:
        POP      {R4,R5,PC}       ;; return
        DATA
??I2C_FastModeDutyCycleConfig_1:
        DC32     0x351

        RSEG CODE:CODE:NOROOT(2)
        DATA
??DataTable36:
        DC32     `?<Constant "C:\\\\David JIANG\\\\ST MCU...">`

        RSEG CODE:CODE:NOROOT(2)
        DATA
??DataTable37:
        DC32     0xbfff

        RSEG CODE:CODE:NOROOT(2)
        THUMB
I2C_GetLastEvent:
        PUSH     {R4}
        MOVS     R1,R0
        MOVS     R0,#+0
        MOVS     R2,#+0
        MOVS     R3,#+0
        LDRH     R4,[R1, #+20]
        MOVS     R2,R4
        LDRH     R1,[R1, #+24]
        MOVS     R3,R1
        LSLS     R3,R3,#+16
        ORRS     R3,R3,R2
        LSLS     R1,R3,#+8        ;; ZeroExtS R1,R3,#+8,#+8
        LSRS     R1,R1,#+8
        MOVS     R0,R1
        POP      {R4}
        BX       LR               ;; return

        RSEG CODE:CODE:NOROOT(2)
        THUMB
I2C_CheckEvent:
        PUSH     {R4-R6,LR}
        MOVS     R4,R0
        MOVS     R5,R1
        MOVS     R1,#+0
        MOVS     R2,#+0
        MOVS     R3,#+0
        MOVS     R0,#+0
        LDR.N    R6,??I2C_CheckEvent_0  ;; 0x60082
        CMP      R5,R6
        BEQ.N    ??I2C_CheckEvent_1
        CMP      R5,#+131074
        BEQ.N    ??I2C_CheckEvent_1
        LDR.N    R0,??I2C_CheckEvent_0+0x4  ;; 0x860080
        CMP      R5,R0
        BEQ.N    ??I2C_CheckEvent_1
        CMP      R5,#+8519680
        BEQ.N    ??I2C_CheckEvent_1
        CMP      R5,#+1179648
        BEQ.N    ??I2C_CheckEvent_1
        LDR.N    R0,??I2C_CheckEvent_0+0x8  ;; 0x20040
        CMP      R5,R0
        BEQ.N    ??I2C_CheckEvent_1
        LDR.N    R0,??I2C_CheckEvent_0+0xC  ;; 0x820040
        CMP      R5,R0
        BEQ.N    ??I2C_CheckEvent_1
        LDR.N    R0,??I2C_CheckEvent_0+0x10  ;; 0x120040
        CMP      R5,R0
        BEQ.N    ??I2C_CheckEvent_1
        LDR.N    R0,??I2C_CheckEvent_0+0x14  ;; 0x60084
        CMP      R5,R0
        BEQ.N    ??I2C_CheckEvent_1
        LDR.N    R0,??I2C_CheckEvent_0+0x18  ;; 0x860084
        CMP      R5,R0
        BEQ.N    ??I2C_CheckEvent_1
        LDR.N    R0,??I2C_CheckEvent_0+0x1C  ;; 0x160084
        CMP      R5,R0
        BEQ.N    ??I2C_CheckEvent_1
        CMP      R5,#+16
        BEQ.N    ??I2C_CheckEvent_1
        LDR.N    R0,??I2C_CheckEvent_0+0x20  ;; 0x30001
        CMP      R5,R0
        BEQ.N    ??I2C_CheckEvent_1
        LDR.N    R0,??I2C_CheckEvent_0+0x24  ;; 0x70082
        CMP      R5,R0
        BEQ.N    ??I2C_CheckEvent_1
        LDR.N    R0,??I2C_CheckEvent_0+0x28  ;; 0x30002
        CMP      R5,R0
        BEQ.N    ??I2C_CheckEvent_1
        LDR.N    R0,??I2C_CheckEvent_0+0x2C  ;; 0x30040
        CMP      R5,R0
        BEQ.N    ??I2C_CheckEvent_1
        LDR.N    R0,??I2C_CheckEvent_0+0x30  ;; 0x70084
        CMP      R5,R0
        BEQ.N    ??I2C_CheckEvent_1
        LDR.N    R0,??I2C_CheckEvent_0+0x34  ;; 0x30008
        CMP      R5,R0
        BEQ.N    ??I2C_CheckEvent_1
        CMP      R5,#+1024
        BEQ.N    ??I2C_CheckEvent_1
        LDR.N    R1,??I2C_CheckEvent_0+0x38  ;; 0x393
        LDR.N    R0,??DataTable74  ;; `?<Constant "C:\\\\David JIANG\\\\ST MCU...">`
        _BLF     assert_failed,??assert_failed??rT
??I2C_CheckEvent_1:
        LDRH     R2,[R4, #+20]
        LDRH     R3,[R4, #+24]
        LSLS     R3,R3,#+16
        ORRS     R3,R3,R2
        LSLS     R1,R3,#+8        ;; ZeroExtS R1,R3,#+8,#+8
        LSRS     R1,R1,#+8
        CMP      R1,R5
        BNE.N    ??I2C_CheckEvent_2
        MOVS     R0,#+1
        B.N      ??I2C_CheckEvent_3
??I2C_CheckEvent_2:
        MOVS     R0,#+0
??I2C_CheckEvent_3:
        POP      {R4-R6,PC}       ;; return
        Nop      
        DATA
??I2C_CheckEvent_0:
        DC32     0x60082
        DC32     0x860080
        DC32     0x20040
        DC32     0x820040
        DC32     0x120040
        DC32     0x60084
        DC32     0x860084
        DC32     0x160084
        DC32     0x30001
        DC32     0x70082
        DC32     0x30002
        DC32     0x30040
        DC32     0x70084
        DC32     0x30008
        DC32     0x393

        RSEG CODE:CODE:NOROOT(2)
        THUMB
I2C_GetFlagStatus:
        PUSH     {R4,R5,LR}
        MOVS     R4,R0
        MOVS     R5,R1
        MOVS     R0,#+0
        MOVS     R1,#+0
        MOVS     R2,#+0
        MOVS     R3,#+0
        CMP      R5,#+8388608
        BEQ.N    ??I2C_GetFlagStatus_0
        CMP      R5,#+4194304
        BEQ.N    ??I2C_GetFlagStatus_0
        CMP      R5,#+2097152
        BEQ.N    ??I2C_GetFlagStatus_0
        CMP      R5,#+1048576
        BEQ.N    ??I2C_GetFlagStatus_0
        CMP      R5,#+262144
        BEQ.N    ??I2C_GetFlagStatus_0
        CMP      R5,#+131072
        BEQ.N    ??I2C_GetFlagStatus_0
        CMP      R5,#+65536
        BEQ.N    ??I2C_GetFlagStatus_0
        LDR.N    R0,??DataTable75  ;; 0x10008000
        CMP      R5,R0
        BEQ.N    ??I2C_GetFlagStatus_0
        LDR.N    R0,??DataTable76  ;; 0x10004000
        CMP      R5,R0
        BEQ.N    ??I2C_GetFlagStatus_0
        CMP      R5,#+268439552
        BEQ.N    ??I2C_GetFlagStatus_0
        LDR.N    R0,??DataTable77  ;; 0x10000800
        CMP      R5,R0
        BEQ.N    ??I2C_GetFlagStatus_0
        LDR.N    R0,??DataTable78  ;; 0x10000400
        CMP      R5,R0
        BEQ.N    ??I2C_GetFlagStatus_0

⌨️ 快捷键说明

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