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

📄 tsensor.txt

📁 STM32外部SRAM用作datamemery的程序 开发环境MDK
💻 TXT
📖 第 1 页 / 共 5 页
字号:
;;;339      /* Test on EV7 and clear it */
;;;340      while(!I2C_CheckEvent(I2C1, I2C_EVENT_MASTER_BYTE_RECEIVED))  /* EV7 */
000084  4629              MOV      r1,r5
000086  4620              MOV      r0,r4
000088  f7fff7ff          BL       I2C_CheckEvent
00008c  2800              CMP      r0,#0
00008e  d0f9              BEQ      |L5.132|
;;;341      {
;;;342      }
;;;343      
;;;344      /* Store I2C1 received data */
;;;345      RegValue = I2C_ReceiveData(I2C1) << 8;
000090  4620              MOV      r0,r4
000092  f7fff7ff          BL       I2C_ReceiveData
000096  0206              LSLS     r6,r0,#8
;;;346      
;;;347      /* Disable I2C1 acknowledgement */
;;;348      I2C_AcknowledgeConfig(I2C1, DISABLE);
000098  2100              MOVS     r1,#0
00009a  4620              MOV      r0,r4
00009c  f7fff7ff          BL       I2C_AcknowledgeConfig
;;;349      
;;;350      /* Send I2C1 STOP Condition */
;;;351      I2C_GenerateSTOP(I2C1, ENABLE);
0000a0  2101              MOVS     r1,#1
0000a2  4620              MOV      r0,r4
0000a4  f7fff7ff          BL       I2C_GenerateSTOP
                  |L5.168|
;;;352      
;;;353      /* Test on EV7 and clear it */
;;;354      while(!I2C_CheckEvent(I2C1, I2C_EVENT_MASTER_BYTE_RECEIVED))  /* EV7 */
0000a8  4629              MOV      r1,r5
0000aa  4620              MOV      r0,r4
0000ac  f7fff7ff          BL       I2C_CheckEvent
0000b0  2800              CMP      r0,#0
0000b2  d0f9              BEQ      |L5.168|
;;;355      {
;;;356      }
;;;357      
;;;358      /* Store I2C1 received data */
;;;359      RegValue |= I2C_ReceiveData(I2C1);
0000b4  4620              MOV      r0,r4
0000b6  f7fff7ff          BL       I2C_ReceiveData
0000ba  4330              ORRS     r0,r0,r6
;;;360    
;;;361      /* Return Temperature value */
;;;362      return (RegValue >> 5);
0000bc  f3c0f3c0          UBFX     r0,r0,#5,#16
;;;363    }
0000c0  bd70              POP      {r4-r6,pc}
;;;364    
                          ENDP

0000c2  0000              DCW      0x0000
                  |L5.196|
0000c4  40005400          DCD      0x40005400
                  |L5.200|
0000c8  00030001          DCD      0x00030001
                  |L5.204|
0000cc  00070082          DCD      0x00070082

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

                  I2C_LM75_ConfReg_Read PROC
;;;372    u8 I2C_LM75_ConfReg_Read(void)
;;;373    {
000000  b570              PUSH     {r4-r6,lr}
;;;374      u32 RegValue = 0;
;;;375    
;;;376      /*----- Transmission Phase -----*/
;;;377      /* Send I2C1 START condition */
;;;378      I2C_GenerateSTART(I2C1, ENABLE);
000002  4d28              LDR      r5,|L6.164|
000004  2101              MOVS     r1,#1
000006  4628              MOV      r0,r5
000008  f7fff7ff          BL       I2C_GenerateSTART
00000c  4c26              LDR      r4,|L6.168|
                  |L6.14|
;;;379      
;;;380      /* Test on I2C1 EV5 and clear it */
;;;381      while(!I2C_CheckEvent(I2C1, I2C_EVENT_MASTER_MODE_SELECT))  /* EV5 */
00000e  4628              MOV      r0,r5
000010  4621              MOV      r1,r4
000012  f7fff7ff          BL       I2C_CheckEvent
000016  2800              CMP      r0,#0
000018  d0f9              BEQ      |L6.14|
;;;382      {
;;;383      }
;;;384    
;;;385      /* Send STLM75 slave address for write */
;;;386      I2C_Send7bitAddress(I2C1, LM75_Addr, I2C_Direction_Transmitter);
00001a  2200              MOVS     r2,#0
00001c  2190              MOVS     r1,#0x90
00001e  4628              MOV      r0,r5
000020  f7fff7ff          BL       I2C_Send7bitAddress
000024  4e21              LDR      r6,|L6.172|
                  |L6.38|
;;;387      
;;;388      /* Test on I2C1 EV6 and clear it */
;;;389      while(!I2C_CheckEvent(I2C1, I2C_EVENT_MASTER_TRANSMITTER_MODE_SELECTED)) /* EV6 */
000026  4628              MOV      r0,r5
000028  4631              MOV      r1,r6
00002a  f7fff7ff          BL       I2C_CheckEvent
00002e  2800              CMP      r0,#0
000030  d0f9              BEQ      |L6.38|
;;;390      {
;;;391      }
;;;392    
;;;393      /* Send the configuration register data pointer */
;;;394      I2C_SendData(I2C1, LM75_CONF_Reg);
000032  2101              MOVS     r1,#1
000034  4628              MOV      r0,r5
000036  f7fff7ff          BL       I2C_SendData
00003a  4e1c              LDR      r6,|L6.172|
00003c  1cb6              ADDS     r6,r6,#2
                  |L6.62|
;;;395      
;;;396      /* Test on I2C1 EV8 and clear it */
;;;397      while(!I2C_CheckEvent(I2C1, I2C_EVENT_MASTER_BYTE_TRANSMITTED)) /* EV8 */
00003e  4631              MOV      r1,r6
000040  4628              MOV      r0,r5
000042  f7fff7ff          BL       I2C_CheckEvent
000046  2800              CMP      r0,#0
000048  d0f9              BEQ      |L6.62|
;;;398      {
;;;399      }
;;;400    
;;;401      /*----- Reception Phase -----*/
;;;402      /* Send Re-STRAT condition */
;;;403      I2C_GenerateSTART(I2C1, ENABLE);
00004a  2101              MOVS     r1,#1
00004c  4628              MOV      r0,r5
00004e  f7fff7ff          BL       I2C_GenerateSTART
                  |L6.82|
;;;404      
;;;405      /* Test on EV5 and clear it */
;;;406      while(!I2C_CheckEvent(I2C1, I2C_EVENT_MASTER_MODE_SELECT))  /* EV5 */
000052  4621              MOV      r1,r4
000054  4628              MOV      r0,r5
000056  f7fff7ff          BL       I2C_CheckEvent
00005a  2800              CMP      r0,#0
00005c  d0f9              BEQ      |L6.82|
;;;407      {
;;;408      }
;;;409      
;;;410      /* Send STLM75 slave address for read */
;;;411      I2C_Send7bitAddress(I2C1, LM75_Addr, I2C_Direction_Receiver);
00005e  2201              MOVS     r2,#1
000060  2190              MOVS     r1,#0x90
000062  4628              MOV      r0,r5
000064  f7fff7ff          BL       I2C_Send7bitAddress
000068  4c0f              LDR      r4,|L6.168|
00006a  1c64              ADDS     r4,r4,#1
                  |L6.108|
;;;412      
;;;413      /* Test on EV6 and clear it */
;;;414      while(!I2C_CheckEvent(I2C1, I2C_EVENT_MASTER_RECEIVER_MODE_SELECTED))  /* EV6 */
00006c  4621              MOV      r1,r4
00006e  4628              MOV      r0,r5
000070  f7fff7ff          BL       I2C_CheckEvent
000074  2800              CMP      r0,#0
000076  d0f9              BEQ      |L6.108|
;;;415      {
;;;416      }
;;;417    
;;;418      /* Disable I2C1 acknowledgement */
;;;419      I2C_AcknowledgeConfig(I2C1, DISABLE);
000078  2100              MOVS     r1,#0
00007a  4628              MOV      r0,r5
00007c  f7fff7ff          BL       I2C_AcknowledgeConfig
;;;420      
;;;421      /* Send I2C1 STOP Condition */
;;;422      I2C_GenerateSTOP(I2C1, ENABLE);
000080  2101              MOVS     r1,#1
000082  4628              MOV      r0,r5
000084  f7fff7ff          BL       I2C_GenerateSTOP
000088  4c07              LDR      r4,|L6.168|
00008a  343f              ADDS     r4,r4,#0x3f
                  |L6.140|
;;;423    
;;;424      /* Test on EV7 and clear it */
;;;425      while(!I2C_CheckEvent(I2C1, I2C_EVENT_MASTER_BYTE_RECEIVED))  /* EV7 */
00008c  4621              MOV      r1,r4
00008e  4628              MOV      r0,r5
000090  f7fff7ff          BL       I2C_CheckEvent
000094  2800              CMP      r0,#0
000096  d0f9              BEQ      |L6.140|
;;;426      {
;;;427      }
;;;428      
;;;429      /* Store I2C1 received data */
;;;430      RegValue = I2C_ReceiveData(I2C1);
000098  4628              MOV      r0,r5
00009a  e8bde8bd          POP      {r4-r6,lr}
00009e  f7fff7ff          B.W      I2C_ReceiveData
;;;431    
;;;432      /* Return configuration register value */
;;;433      return (RegValue);    
;;;434    }
;;;435    
                          ENDP

0000a2  0000              DCW      0x0000
                  |L6.164|
0000a4  40005400          DCD      0x40005400
                  |L6.168|
0000a8  00030001          DCD      0x00030001
                  |L6.172|
0000ac  00070082          DCD      0x00070082

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

                  I2C_LM75_ConfReg_Write PROC
;;;443    void I2C_LM75_ConfReg_Write(u8 RegValue)
;;;444    {
000000  b570              PUSH     {r4-r6,lr}
;;;445      /*----- Transmission Phase -----*/
;;;446      /* Send I2C1 START condition */
;;;447      I2C_GenerateSTART(I2C1, ENABLE);
000002  4d1a              LDR      r5,|L7.108|
000004  4606              MOV      r6,r0                 ;444
000006  2101              MOVS     r1,#1
000008  4628              MOV      r0,r5
00000a  f7fff7ff          BL       I2C_GenerateSTART
00000e  4c18              LDR      r4,|L7.112|
                  |L7.16|
;;;448    
;;;449      /* Test on I2C1 EV5 and clear it */
;;;450      while(!I2C_CheckEvent(I2C1, I2C_EVENT_MASTER_MODE_SELECT))  /* EV5 */
000010  4628              MOV      r0,r5
000012  4621              MOV      r1,r4
000014  f7fff7ff          BL       I2C_CheckEvent
000018  2800              CMP      r0,#0
00001a  d0f9              BEQ      |L7.16|
;;;451      {
;;;452      }
;;;453      
;;;454      /* Send STLM75 slave address for write */
;;;455      I2C_Send7bitAddress(I2C1, LM75_Addr, I2C_Direction_Transmitter);
00001c  2200              MOVS     r2,#0
00001e  2190              MOVS     r1,#0x90
000020  4628              MOV      r0,r5
000022  f7fff7ff          BL       I2C_Send7bitAddress
000026  4c13              LDR      r4,|L7.116|
                  |L7.40|
;;;456      
;;;457      /* Test on I2C1 EV6 and clear it */
;;;458      while(!I2C_CheckEvent(I2C1, I2C_EVENT_MASTER_TRANSMITTER_MODE_SELECTED)) /* EV6 */
000028  4628              MOV      r0,r5
00002a  4621              MOV      r1,r4
00002c  f7fff7ff          BL       I2C_CheckEvent
000030  2800              CMP      r0,#0
000032  d0f9              BEQ      |L7.40|
;;;459      {
;;;460      }
;;;461    
;;;462      /* Send the configuration register data pointer */
;;;463      I2C_SendData(I2C1, LM75_CONF_Reg);
000034  2101              MOVS     r1,#1
000036  4628              MOV      r0,r5
000038  f7fff7ff          BL       I2C_SendData
00003c  4c0d              LDR      r4,|L7.116|
00003e  1ca4              ADDS     r4,r4,#2
                  |L7.64|
;;;464      
;;;465      /* Test on I2C1 EV8 and clear it */
;;;466      while(!I2C_CheckEvent(I2C1, I2C_EVENT_MASTER_BYTE_TRANSMITTED)) /* EV8 */
000040  4621              MOV      r1,r4
000042  4628              MOV      r0,r5
000044  f7fff7ff          BL       I2C_CheckEvent
000048  2800              CMP      r0,#0
00004a  d0f9              BEQ      |L7.64|
;;;467      {
;;;468      }
;;;469    
;;;470      /* Send I2C1 data */
;;;471      I2C_SendData(I2C1, RegValue);
00004c  4631              MOV      r1,r6
00004e  4628              MOV      r0,r5
000050  f7fff7ff          BL       I2C_SendData
                  |L7.84|
;;;472      
;;;473      /* Test on I2C1 EV8 and clear it */
;;;474      while(!I2C_CheckEvent(I2C1, I2C_EVENT_MASTER_BYTE_TRANSMITTED)) /* EV8 */
000054  4621              MOV      r1,r4
000056  4628              MOV      r0,r5
000058  f7fff7ff          BL       I2C_CheckEvent
00005c  2800              CMP      r0,#0
00005e  d0f9              BEQ      |L7.84|
;;;475      {
;;;476      }
;;;477    
;;;478      /* Send I2C1 STOP Condition */
;;;479      I2C_GenerateSTOP(I2C1, ENABLE);     
000060  4628              MOV      r0,r5
000062  e8bde8bd          POP      {r4-r6,lr}
000066  2101              MOVS     r1,#1
000068  f7fff7ff          B.W      I2C_GenerateSTOP
;;;480    }
;;;481    
                          ENDP

                  |L7.108|
00006c  40005400          DCD      0x40005400
                  |L7.112|
000070  00030001          DCD      0x00030001
                  |L7.116|

⌨️ 快捷键说明

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