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

📄 tsensor.txt

📁 stm32.rar
💻 TXT
📖 第 1 页 / 共 5 页
字号:
000078  1c76              ADDS     r6,r6,#1
00007a  353f              ADDS     r5,r5,#0x3f
                  |L3.124|
;;;194      
;;;195      /* Test on EV6 and clear it */
;;;196      while(!I2C_CheckEvent(I2C1, I2C_EVENT_MASTER_RECEIVER_MODE_SELECTED))  /* EV6 */
00007c  4631              MOV      r1,r6
00007e  4620              MOV      r0,r4
000080  f7fffffe          BL       I2C_CheckEvent
000084  2800              CMP      r0,#0
000086  d0f9              BEQ      |L3.124|
                  |L3.136|
;;;197      {
;;;198      }
;;;199      
;;;200    
;;;201      /* Test on EV7 and clear it */
;;;202      while(!I2C_CheckEvent(I2C1, I2C_EVENT_MASTER_BYTE_RECEIVED))  /* EV7 */
000088  4629              MOV      r1,r5
00008a  4620              MOV      r0,r4
00008c  f7fffffe          BL       I2C_CheckEvent
000090  2800              CMP      r0,#0
000092  d0f9              BEQ      |L3.136|
;;;203      {
;;;204      }
;;;205      
;;;206      /* Store I2C1 received data */
;;;207      RegValue = (u16)(I2C_ReceiveData(I2C1) << 8);
000094  4620              MOV      r0,r4
000096  f7fffffe          BL       I2C_ReceiveData
00009a  0206              LSLS     r6,r0,#8
;;;208      
;;;209      /* Disable I2C1 acknowledgement */
;;;210      I2C_AcknowledgeConfig(I2C1, DISABLE);
00009c  2100              MOVS     r1,#0
00009e  4620              MOV      r0,r4
0000a0  f7fffffe          BL       I2C_AcknowledgeConfig
;;;211      
;;;212      /* Send I2C1 STOP Condition */
;;;213      I2C_GenerateSTOP(I2C1, ENABLE);
0000a4  2101              MOVS     r1,#1
0000a6  4620              MOV      r0,r4
0000a8  f7fffffe          BL       I2C_GenerateSTOP
                  |L3.172|
;;;214      
;;;215      /* Test on EV7 and clear it */
;;;216      while(!I2C_CheckEvent(I2C1, I2C_EVENT_MASTER_BYTE_RECEIVED))  /* EV7 */
0000ac  4629              MOV      r1,r5
0000ae  4620              MOV      r0,r4
0000b0  f7fffffe          BL       I2C_CheckEvent
0000b4  2800              CMP      r0,#0
0000b6  d0f9              BEQ      |L3.172|
;;;217      {
;;;218      }
;;;219      
;;;220      /* Store I2C1 received data */
;;;221      RegValue |= I2C_ReceiveData(I2C1);
0000b8  4620              MOV      r0,r4
0000ba  f7fffffe          BL       I2C_ReceiveData
0000be  4330              ORRS     r0,r0,r6
;;;222    
;;;223      /* Return register value */
;;;224      return (RegValue >> 7);
0000c0  f3c010cf          UBFX     r0,r0,#7,#16
;;;225    }
0000c4  e8bd81f0          POP      {r4-r8,pc}
;;;226    
                          ENDP

                  |L3.200|
0000c8  40005400          DCD      0x40005400
                  |L3.204|
0000cc  00030001          DCD      0x00030001
                  |L3.208|
0000d0  00070082          DCD      0x00070082

                          AREA ||i.I2C_LM75_Reg_Write||, CODE, READONLY, ALIGN=2

                  I2C_LM75_Reg_Write PROC
;;;237    void I2C_LM75_Reg_Write(u8 RegName, u16 RegValue)
;;;238    {
000000  e92d41f0          PUSH     {r4-r8,lr}
000004  4605              MOV      r5,r0
;;;239      /* Shift left register value */
;;;240      RegValue = RegValue << 7;
000006  05c8              LSLS     r0,r1,#23
;;;241    
;;;242      /*----- Transmission Phase -----*/
;;;243      /* Send I2C1 START condition */
;;;244      I2C_GenerateSTART(I2C1, ENABLE);
000008  4e1f              LDR      r6,|L4.136|
00000a  0c04              LSRS     r4,r0,#16             ;240
00000c  2101              MOVS     r1,#1
00000e  4630              MOV      r0,r6
000010  f7fffffe          BL       I2C_GenerateSTART
000014  4f1d              LDR      r7,|L4.140|
                  |L4.22|
;;;245      
;;;246      /* Test on I2C1 EV5 and clear it */
;;;247      while(!I2C_CheckEvent(I2C1, I2C_EVENT_MASTER_MODE_SELECT))  /* EV5 */
000016  4630              MOV      r0,r6
000018  4639              MOV      r1,r7
00001a  f7fffffe          BL       I2C_CheckEvent
00001e  2800              CMP      r0,#0
000020  d0f9              BEQ      |L4.22|
;;;248      {
;;;249      }
;;;250      
;;;251      /* Send STLM75 slave address for write */
;;;252      I2C_Send7bitAddress(I2C1, LM75_Addr, I2C_Direction_Transmitter);
000022  2200              MOVS     r2,#0
000024  2190              MOVS     r1,#0x90
000026  4630              MOV      r0,r6
000028  f7fffffe          BL       I2C_Send7bitAddress
00002c  4f18              LDR      r7,|L4.144|
                  |L4.46|
;;;253      
;;;254      /* Test on I2C1 EV6 and clear it */
;;;255      while(!I2C_CheckEvent(I2C1, I2C_EVENT_MASTER_TRANSMITTER_MODE_SELECTED)) /* EV6 */
00002e  4630              MOV      r0,r6
000030  4639              MOV      r1,r7
000032  f7fffffe          BL       I2C_CheckEvent
000036  2800              CMP      r0,#0
000038  d0f9              BEQ      |L4.46|
;;;256      {
;;;257      }
;;;258    
;;;259      /* Send the specified register data pointer */
;;;260      I2C_SendData(I2C1, RegName);
00003a  4629              MOV      r1,r5
00003c  4630              MOV      r0,r6
00003e  f7fffffe          BL       I2C_SendData
000042  4d13              LDR      r5,|L4.144|
000044  1cad              ADDS     r5,r5,#2
                  |L4.70|
;;;261      
;;;262      /* Test on I2C1 EV8 and clear it */
;;;263      while(!I2C_CheckEvent(I2C1, I2C_EVENT_MASTER_BYTE_TRANSMITTED)) /* EV8 */
000046  4629              MOV      r1,r5
000048  4630              MOV      r0,r6
00004a  f7fffffe          BL       I2C_CheckEvent
00004e  2800              CMP      r0,#0
000050  d0f9              BEQ      |L4.70|
;;;264      {
;;;265      }
;;;266    
;;;267      /* Send I2C1 data */
;;;268      I2C_SendData(I2C1, (u8)(RegValue >> 8));
000052  0a21              LSRS     r1,r4,#8
000054  4630              MOV      r0,r6
000056  f7fffffe          BL       I2C_SendData
                  |L4.90|
;;;269      
;;;270      /* Test on I2C1 EV8 and clear it */
;;;271      while(!I2C_CheckEvent(I2C1, I2C_EVENT_MASTER_BYTE_TRANSMITTED)) /* EV8 */
00005a  4629              MOV      r1,r5
00005c  4630              MOV      r0,r6
00005e  f7fffffe          BL       I2C_CheckEvent
000062  2800              CMP      r0,#0
000064  d0f9              BEQ      |L4.90|
;;;272      {
;;;273      }
;;;274      
;;;275      /* Send I2C1 data */
;;;276      I2C_SendData(I2C1, (u8)RegValue);
000066  b2e1              UXTB     r1,r4
000068  4630              MOV      r0,r6
00006a  f7fffffe          BL       I2C_SendData
                  |L4.110|
;;;277      
;;;278      /* Test on I2C1 EV8 and clear it */
;;;279      while(!I2C_CheckEvent(I2C1, I2C_EVENT_MASTER_BYTE_TRANSMITTED)) /* EV8 */
00006e  4629              MOV      r1,r5
000070  4630              MOV      r0,r6
000072  f7fffffe          BL       I2C_CheckEvent
000076  2800              CMP      r0,#0
000078  d0f9              BEQ      |L4.110|
;;;280      {
;;;281      }
;;;282    
;;;283      /* Send I2C1 STOP Condition */
;;;284      I2C_GenerateSTOP(I2C1, ENABLE);    
00007a  4630              MOV      r0,r6
00007c  e8bd41f0          POP      {r4-r8,lr}
000080  2101              MOVS     r1,#1
000082  f7ffbffe          B.W      I2C_GenerateSTOP
;;;285    }
;;;286    
                          ENDP

000086  0000              DCW      0x0000
                  |L4.136|
000088  40005400          DCD      0x40005400
                  |L4.140|
00008c  00030001          DCD      0x00030001
                  |L4.144|
000090  00070082          DCD      0x00070082

                          AREA ||i.I2C_LM75_Temp_Read||, CODE, READONLY, ALIGN=2

                  I2C_LM75_Temp_Read PROC
;;;294    u16 I2C_LM75_Temp_Read(void)
;;;295    {
000000  b570              PUSH     {r4-r6,lr}
;;;296      u32 RegValue = 0;
;;;297    
;;;298      /* Enable I2C1 acknowledgement if it is already disabled by other function */
;;;299      I2C_AcknowledgeConfig(I2C1, ENABLE);
000002  4c30              LDR      r4,|L5.196|
000004  2101              MOVS     r1,#1
000006  4620              MOV      r0,r4
000008  f7fffffe          BL       I2C_AcknowledgeConfig
;;;300    
;;;301      /*----- Transmission Phase -----*/
;;;302      /* Send I2C1 START condition */
;;;303      I2C_GenerateSTART(I2C1, ENABLE);
00000c  2101              MOVS     r1,#1
00000e  4620              MOV      r0,r4
000010  f7fffffe          BL       I2C_GenerateSTART
000014  4d2c              LDR      r5,|L5.200|
                  |L5.22|
;;;304      
;;;305      /* Test on I2C1 EV5 and clear it */
;;;306      while(!I2C_CheckEvent(I2C1, I2C_EVENT_MASTER_MODE_SELECT))  /* EV5 */
000016  4620              MOV      r0,r4
000018  4629              MOV      r1,r5
00001a  f7fffffe          BL       I2C_CheckEvent
00001e  2800              CMP      r0,#0
000020  d0f9              BEQ      |L5.22|
;;;307      {
;;;308      }
;;;309      
;;;310      /* Send STLM75 slave address for write */
;;;311      I2C_Send7bitAddress(I2C1, LM75_Addr, I2C_Direction_Transmitter);
000022  2200              MOVS     r2,#0
000024  2190              MOVS     r1,#0x90
000026  4620              MOV      r0,r4
000028  f7fffffe          BL       I2C_Send7bitAddress
00002c  4e27              LDR      r6,|L5.204|
                  |L5.46|
;;;312      
;;;313      /* Test on I2C1 EV6 and clear it */
;;;314      while(!I2C_CheckEvent(I2C1, I2C_EVENT_MASTER_TRANSMITTER_MODE_SELECTED)) /* EV6 */
00002e  4620              MOV      r0,r4
000030  4631              MOV      r1,r6
000032  f7fffffe          BL       I2C_CheckEvent
000036  2800              CMP      r0,#0
000038  d0f9              BEQ      |L5.46|
;;;315      {
;;;316      }
;;;317    
;;;318      /* Send the temperature register data pointer */
;;;319      I2C_SendData(I2C1, LM75_TEMP_Reg);
00003a  2100              MOVS     r1,#0
00003c  4620              MOV      r0,r4
00003e  f7fffffe          BL       I2C_SendData
000042  4e22              LDR      r6,|L5.204|
000044  1cb6              ADDS     r6,r6,#2
                  |L5.70|
;;;320      
;;;321      /* Test on I2C1 EV8 and clear it */
;;;322      while(!I2C_CheckEvent(I2C1, I2C_EVENT_MASTER_BYTE_TRANSMITTED)) /* EV8 */
000046  4631              MOV      r1,r6
000048  4620              MOV      r0,r4
00004a  f7fffffe          BL       I2C_CheckEvent
00004e  2800              CMP      r0,#0
000050  d0f9              BEQ      |L5.70|
;;;323      {
;;;324      }
;;;325    
;;;326      /*----- Reception Phase -----*/
;;;327      /* Send Re-STRAT condition */
;;;328      I2C_GenerateSTART(I2C1, ENABLE);
000052  2101              MOVS     r1,#1
000054  4620              MOV      r0,r4
000056  f7fffffe          BL       I2C_GenerateSTART
                  |L5.90|
;;;329      
;;;330      /* Test on EV5 and clear it */
;;;331      while(!I2C_CheckEvent(I2C1, I2C_EVENT_MASTER_MODE_SELECT))  /* EV5 */
00005a  4629              MOV      r1,r5
00005c  4620              MOV      r0,r4
00005e  f7fffffe          BL       I2C_CheckEvent
000062  2800              CMP      r0,#0
000064  d0f9              BEQ      |L5.90|
;;;332      {
;;;333      }
;;;334      
;;;335      /* Send STLM75 slave address for read */
;;;336      I2C_Send7bitAddress(I2C1, LM75_Addr, I2C_Direction_Receiver);
000066  2201              MOVS     r2,#1
000068  2190              MOVS     r1,#0x90
00006a  4620              MOV      r0,r4
00006c  f7fffffe          BL       I2C_Send7bitAddress
000070  4e15              LDR      r6,|L5.200|
000072  4d15              LDR      r5,|L5.200|
000074  1c76              ADDS     r6,r6,#1
000076  353f              ADDS     r5,r5,#0x3f
                  |L5.120|
;;;337      
;;;338      /* Test on EV6 and clear it */
;;;339      while(!I2C_CheckEvent(I2C1, I2C_EVENT_MASTER_RECEIVER_MODE_SELECTED))  /* EV6 */
000078  4631              MOV      r1,r6
00007a  4620              MOV      r0,r4
00007c  f7fffffe          BL       I2C_CheckEvent
000080  2800              CMP      r0,#0
000082  d0f9              BEQ      |L5.120|
                  |L5.132|
;;;340      {
;;;341      }

⌨️ 快捷键说明

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