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

📄 tsensor.txt

📁 STM32外部SRAM用作datamemery的程序 开发环境MDK
💻 TXT
📖 第 1 页 / 共 5 页
字号:
;;;191      /* Test on EV6 and clear it */
;;;192      while(!I2C_CheckEvent(I2C1, I2C_EVENT_MASTER_RECEIVER_MODE_SELECTED))  /* EV6 */
00007c  4631              MOV      r1,r6
00007e  4620              MOV      r0,r4
000080  f7fff7ff          BL       I2C_CheckEvent
000084  2800              CMP      r0,#0
000086  d0f9              BEQ      |L3.124|
                  |L3.136|
;;;193      {
;;;194      }
;;;195      
;;;196    
;;;197      /* Test on EV7 and clear it */
;;;198      while(!I2C_CheckEvent(I2C1, I2C_EVENT_MASTER_BYTE_RECEIVED))  /* EV7 */
000088  4629              MOV      r1,r5
00008a  4620              MOV      r0,r4
00008c  f7fff7ff          BL       I2C_CheckEvent
000090  2800              CMP      r0,#0
000092  d0f9              BEQ      |L3.136|
;;;199      {
;;;200      }
;;;201      
;;;202      /* Store I2C1 received data */
;;;203      RegValue = (u16)(I2C_ReceiveData(I2C1) << 8);
000094  4620              MOV      r0,r4
000096  f7fff7ff          BL       I2C_ReceiveData
00009a  0206              LSLS     r6,r0,#8
;;;204      
;;;205      /* Disable I2C1 acknowledgement */
;;;206      I2C_AcknowledgeConfig(I2C1, DISABLE);
00009c  2100              MOVS     r1,#0
00009e  4620              MOV      r0,r4
0000a0  f7fff7ff          BL       I2C_AcknowledgeConfig
;;;207      
;;;208      /* Send I2C1 STOP Condition */
;;;209      I2C_GenerateSTOP(I2C1, ENABLE);
0000a4  2101              MOVS     r1,#1
0000a6  4620              MOV      r0,r4
0000a8  f7fff7ff          BL       I2C_GenerateSTOP
                  |L3.172|
;;;210      
;;;211      /* Test on EV7 and clear it */
;;;212      while(!I2C_CheckEvent(I2C1, I2C_EVENT_MASTER_BYTE_RECEIVED))  /* EV7 */
0000ac  4629              MOV      r1,r5
0000ae  4620              MOV      r0,r4
0000b0  f7fff7ff          BL       I2C_CheckEvent
0000b4  2800              CMP      r0,#0
0000b6  d0f9              BEQ      |L3.172|
;;;213      {
;;;214      }
;;;215      
;;;216      /* Store I2C1 received data */
;;;217      RegValue |= I2C_ReceiveData(I2C1);
0000b8  4620              MOV      r0,r4
0000ba  f7fff7ff          BL       I2C_ReceiveData
0000be  4330              ORRS     r0,r0,r6
;;;218    
;;;219      /* Return register value */
;;;220      return (RegValue >> 7);
0000c0  f3c0f3c0          UBFX     r0,r0,#7,#16
;;;221    }
0000c4  e8bde8bd          POP      {r4-r8,pc}
;;;222    
                          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
;;;233    void I2C_LM75_Reg_Write(u8 RegName, u16 RegValue)
;;;234    {
000000  e92de92d          PUSH     {r4-r8,lr}
000004  4605              MOV      r5,r0
;;;235      /* Shift left register value */
;;;236      RegValue = RegValue << 7;
000006  05c8              LSLS     r0,r1,#23
;;;237    
;;;238      /*----- Transmission Phase -----*/
;;;239      /* Send I2C1 START condition */
;;;240      I2C_GenerateSTART(I2C1, ENABLE);
000008  4e1f              LDR      r6,|L4.136|
00000a  0c04              LSRS     r4,r0,#16             ;236
00000c  2101              MOVS     r1,#1
00000e  4630              MOV      r0,r6
000010  f7fff7ff          BL       I2C_GenerateSTART
000014  4f1d              LDR      r7,|L4.140|
                  |L4.22|
;;;241      
;;;242      /* Test on I2C1 EV5 and clear it */
;;;243      while(!I2C_CheckEvent(I2C1, I2C_EVENT_MASTER_MODE_SELECT))  /* EV5 */
000016  4630              MOV      r0,r6
000018  4639              MOV      r1,r7
00001a  f7fff7ff          BL       I2C_CheckEvent
00001e  2800              CMP      r0,#0
000020  d0f9              BEQ      |L4.22|
;;;244      {
;;;245      }
;;;246      
;;;247      /* Send STLM75 slave address for write */
;;;248      I2C_Send7bitAddress(I2C1, LM75_Addr, I2C_Direction_Transmitter);
000022  2200              MOVS     r2,#0
000024  2190              MOVS     r1,#0x90
000026  4630              MOV      r0,r6
000028  f7fff7ff          BL       I2C_Send7bitAddress
00002c  4f18              LDR      r7,|L4.144|
                  |L4.46|
;;;249      
;;;250      /* Test on I2C1 EV6 and clear it */
;;;251      while(!I2C_CheckEvent(I2C1, I2C_EVENT_MASTER_TRANSMITTER_MODE_SELECTED)) /* EV6 */
00002e  4630              MOV      r0,r6
000030  4639              MOV      r1,r7
000032  f7fff7ff          BL       I2C_CheckEvent
000036  2800              CMP      r0,#0
000038  d0f9              BEQ      |L4.46|
;;;252      {
;;;253      }
;;;254    
;;;255      /* Send the specified register data pointer */
;;;256      I2C_SendData(I2C1, RegName);
00003a  4629              MOV      r1,r5
00003c  4630              MOV      r0,r6
00003e  f7fff7ff          BL       I2C_SendData
000042  4d13              LDR      r5,|L4.144|
000044  1cad              ADDS     r5,r5,#2
                  |L4.70|
;;;257      
;;;258      /* Test on I2C1 EV8 and clear it */
;;;259      while(!I2C_CheckEvent(I2C1, I2C_EVENT_MASTER_BYTE_TRANSMITTED)) /* EV8 */
000046  4629              MOV      r1,r5
000048  4630              MOV      r0,r6
00004a  f7fff7ff          BL       I2C_CheckEvent
00004e  2800              CMP      r0,#0
000050  d0f9              BEQ      |L4.70|
;;;260      {
;;;261      }
;;;262    
;;;263      /* Send I2C1 data */
;;;264      I2C_SendData(I2C1, (u8)(RegValue >> 8));
000052  0a21              LSRS     r1,r4,#8
000054  4630              MOV      r0,r6
000056  f7fff7ff          BL       I2C_SendData
                  |L4.90|
;;;265      
;;;266      /* Test on I2C1 EV8 and clear it */
;;;267      while(!I2C_CheckEvent(I2C1, I2C_EVENT_MASTER_BYTE_TRANSMITTED)) /* EV8 */
00005a  4629              MOV      r1,r5
00005c  4630              MOV      r0,r6
00005e  f7fff7ff          BL       I2C_CheckEvent
000062  2800              CMP      r0,#0
000064  d0f9              BEQ      |L4.90|
;;;268      {
;;;269      }
;;;270      
;;;271      /* Send I2C1 data */
;;;272      I2C_SendData(I2C1, (u8)RegValue);
000066  b2e1              UXTB     r1,r4
000068  4630              MOV      r0,r6
00006a  f7fff7ff          BL       I2C_SendData
                  |L4.110|
;;;273      
;;;274      /* Test on I2C1 EV8 and clear it */
;;;275      while(!I2C_CheckEvent(I2C1, I2C_EVENT_MASTER_BYTE_TRANSMITTED)) /* EV8 */
00006e  4629              MOV      r1,r5
000070  4630              MOV      r0,r6
000072  f7fff7ff          BL       I2C_CheckEvent
000076  2800              CMP      r0,#0
000078  d0f9              BEQ      |L4.110|
;;;276      {
;;;277      }
;;;278    
;;;279      /* Send I2C1 STOP Condition */
;;;280      I2C_GenerateSTOP(I2C1, ENABLE);    
00007a  4630              MOV      r0,r6
00007c  e8bde8bd          POP      {r4-r8,lr}
000080  2101              MOVS     r1,#1
000082  f7fff7ff          B.W      I2C_GenerateSTOP
;;;281    }
;;;282    
                          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
;;;290    u16 I2C_LM75_Temp_Read(void)
;;;291    {
000000  b570              PUSH     {r4-r6,lr}
;;;292      u32 RegValue = 0;
;;;293    
;;;294      /* Enable I2C1 acknowledgement if it is already disabled by other function */
;;;295      I2C_AcknowledgeConfig(I2C1, ENABLE);
000002  4c30              LDR      r4,|L5.196|
000004  2101              MOVS     r1,#1
000006  4620              MOV      r0,r4
000008  f7fff7ff          BL       I2C_AcknowledgeConfig
;;;296    
;;;297      /*----- Transmission Phase -----*/
;;;298      /* Send I2C1 START condition */
;;;299      I2C_GenerateSTART(I2C1, ENABLE);
00000c  2101              MOVS     r1,#1
00000e  4620              MOV      r0,r4
000010  f7fff7ff          BL       I2C_GenerateSTART
000014  4d2c              LDR      r5,|L5.200|
                  |L5.22|
;;;300      
;;;301      /* Test on I2C1 EV5 and clear it */
;;;302      while(!I2C_CheckEvent(I2C1, I2C_EVENT_MASTER_MODE_SELECT))  /* EV5 */
000016  4620              MOV      r0,r4
000018  4629              MOV      r1,r5
00001a  f7fff7ff          BL       I2C_CheckEvent
00001e  2800              CMP      r0,#0
000020  d0f9              BEQ      |L5.22|
;;;303      {
;;;304      }
;;;305      
;;;306      /* Send STLM75 slave address for write */
;;;307      I2C_Send7bitAddress(I2C1, LM75_Addr, I2C_Direction_Transmitter);
000022  2200              MOVS     r2,#0
000024  2190              MOVS     r1,#0x90
000026  4620              MOV      r0,r4
000028  f7fff7ff          BL       I2C_Send7bitAddress
00002c  4e27              LDR      r6,|L5.204|
                  |L5.46|
;;;308      
;;;309      /* Test on I2C1 EV6 and clear it */
;;;310      while(!I2C_CheckEvent(I2C1, I2C_EVENT_MASTER_TRANSMITTER_MODE_SELECTED)) /* EV6 */
00002e  4620              MOV      r0,r4
000030  4631              MOV      r1,r6
000032  f7fff7ff          BL       I2C_CheckEvent
000036  2800              CMP      r0,#0
000038  d0f9              BEQ      |L5.46|
;;;311      {
;;;312      }
;;;313    
;;;314      /* Send the temperature register data pointer */
;;;315      I2C_SendData(I2C1, LM75_TEMP_Reg);
00003a  2100              MOVS     r1,#0
00003c  4620              MOV      r0,r4
00003e  f7fff7ff          BL       I2C_SendData
000042  4e22              LDR      r6,|L5.204|
000044  1cb6              ADDS     r6,r6,#2
                  |L5.70|
;;;316      
;;;317      /* Test on I2C1 EV8 and clear it */
;;;318      while(!I2C_CheckEvent(I2C1, I2C_EVENT_MASTER_BYTE_TRANSMITTED)) /* EV8 */
000046  4631              MOV      r1,r6
000048  4620              MOV      r0,r4
00004a  f7fff7ff          BL       I2C_CheckEvent
00004e  2800              CMP      r0,#0
000050  d0f9              BEQ      |L5.70|
;;;319      {
;;;320      }
;;;321    
;;;322      /*----- Reception Phase -----*/
;;;323      /* Send Re-STRAT condition */
;;;324      I2C_GenerateSTART(I2C1, ENABLE);
000052  2101              MOVS     r1,#1
000054  4620              MOV      r0,r4
000056  f7fff7ff          BL       I2C_GenerateSTART
                  |L5.90|
;;;325      
;;;326      /* Test on EV5 and clear it */
;;;327      while(!I2C_CheckEvent(I2C1, I2C_EVENT_MASTER_MODE_SELECT))  /* EV5 */
00005a  4629              MOV      r1,r5
00005c  4620              MOV      r0,r4
00005e  f7fff7ff          BL       I2C_CheckEvent
000062  2800              CMP      r0,#0
000064  d0f9              BEQ      |L5.90|
;;;328      {
;;;329      }
;;;330      
;;;331      /* Send STLM75 slave address for read */
;;;332      I2C_Send7bitAddress(I2C1, LM75_Addr, I2C_Direction_Receiver);
000066  2201              MOVS     r2,#1
000068  2190              MOVS     r1,#0x90
00006a  4620              MOV      r0,r4
00006c  f7fff7ff          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|
;;;333      
;;;334      /* Test on EV6 and clear it */
;;;335      while(!I2C_CheckEvent(I2C1, I2C_EVENT_MASTER_RECEIVER_MODE_SELECTED))  /* EV6 */
000078  4631              MOV      r1,r6
00007a  4620              MOV      r0,r4
00007c  f7fff7ff          BL       I2C_CheckEvent
000080  2800              CMP      r0,#0
000082  d0f9              BEQ      |L5.120|
                  |L5.132|
;;;336      {
;;;337      }
;;;338    

⌨️ 快捷键说明

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