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

📄 tsensor.txt

📁 STM32外部SRAM用作datamemery的程序 开发环境MDK
💻 TXT
📖 第 1 页 / 共 5 页
字号:
000074  00070082          DCD      0x00070082

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

                  I2C_LM75_ShutDown PROC
;;;489    void I2C_LM75_ShutDown(FunctionalState NewState)
;;;490    {
000000  e92de92d          PUSH     {r4-r10,lr}
;;;491      u32 RegValue = 0;
;;;492    
;;;493      /*----- Transmission Phase -----*/
;;;494      /* Send I2C1 START condition */
;;;495      I2C_GenerateSTART(I2C1, ENABLE);
000004  4f45              LDR      r7,|L8.284|
000006  4680              MOV      r8,r0                 ;490
000008  2101              MOVS     r1,#1
00000a  4638              MOV      r0,r7
00000c  f7fff7ff          BL       I2C_GenerateSTART
000010  4e43              LDR      r6,|L8.288|
                  |L8.18|
;;;496      
;;;497      /* Test on I2C1 EV5 and clear it */
;;;498      while(!I2C_CheckEvent(I2C1, I2C_EVENT_MASTER_MODE_SELECT))  /* EV5 */
000012  4638              MOV      r0,r7
000014  4631              MOV      r1,r6
000016  f7fff7ff          BL       I2C_CheckEvent
00001a  2800              CMP      r0,#0
00001c  d0f9              BEQ      |L8.18|
;;;499      {
;;;500      }
;;;501    
;;;502      /* Send STLM75 slave address for write */
;;;503      I2C_Send7bitAddress(I2C1, LM75_Addr, I2C_Direction_Transmitter);
00001e  2200              MOVS     r2,#0
000020  2190              MOVS     r1,#0x90
000022  4638              MOV      r0,r7
000024  f7fff7ff          BL       I2C_Send7bitAddress
000028  4c3e              LDR      r4,|L8.292|
                  |L8.42|
;;;504      
;;;505      /* Test on I2C1 EV6 and clear it */
;;;506      while(!I2C_CheckEvent(I2C1, I2C_EVENT_MASTER_TRANSMITTER_MODE_SELECTED)) /* EV6 */
00002a  4638              MOV      r0,r7
00002c  4621              MOV      r1,r4
00002e  f7fff7ff          BL       I2C_CheckEvent
000032  2800              CMP      r0,#0
000034  d0f9              BEQ      |L8.42|
;;;507      {
;;;508      }
;;;509    
;;;510      /* Send the configuration register data pointer */
;;;511      I2C_SendData(I2C1, LM75_CONF_Reg);
000036  2101              MOVS     r1,#1
000038  4638              MOV      r0,r7
00003a  f7fff7ff          BL       I2C_SendData
00003e  4d39              LDR      r5,|L8.292|
000040  1cad              ADDS     r5,r5,#2
                  |L8.66|
;;;512      
;;;513      /* Test on I2C1 EV8 and clear it */
;;;514      while(!I2C_CheckEvent(I2C1, I2C_EVENT_MASTER_BYTE_TRANSMITTED))  /* EV8 */
000042  4629              MOV      r1,r5
000044  4638              MOV      r0,r7
000046  f7fff7ff          BL       I2C_CheckEvent
00004a  2800              CMP      r0,#0
00004c  d0f9              BEQ      |L8.66|
;;;515      {
;;;516      }
;;;517    
;;;518      /*----- Reception Phase -----*/
;;;519      /* Send Re-STRAT condition */
;;;520      I2C_GenerateSTART(I2C1, ENABLE);
00004e  2101              MOVS     r1,#1
000050  4638              MOV      r0,r7
000052  f7fff7ff          BL       I2C_GenerateSTART
                  |L8.86|
;;;521      
;;;522      /* Test on EV5 and clear it */
;;;523      while(!I2C_CheckEvent(I2C1, I2C_EVENT_MASTER_MODE_SELECT))  /* EV5 */
000056  4631              MOV      r1,r6
000058  4638              MOV      r0,r7
00005a  f7fff7ff          BL       I2C_CheckEvent
00005e  2800              CMP      r0,#0
000060  d0f9              BEQ      |L8.86|
;;;524      {
;;;525      }
;;;526      
;;;527      /* Send STLM75 slave address for read */
;;;528      I2C_Send7bitAddress(I2C1, LM75_Addr, I2C_Direction_Receiver);
000062  2201              MOVS     r2,#1
000064  2190              MOVS     r1,#0x90
000066  4638              MOV      r0,r7
000068  f7fff7ff          BL       I2C_Send7bitAddress
00006c  f8dff8df          LDR      r9,|L8.288|
000070  f109f109          ADD      r9,r9,#1
                  |L8.116|
;;;529      
;;;530      /* Test on EV6 and clear it */
;;;531      while(!I2C_CheckEvent(I2C1, I2C_EVENT_MASTER_RECEIVER_MODE_SELECTED))  /* EV6 */
000074  4649              MOV      r1,r9
000076  4638              MOV      r0,r7
000078  f7fff7ff          BL       I2C_CheckEvent
00007c  2800              CMP      r0,#0
00007e  d0f9              BEQ      |L8.116|
;;;532      {
;;;533      }
;;;534      
;;;535      /* Disable I2C1 acknowledgement */
;;;536      I2C_AcknowledgeConfig(I2C1, DISABLE);
000080  2100              MOVS     r1,#0
000082  4638              MOV      r0,r7
000084  f7fff7ff          BL       I2C_AcknowledgeConfig
;;;537      
;;;538      /* Send I2C1 STOP Condition */
;;;539      I2C_GenerateSTOP(I2C1, ENABLE);
000088  2101              MOVS     r1,#1
00008a  4638              MOV      r0,r7
00008c  f7fff7ff          BL       I2C_GenerateSTOP
000090  f8dff8df          LDR      r9,|L8.288|
000094  f109f109          ADD      r9,r9,#0x3f
                  |L8.152|
;;;540    
;;;541      /* Test on EV7 and clear it */
;;;542      while(!I2C_CheckEvent(I2C1, I2C_EVENT_MASTER_BYTE_RECEIVED))  /* EV7 */
000098  4649              MOV      r1,r9
00009a  4638              MOV      r0,r7
00009c  f7fff7ff          BL       I2C_CheckEvent
0000a0  2800              CMP      r0,#0
0000a2  d0f9              BEQ      |L8.152|
;;;543      {
;;;544      }
;;;545      
;;;546      /* Store I2C1 received data */
;;;547      RegValue = I2C_ReceiveData(I2C1);
0000a4  4638              MOV      r0,r7
0000a6  f7fff7ff          BL       I2C_ReceiveData
0000aa  4681              MOV      r9,r0
;;;548    
;;;549      /*----- Transmission Phase -----*/
;;;550      /* Send I2C1 START condition */
;;;551      I2C_GenerateSTART(I2C1, ENABLE);
0000ac  2101              MOVS     r1,#1
0000ae  4638              MOV      r0,r7
0000b0  f7fff7ff          BL       I2C_GenerateSTART
                  |L8.180|
;;;552      
;;;553      /* Test on I2C1 EV5 and clear it */
;;;554      while(!I2C_CheckEvent(I2C1, I2C_EVENT_MASTER_MODE_SELECT))  /* EV5 */
0000b4  4631              MOV      r1,r6
0000b6  4638              MOV      r0,r7
0000b8  f7fff7ff          BL       I2C_CheckEvent
0000bc  2800              CMP      r0,#0
0000be  d0f9              BEQ      |L8.180|
;;;555      {
;;;556      }
;;;557      
;;;558      /* Send STLM75 slave address for write */
;;;559      I2C_Send7bitAddress(I2C1, LM75_Addr, I2C_Direction_Transmitter);
0000c0  2200              MOVS     r2,#0
0000c2  2190              MOVS     r1,#0x90
0000c4  4638              MOV      r0,r7
0000c6  f7fff7ff          BL       I2C_Send7bitAddress
                  |L8.202|
;;;560      
;;;561      /* Test on I2C1 EV6 and clear it */
;;;562      while(!I2C_CheckEvent(I2C1, I2C_EVENT_MASTER_TRANSMITTER_MODE_SELECTED)) /* EV6 */
0000ca  4621              MOV      r1,r4
0000cc  4638              MOV      r0,r7
0000ce  f7fff7ff          BL       I2C_CheckEvent
0000d2  2800              CMP      r0,#0
0000d4  d0f9              BEQ      |L8.202|
;;;563      {
;;;564      }
;;;565      
;;;566      /* Send the configuration register data pointer */
;;;567      I2C_SendData(I2C1, LM75_CONF_Reg);
0000d6  2101              MOVS     r1,#1
0000d8  4638              MOV      r0,r7
0000da  f7fff7ff          BL       I2C_SendData
                  |L8.222|
;;;568      
;;;569      /* Test on I2C1 EV8 and clear it */
;;;570      while(!I2C_CheckEvent(I2C1, I2C_EVENT_MASTER_BYTE_TRANSMITTED)) /* EV8 */
0000de  4629              MOV      r1,r5
0000e0  4638              MOV      r0,r7
0000e2  f7fff7ff          BL       I2C_CheckEvent
0000e6  2800              CMP      r0,#0
0000e8  d0f9              BEQ      |L8.222|
;;;571      {
;;;572      }
;;;573    
;;;574      /* Enable or disable SD bit */
;;;575      if (NewState != DISABLE)
0000ea  f1b8f1b8          CMP      r8,#0
0000ee  d004              BEQ      |L8.250|
;;;576      {
;;;577        /* Disable LM75 */
;;;578        I2C_SendData(I2C1, RegValue | LM75_SD_Set);
0000f0  f009f009          AND      r0,r9,#0xff
0000f4  f040f040          ORR      r1,r0,#1
0000f8  e001              B        |L8.254|
                  |L8.250|
;;;579      }
;;;580      else
;;;581      {
;;;582        /* Enable LM75 */
;;;583        I2C_SendData(I2C1, RegValue & LM75_SD_Reset);
0000fa  f009f009          AND      r1,r9,#0xfe
                  |L8.254|
0000fe  4638              MOV      r0,r7                 ;578
000100  f7fff7ff          BL       I2C_SendData
                  |L8.260|
;;;584      }
;;;585    
;;;586      /* Test on I2C1 EV8 and clear it */
;;;587      while(!I2C_CheckEvent(I2C1, I2C_EVENT_MASTER_BYTE_TRANSMITTED)) /* EV8 */
000104  4629              MOV      r1,r5
000106  4638              MOV      r0,r7
000108  f7fff7ff          BL       I2C_CheckEvent
00010c  2800              CMP      r0,#0
00010e  d0f9              BEQ      |L8.260|
;;;588      {
;;;589      }
;;;590    
;;;591      /* Send I2C1 STOP Condition */
;;;592      I2C_GenerateSTOP(I2C1, ENABLE);     
000110  4638              MOV      r0,r7
000112  e8bde8bd          POP      {r4-r10,lr}
000116  2101              MOVS     r1,#1
000118  f7fff7ff          B.W      I2C_GenerateSTOP
;;;593    }
;;;594    
                          ENDP

                  |L8.284|
00011c  40005400          DCD      0x40005400
                  |L8.288|
000120  00030001          DCD      0x00030001
                  |L8.292|
000124  00070082          DCD      0x00070082

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

                  Thermometer_Temperature PROC
;;;602    void Thermometer_Temperature(void)
;;;603    {
000000  e92de92d          PUSH     {r4-r12,lr}
;;;604      u32 i = 0, pressedkey = 0;
000004  f04ff04f          MOV      r8,#0
                  |L9.8|
;;;605      
;;;606      while(ReadKey() != NOKEY)
000008  f7fff7ff          BL       ReadKey
00000c  2800              CMP      r0,#0
00000e  d1fb              BNE      |L9.8|
;;;607      {
;;;608      }
;;;609      RCC_AHBPeriphClockCmd(RCC_AHBPeriph_FSMC, DISABLE);
000010  f44ff44f          MOV      r7,#0x100
000014  2100              MOVS     r1,#0
000016  4638              MOV      r0,r7
000018  f7fff7ff          BL       RCC_AHBPeriphClockCmd
;;;610      
;;;611      /* Initialize the Temperature Sensor */
;;;612      I2C_LM75_Init();
00001c  f7fff7ff          BL       I2C_LM75_Init
;;;613    
;;;614      if(I2C_LM75_Status() == SUCCESS)
000020  f7fff7ff          BL       I2C_LM75_Status
000024  f64ff64f          MOV      r11,#0xffff
000028  2801              CMP      r0,#1
00002a  d17e              BNE      |L9.298|
;;;615      {
;;;616        /* Disable the JoyStick Interrupts */
;;;617        IntExtOnOffConfig(DISABLE);
00002c  2000              MOVS     r0,#0
00002e  f7fff7ff          BL       IntExtOnOffConfig
;;;618    
;;;619        RCC_AHBPeriphClockCmd(RCC_AHBPeriph_FSMC, ENABLE);
000032  2101              MOVS     r1,#1
000034  4638              MOV      r0,r7
000036  f7fff7ff          BL       RCC_AHBPeriphClockCmd
;;;620        /* Clear the LCD */
;;;621        LCD_Clear(White);
00003a  4658              MOV      r0,r11
00003c  f7fff7ff          BL       LCD_Clear
;;;622      
;;;623        /* Set the Icon display window */ 
;;;624        LCD_SetDisplayWindow(150, 190, 64, 64);
000040  2340              MOVS     r3,#0x40
000042  461a              MOV      r2,r3
000044  21be              MOVS     r1,#0xbe
000046  2096              MOVS     r0,#0x96
000048  f7fff7ff          BL       LCD_SetDisplayWindow
;;;625     
;;;626        /* Display the Thermometer icon */
;;;627        LCD_NORDisplay(TSENSOR);
00004c  487b              LDR      r0,|L9.572|
00004e  f7fff7ff          BL       LCD_NORDisplay
;;;628    
;;;629        RCC_AHBPeriphClockCmd(RCC_AHBPeriph_FSMC, ENABLE);
000052  2101              MOVS     r1,#1
000054  4638              MOV      r0,r7
000056  f7fff7ff          BL       RCC_AHBPeriphClockCmd
;;;630        /* Disable LCD Window mode */
;;;631        LCD_WindowModeDisable();
00005a  f7fff7ff          BL       LCD_WindowModeDisable

⌨️ 快捷键说明

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