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

📄 stm32f10x_i2c.s79

📁 STM32利用正交编码器实现电机的控制
💻 S79
📖 第 1 页 / 共 4 页
字号:
        STRH     R0,[R4, #+0]
        B.N      ??I2C_Cmd_2
??I2C_Cmd_1:
        LDRH     R0,[R4, #+0]
        LDR.N    R1,??DataTable19  ;; 0xfffe
        ANDS     R1,R1,R0
        STRH     R1,[R4, #+0]
??I2C_Cmd_2:
        POP      {R4,R5,PC}       ;; return

        RSEG CODE:CODE:NOROOT(2)
        THUMB
I2C_DMACmd:
        PUSH     {R4,R5,LR}
        MOVS     R4,R0
        MOVS     R5,R1
        CMP      R5,#+0
        BEQ.N    ??I2C_DMACmd_0
        CMP      R5,#+1
        BEQ.N    ??I2C_DMACmd_0
        MOVS     R1,#+318
        LDR.N    R0,??DataTable18  ;; `?<Constant "C:\\\\David JIANG\\\\ST MCU...">`
        _BLF     assert_failed,??assert_failed??rT
??I2C_DMACmd_0:
        CMP      R5,#+0
        BEQ.N    ??I2C_DMACmd_1
        LDRH     R0,[R4, #+4]
        ORRS     R0,R0,#0x800
        STRH     R0,[R4, #+4]
        B.N      ??I2C_DMACmd_2
??I2C_DMACmd_1:
        LDRH     R0,[R4, #+4]
        LDR.N    R1,??DataTable29  ;; 0xf7ff
        ANDS     R1,R1,R0
        STRH     R1,[R4, #+4]
??I2C_DMACmd_2:
        POP      {R4,R5,PC}       ;; return

        RSEG CODE:CODE:NOROOT(2)
        THUMB
I2C_DMALastTransferCmd:
        PUSH     {R4,R5,LR}
        MOVS     R4,R0
        MOVS     R5,R1
        CMP      R5,#+0
        BEQ.N    ??I2C_DMALastTransferCmd_0
        CMP      R5,#+1
        BEQ.N    ??I2C_DMALastTransferCmd_0
        MOVS     R1,#+344
        LDR.N    R0,??DataTable18  ;; `?<Constant "C:\\\\David JIANG\\\\ST MCU...">`
        _BLF     assert_failed,??assert_failed??rT
??I2C_DMALastTransferCmd_0:
        CMP      R5,#+0
        BEQ.N    ??I2C_DMALastTransferCmd_1
        LDRH     R0,[R4, #+4]
        ORRS     R0,R0,#0x1000
        STRH     R0,[R4, #+4]
        B.N      ??I2C_DMALastTransferCmd_2
??I2C_DMALastTransferCmd_1:
        LDRH     R0,[R4, #+4]
        LDR.N    R1,??DataTable28  ;; 0xefff
        ANDS     R1,R1,R0
        STRH     R1,[R4, #+4]
??I2C_DMALastTransferCmd_2:
        POP      {R4,R5,PC}       ;; return

        RSEG CODE:CODE:NOROOT(2)
        THUMB
I2C_GenerateSTART:
        PUSH     {R4,R5,LR}
        MOVS     R4,R0
        MOVS     R5,R1
        CMP      R5,#+0
        BEQ.N    ??I2C_GenerateSTART_0
        CMP      R5,#+1
        BEQ.N    ??I2C_GenerateSTART_0
        MOVS     R1,#+370
        LDR.N    R0,??DataTable18  ;; `?<Constant "C:\\\\David JIANG\\\\ST MCU...">`
        _BLF     assert_failed,??assert_failed??rT
??I2C_GenerateSTART_0:
        CMP      R5,#+0
        BEQ.N    ??I2C_GenerateSTART_1
        LDRH     R0,[R4, #+0]
        ORRS     R0,R0,#0x100
        STRH     R0,[R4, #+0]
        B.N      ??I2C_GenerateSTART_2
??I2C_GenerateSTART_1:
        LDRH     R0,[R4, #+0]
        LDR.N    R1,??I2C_GenerateSTART_3  ;; 0xfeff
        ANDS     R1,R1,R0
        STRH     R1,[R4, #+0]
??I2C_GenerateSTART_2:
        POP      {R4,R5,PC}       ;; return
        DATA
??I2C_GenerateSTART_3:
        DC32     0xfeff

        RSEG CODE:CODE:NOROOT(2)
        THUMB
I2C_GenerateSTOP:
        PUSH     {R4,R5,LR}
        MOVS     R4,R0
        MOVS     R5,R1
        CMP      R5,#+0
        BEQ.N    ??I2C_GenerateSTOP_0
        CMP      R5,#+1
        BEQ.N    ??I2C_GenerateSTOP_0
        MOVS     R1,#+396
        LDR.N    R0,??DataTable18  ;; `?<Constant "C:\\\\David JIANG\\\\ST MCU...">`
        _BLF     assert_failed,??assert_failed??rT
??I2C_GenerateSTOP_0:
        CMP      R5,#+0
        BEQ.N    ??I2C_GenerateSTOP_1
        LDRH     R0,[R4, #+0]
        ORRS     R0,R0,#0x200
        STRH     R0,[R4, #+0]
        B.N      ??I2C_GenerateSTOP_2
??I2C_GenerateSTOP_1:
        LDRH     R0,[R4, #+0]
        LDR.N    R1,??I2C_GenerateSTOP_3  ;; 0xfdff
        ANDS     R1,R1,R0
        STRH     R1,[R4, #+0]
??I2C_GenerateSTOP_2:
        POP      {R4,R5,PC}       ;; return
        DATA
??I2C_GenerateSTOP_3:
        DC32     0xfdff

        RSEG CODE:CODE:NOROOT(2)
        THUMB
I2C_AcknowledgeConfig:
        PUSH     {R4,R5,LR}
        MOVS     R4,R0
        MOVS     R5,R1
        CMP      R5,#+0
        BEQ.N    ??I2C_AcknowledgeConfig_0
        CMP      R5,#+1
        BEQ.N    ??I2C_AcknowledgeConfig_0
        MOVS     R1,#+422
        LDR.N    R0,??DataTable18  ;; `?<Constant "C:\\\\David JIANG\\\\ST MCU...">`
        _BLF     assert_failed,??assert_failed??rT
??I2C_AcknowledgeConfig_0:
        CMP      R5,#+0
        BEQ.N    ??I2C_AcknowledgeConfig_1
        LDRH     R0,[R4, #+0]
        ORRS     R0,R0,#0x400
        STRH     R0,[R4, #+0]
        B.N      ??I2C_AcknowledgeConfig_2
??I2C_AcknowledgeConfig_1:
        LDRH     R0,[R4, #+0]
        LDR.N    R1,??I2C_AcknowledgeConfig_3  ;; 0xfbff
        ANDS     R1,R1,R0
        STRH     R1,[R4, #+0]
??I2C_AcknowledgeConfig_2:
        POP      {R4,R5,PC}       ;; return
        DATA
??I2C_AcknowledgeConfig_3:
        DC32     0xfbff

        RSEG CODE:CODE:NOROOT(2)
        THUMB
I2C_OwnAddress2Config:
        MOVS     R2,#+0
        LDRH     R3,[R0, #+12]
        MOVS     R2,R3
        MOVS     R3,R2
        LDR.N    R2,??I2C_OwnAddress2Config_0  ;; 0xff01
        ANDS     R2,R2,R3
        MOVS     R3,R2
        ANDS     R2,R1,#0xFE
        ORRS     R2,R2,R3
        STRH     R2,[R0, #+12]
        BX       LR               ;; return
        DATA
??I2C_OwnAddress2Config_0:
        DC32     0xff01

        RSEG CODE:CODE:NOROOT(2)
        THUMB
I2C_DualAddressCmd:
        PUSH     {R4,R5,LR}
        MOVS     R4,R0
        MOVS     R5,R1
        CMP      R5,#+0
        BEQ.N    ??I2C_DualAddressCmd_0
        CMP      R5,#+1
        BEQ.N    ??I2C_DualAddressCmd_0
        MOVS     R1,#+470
        LDR.N    R0,??DataTable18  ;; `?<Constant "C:\\\\David JIANG\\\\ST MCU...">`
        _BLF     assert_failed,??assert_failed??rT
??I2C_DualAddressCmd_0:
        CMP      R5,#+0
        BEQ.N    ??I2C_DualAddressCmd_1
        LDRH     R0,[R4, #+12]
        ORRS     R0,R0,#0x1
        STRH     R0,[R4, #+12]
        B.N      ??I2C_DualAddressCmd_2
??I2C_DualAddressCmd_1:
        LDRH     R0,[R4, #+12]
        LDR.N    R1,??DataTable19  ;; 0xfffe
        ANDS     R1,R1,R0
        STRH     R1,[R4, #+12]
??I2C_DualAddressCmd_2:
        POP      {R4,R5,PC}       ;; return

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

        RSEG CODE:CODE:NOROOT(2)
        DATA
??DataTable19:
        DC32     0xfffe

        RSEG CODE:CODE:NOROOT(2)
        THUMB
I2C_GeneralCallCmd:
        PUSH     {R4,R5,LR}
        MOVS     R4,R0
        MOVS     R5,R1
        CMP      R5,#+0
        BEQ.N    ??I2C_GeneralCallCmd_0
        CMP      R5,#+1
        BEQ.N    ??I2C_GeneralCallCmd_0
        MOVS     R1,#+496
        LDR.N    R0,??DataTable36  ;; `?<Constant "C:\\\\David JIANG\\\\ST MCU...">`
        _BLF     assert_failed,??assert_failed??rT
??I2C_GeneralCallCmd_0:
        CMP      R5,#+0
        BEQ.N    ??I2C_GeneralCallCmd_1
        LDRH     R0,[R4, #+0]
        ORRS     R0,R0,#0x40
        STRH     R0,[R4, #+0]
        B.N      ??I2C_GeneralCallCmd_2
??I2C_GeneralCallCmd_1:
        LDRH     R0,[R4, #+0]
        LDR.N    R1,??I2C_GeneralCallCmd_3  ;; 0xffbf
        ANDS     R1,R1,R0
        STRH     R1,[R4, #+0]
??I2C_GeneralCallCmd_2:
        POP      {R4,R5,PC}       ;; return
        DATA
??I2C_GeneralCallCmd_3:
        DC32     0xffbf

        RSEG CODE:CODE:NOROOT(2)
        THUMB
I2C_ITConfig:
        PUSH     {R4-R6,LR}
        MOVS     R4,R0
        MOVS     R5,R1
        MOVS     R6,R2
        CMP      R6,#+0
        BEQ.N    ??I2C_ITConfig_0
        CMP      R6,#+1
        BEQ.N    ??I2C_ITConfig_0
        MOVS     R1,#+528
        LDR.N    R0,??DataTable36  ;; `?<Constant "C:\\\\David JIANG\\\\ST MCU...">`
        _BLF     assert_failed,??assert_failed??rT
??I2C_ITConfig_0:
        LDR.N    R0,??I2C_ITConfig_1  ;; 0xf8ff
        TST      R5,R0
        BNE.N    ??I2C_ITConfig_2
        CMP      R5,#+0
        BNE.N    ??I2C_ITConfig_3
??I2C_ITConfig_2:
        LDR.N    R1,??I2C_ITConfig_1+0x4  ;; 0x211
        LDR.N    R0,??DataTable36  ;; `?<Constant "C:\\\\David JIANG\\\\ST MCU...">`
        _BLF     assert_failed,??assert_failed??rT
??I2C_ITConfig_3:
        CMP      R6,#+0
        BEQ.N    ??I2C_ITConfig_4
        LDRH     R0,[R4, #+4]
        ORRS     R5,R5,R0
        STRH     R5,[R4, #+4]
        B.N      ??I2C_ITConfig_5
??I2C_ITConfig_4:
        LDRH     R0,[R4, #+4]
        BICS     R0,R0,R5
        STRH     R0,[R4, #+4]
??I2C_ITConfig_5:
        POP      {R4-R6,PC}       ;; return
        DATA
??I2C_ITConfig_1:
        DC32     0xf8ff
        DC32     0x211

        RSEG CODE:CODE:NOROOT(2)
        THUMB
I2C_SendData:
        STRH     R1,[R0, #+16]
        BX       LR               ;; return

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

        RSEG CODE:CODE:NOROOT(2)
        THUMB
I2C_Send7bitAddress:
        PUSH     {R4-R6,LR}
        MOVS     R4,R0
        MOVS     R5,R1
        MOVS     R6,R2
        CMP      R6,#+0
        BEQ.N    ??I2C_Send7bitAddress_0
        CMP      R6,#+1
        BEQ.N    ??I2C_Send7bitAddress_0
        LDR.N    R1,??I2C_Send7bitAddress_1  ;; 0x24a
        LDR.N    R0,??DataTable36  ;; `?<Constant "C:\\\\David JIANG\\\\ST MCU...">`
        _BLF     assert_failed,??assert_failed??rT
??I2C_Send7bitAddress_0:
        CMP      R6,#+0
        BEQ.N    ??I2C_Send7bitAddress_2
        ORRS     R5,R5,#0x1
        B.N      ??I2C_Send7bitAddress_3
??I2C_Send7bitAddress_2:
        ANDS     R5,R5,#0xFE
??I2C_Send7bitAddress_3:
        LSLS     R5,R5,#+24       ;; ZeroExtS R5,R5,#+24,#+24
        LSRS     R5,R5,#+24
        STRH     R5,[R4, #+16]
        POP      {R4-R6,PC}       ;; return
        Nop      
        DATA
??I2C_Send7bitAddress_1:
        DC32     0x24a

        RSEG CODE:CODE:NOROOT(2)
        THUMB
I2C_ReadRegister:
        PUSH     {R4,R5,LR}
        MOVS     R4,R0
        MOVS     R5,R1
        CMP      R5,#+0
        BEQ.N    ??I2C_ReadRegister_0
        CMP      R5,#+4
        BEQ.N    ??I2C_ReadRegister_0
        CMP      R5,#+8
        BEQ.N    ??I2C_ReadRegister_0
        CMP      R5,#+12
        BEQ.N    ??I2C_ReadRegister_0
        CMP      R5,#+16
        BEQ.N    ??I2C_ReadRegister_0
        CMP      R5,#+20
        BEQ.N    ??I2C_ReadRegister_0
        CMP      R5,#+24
        BEQ.N    ??I2C_ReadRegister_0
        CMP      R5,#+28
        BEQ.N    ??I2C_ReadRegister_0
        CMP      R5,#+32
        BEQ.N    ??I2C_ReadRegister_0
        LDR.N    R1,??I2C_ReadRegister_1  ;; 0x26f
        LDR.N    R0,??DataTable36  ;; `?<Constant "C:\\\\David JIANG\\\\ST MCU...">`
        _BLF     assert_failed,??assert_failed??rT
??I2C_ReadRegister_0:
        LDRH     R0,[R4, R5]
        LSLS     R0,R0,#+16       ;; ZeroExtS R0,R0,#+16,#+16
        LSRS     R0,R0,#+16
        POP      {R4,R5,PC}       ;; return
        Nop      
        DATA
??I2C_ReadRegister_1:
        DC32     0x26f

        RSEG CODE:CODE:NOROOT(2)
        THUMB
I2C_SoftwareResetCmd:
        PUSH     {R4,R5,LR}
        MOVS     R4,R0
        MOVS     R5,R1
        CMP      R5,#+0
        BEQ.N    ??I2C_SoftwareResetCmd_0
        CMP      R5,#+1
        BEQ.N    ??I2C_SoftwareResetCmd_0
        LDR.N    R1,??I2C_SoftwareResetCmd_1  ;; 0x281
        LDR.N    R0,??DataTable36  ;; `?<Constant "C:\\\\David JIANG\\\\ST MCU...">`
        _BLF     assert_failed,??assert_failed??rT
??I2C_SoftwareResetCmd_0:
        CMP      R5,#+0
        BEQ.N    ??I2C_SoftwareResetCmd_2
        LDRH     R0,[R4, #+0]
        ORRS     R0,R0,#0x8000
        STRH     R0,[R4, #+0]
        B.N      ??I2C_SoftwareResetCmd_3
??I2C_SoftwareResetCmd_2:
        LDRH     R0,[R4, #+0]
        LSLS     R0,R0,#+17       ;; ZeroExtS R0,R0,#+17,#+17
        LSRS     R0,R0,#+17
        STRH     R0,[R4, #+0]
??I2C_SoftwareResetCmd_3:
        POP      {R4,R5,PC}       ;; return
        Nop      
        DATA
??I2C_SoftwareResetCmd_1:
        DC32     0x281

        RSEG CODE:CODE:NOROOT(2)
        THUMB
I2C_SMBusAlertConfig:
        PUSH     {R4,R5,LR}
        MOVS     R4,R0
        MOVS     R5,R1
        MOVS     R0,#+8192
        CMP      R5,R0
        BEQ.N    ??I2C_SMBusAlertConfig_0

⌨️ 快捷键说明

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