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

📄 tsensor.txt

📁 stm32.rar
💻 TXT
📖 第 1 页 / 共 5 页
字号:
                          AREA ||i.I2C_LM75_ShutDown||, CODE, READONLY, ALIGN=2

                  I2C_LM75_ShutDown PROC
;;;493    void I2C_LM75_ShutDown(FunctionalState NewState)
;;;494    {
000000  e92d47f0          PUSH     {r4-r10,lr}
;;;495      u32 RegValue = 0;
;;;496    
;;;497      /*----- Transmission Phase -----*/
;;;498      /* Send I2C1 START condition */
;;;499      I2C_GenerateSTART(I2C1, ENABLE);
000004  4f45              LDR      r7,|L8.284|
000006  4680              MOV      r8,r0                 ;494
000008  2101              MOVS     r1,#1
00000a  4638              MOV      r0,r7
00000c  f7fffffe          BL       I2C_GenerateSTART
000010  4e43              LDR      r6,|L8.288|
                  |L8.18|
;;;500      
;;;501      /* Test on I2C1 EV5 and clear it */
;;;502      while(!I2C_CheckEvent(I2C1, I2C_EVENT_MASTER_MODE_SELECT))  /* EV5 */
000012  4638              MOV      r0,r7
000014  4631              MOV      r1,r6
000016  f7fffffe          BL       I2C_CheckEvent
00001a  2800              CMP      r0,#0
00001c  d0f9              BEQ      |L8.18|
;;;503      {
;;;504      }
;;;505    
;;;506      /* Send STLM75 slave address for write */
;;;507      I2C_Send7bitAddress(I2C1, LM75_Addr, I2C_Direction_Transmitter);
00001e  2200              MOVS     r2,#0
000020  2190              MOVS     r1,#0x90
000022  4638              MOV      r0,r7
000024  f7fffffe          BL       I2C_Send7bitAddress
000028  4c3e              LDR      r4,|L8.292|
                  |L8.42|
;;;508      
;;;509      /* Test on I2C1 EV6 and clear it */
;;;510      while(!I2C_CheckEvent(I2C1, I2C_EVENT_MASTER_TRANSMITTER_MODE_SELECTED)) /* EV6 */
00002a  4638              MOV      r0,r7
00002c  4621              MOV      r1,r4
00002e  f7fffffe          BL       I2C_CheckEvent
000032  2800              CMP      r0,#0
000034  d0f9              BEQ      |L8.42|
;;;511      {
;;;512      }
;;;513    
;;;514      /* Send the configuration register data pointer */
;;;515      I2C_SendData(I2C1, LM75_CONF_Reg);
000036  2101              MOVS     r1,#1
000038  4638              MOV      r0,r7
00003a  f7fffffe          BL       I2C_SendData
00003e  4d39              LDR      r5,|L8.292|
000040  1cad              ADDS     r5,r5,#2
                  |L8.66|
;;;516      
;;;517      /* Test on I2C1 EV8 and clear it */
;;;518      while(!I2C_CheckEvent(I2C1, I2C_EVENT_MASTER_BYTE_TRANSMITTED))  /* EV8 */
000042  4629              MOV      r1,r5
000044  4638              MOV      r0,r7
000046  f7fffffe          BL       I2C_CheckEvent
00004a  2800              CMP      r0,#0
00004c  d0f9              BEQ      |L8.66|
;;;519      {
;;;520      }
;;;521    
;;;522      /*----- Reception Phase -----*/
;;;523      /* Send Re-STRAT condition */
;;;524      I2C_GenerateSTART(I2C1, ENABLE);
00004e  2101              MOVS     r1,#1
000050  4638              MOV      r0,r7
000052  f7fffffe          BL       I2C_GenerateSTART
                  |L8.86|
;;;525      
;;;526      /* Test on EV5 and clear it */
;;;527      while(!I2C_CheckEvent(I2C1, I2C_EVENT_MASTER_MODE_SELECT))  /* EV5 */
000056  4631              MOV      r1,r6
000058  4638              MOV      r0,r7
00005a  f7fffffe          BL       I2C_CheckEvent
00005e  2800              CMP      r0,#0
000060  d0f9              BEQ      |L8.86|
;;;528      {
;;;529      }
;;;530      
;;;531      /* Send STLM75 slave address for read */
;;;532      I2C_Send7bitAddress(I2C1, LM75_Addr, I2C_Direction_Receiver);
000062  2201              MOVS     r2,#1
000064  2190              MOVS     r1,#0x90
000066  4638              MOV      r0,r7
000068  f7fffffe          BL       I2C_Send7bitAddress
00006c  f8df90b0          LDR      r9,|L8.288|
000070  f1090901          ADD      r9,r9,#1
                  |L8.116|
;;;533      
;;;534      /* Test on EV6 and clear it */
;;;535      while(!I2C_CheckEvent(I2C1, I2C_EVENT_MASTER_RECEIVER_MODE_SELECTED))  /* EV6 */
000074  4649              MOV      r1,r9
000076  4638              MOV      r0,r7
000078  f7fffffe          BL       I2C_CheckEvent
00007c  2800              CMP      r0,#0
00007e  d0f9              BEQ      |L8.116|
;;;536      {
;;;537      }
;;;538      
;;;539      /* Disable I2C1 acknowledgement */
;;;540      I2C_AcknowledgeConfig(I2C1, DISABLE);
000080  2100              MOVS     r1,#0
000082  4638              MOV      r0,r7
000084  f7fffffe          BL       I2C_AcknowledgeConfig
;;;541      
;;;542      /* Send I2C1 STOP Condition */
;;;543      I2C_GenerateSTOP(I2C1, ENABLE);
000088  2101              MOVS     r1,#1
00008a  4638              MOV      r0,r7
00008c  f7fffffe          BL       I2C_GenerateSTOP
000090  f8df908c          LDR      r9,|L8.288|
000094  f109093f          ADD      r9,r9,#0x3f
                  |L8.152|
;;;544    
;;;545      /* Test on EV7 and clear it */
;;;546      while(!I2C_CheckEvent(I2C1, I2C_EVENT_MASTER_BYTE_RECEIVED))  /* EV7 */
000098  4649              MOV      r1,r9
00009a  4638              MOV      r0,r7
00009c  f7fffffe          BL       I2C_CheckEvent
0000a0  2800              CMP      r0,#0
0000a2  d0f9              BEQ      |L8.152|
;;;547      {
;;;548      }
;;;549      
;;;550      /* Store I2C1 received data */
;;;551      RegValue = I2C_ReceiveData(I2C1);
0000a4  4638              MOV      r0,r7
0000a6  f7fffffe          BL       I2C_ReceiveData
0000aa  4681              MOV      r9,r0
;;;552    
;;;553      /*----- Transmission Phase -----*/
;;;554      /* Send I2C1 START condition */
;;;555      I2C_GenerateSTART(I2C1, ENABLE);
0000ac  2101              MOVS     r1,#1
0000ae  4638              MOV      r0,r7
0000b0  f7fffffe          BL       I2C_GenerateSTART
                  |L8.180|
;;;556      
;;;557      /* Test on I2C1 EV5 and clear it */
;;;558      while(!I2C_CheckEvent(I2C1, I2C_EVENT_MASTER_MODE_SELECT))  /* EV5 */
0000b4  4631              MOV      r1,r6
0000b6  4638              MOV      r0,r7
0000b8  f7fffffe          BL       I2C_CheckEvent
0000bc  2800              CMP      r0,#0
0000be  d0f9              BEQ      |L8.180|
;;;559      {
;;;560      }
;;;561      
;;;562      /* Send STLM75 slave address for write */
;;;563      I2C_Send7bitAddress(I2C1, LM75_Addr, I2C_Direction_Transmitter);
0000c0  2200              MOVS     r2,#0
0000c2  2190              MOVS     r1,#0x90
0000c4  4638              MOV      r0,r7
0000c6  f7fffffe          BL       I2C_Send7bitAddress
                  |L8.202|
;;;564      
;;;565      /* Test on I2C1 EV6 and clear it */
;;;566      while(!I2C_CheckEvent(I2C1, I2C_EVENT_MASTER_TRANSMITTER_MODE_SELECTED)) /* EV6 */
0000ca  4621              MOV      r1,r4
0000cc  4638              MOV      r0,r7
0000ce  f7fffffe          BL       I2C_CheckEvent
0000d2  2800              CMP      r0,#0
0000d4  d0f9              BEQ      |L8.202|
;;;567      {
;;;568      }
;;;569      
;;;570      /* Send the configuration register data pointer */
;;;571      I2C_SendData(I2C1, LM75_CONF_Reg);
0000d6  2101              MOVS     r1,#1
0000d8  4638              MOV      r0,r7
0000da  f7fffffe          BL       I2C_SendData
                  |L8.222|
;;;572      
;;;573      /* Test on I2C1 EV8 and clear it */
;;;574      while(!I2C_CheckEvent(I2C1, I2C_EVENT_MASTER_BYTE_TRANSMITTED)) /* EV8 */
0000de  4629              MOV      r1,r5
0000e0  4638              MOV      r0,r7
0000e2  f7fffffe          BL       I2C_CheckEvent
0000e6  2800              CMP      r0,#0
0000e8  d0f9              BEQ      |L8.222|
;;;575      {
;;;576      }
;;;577    
;;;578      /* Enable or disable SD bit */
;;;579      if (NewState != DISABLE)
0000ea  f1b80f00          CMP      r8,#0
0000ee  d004              BEQ      |L8.250|
;;;580      {
;;;581        /* Disable LM75 */
;;;582        I2C_SendData(I2C1, RegValue | LM75_SD_Set);
0000f0  f00900ff          AND      r0,r9,#0xff
0000f4  f0400101          ORR      r1,r0,#1
0000f8  e001              B        |L8.254|
                  |L8.250|
;;;583      }
;;;584      else
;;;585      {
;;;586        /* Enable LM75 */
;;;587        I2C_SendData(I2C1, RegValue & LM75_SD_Reset);
0000fa  f00901fe          AND      r1,r9,#0xfe
                  |L8.254|
0000fe  4638              MOV      r0,r7                 ;582
000100  f7fffffe          BL       I2C_SendData
                  |L8.260|
;;;588      }
;;;589    
;;;590      /* Test on I2C1 EV8 and clear it */
;;;591      while(!I2C_CheckEvent(I2C1, I2C_EVENT_MASTER_BYTE_TRANSMITTED)) /* EV8 */
000104  4629              MOV      r1,r5
000106  4638              MOV      r0,r7
000108  f7fffffe          BL       I2C_CheckEvent
00010c  2800              CMP      r0,#0
00010e  d0f9              BEQ      |L8.260|
;;;592      {
;;;593      }
;;;594    
;;;595      /* Send I2C1 STOP Condition */
;;;596      I2C_GenerateSTOP(I2C1, ENABLE);     
000110  4638              MOV      r0,r7
000112  e8bd47f0          POP      {r4-r10,lr}
000116  2101              MOVS     r1,#1
000118  f7ffbffe          B.W      I2C_GenerateSTOP
;;;597    }
;;;598    
                          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
;;;606    void Thermometer_Temperature(void)
;;;607    {
000000  e92d5ff0          PUSH     {r4-r12,lr}
;;;608      u32 i = 0, pressedkey = 0;
000004  f04f0800          MOV      r8,#0
                  |L9.8|
;;;609      
;;;610      while(ReadKey() != NOKEY)
000008  f7fffffe          BL       ReadKey
00000c  2800              CMP      r0,#0
00000e  d1fb              BNE      |L9.8|
;;;611      {
;;;612      }
;;;613      RCC_AHBPeriphClockCmd(RCC_AHBPeriph_FSMC, DISABLE);
000010  f44f7780          MOV      r7,#0x100
000014  2100              MOVS     r1,#0
000016  4638              MOV      r0,r7
000018  f7fffffe          BL       RCC_AHBPeriphClockCmd
;;;614      
;;;615      /* Initialize the Temperature Sensor */
;;;616      I2C_LM75_Init();
00001c  f7fffffe          BL       I2C_LM75_Init
;;;617    
;;;618      if(I2C_LM75_Status() == SUCCESS)
000020  f7fffffe          BL       I2C_LM75_Status
000024  f64f7bff          MOV      r11,#0xffff
000028  2801              CMP      r0,#1
00002a  d17e              BNE      |L9.298|
;;;619      {
;;;620        /* Disable the JoyStick Interrupts */
;;;621        IntExtOnOffConfig(DISABLE);
00002c  2000              MOVS     r0,#0
00002e  f7fffffe          BL       IntExtOnOffConfig
;;;622    
;;;623        RCC_AHBPeriphClockCmd(RCC_AHBPeriph_FSMC, ENABLE);
000032  2101              MOVS     r1,#1
000034  4638              MOV      r0,r7
000036  f7fffffe          BL       RCC_AHBPeriphClockCmd
;;;624        /* Clear the LCD */
;;;625        LCD_Clear(White);
00003a  4658              MOV      r0,r11
00003c  f7fffffe          BL       LCD_Clear
;;;626      
;;;627        /* Set the Icon display window */ 
;;;628        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  f7fffffe          BL       LCD_SetDisplayWindow
;;;629     
;;;630        /* Display the Thermometer icon */
;;;631    #if STM3210E
;;;632        LCD_NORDisplay(TSENSOR);
;;;633    #else
;;;634        LCD_SPIDisplay(TSENSOR);
00004c  487f              LDR      r0,|L9.588|
00004e  f7fffffe          BL       LCD_SPIDisplay
;;;635    #endif
;;;636    
;;;637        RCC_AHBPeriphClockCmd(RCC_AHBPeriph_FSMC, ENABLE);
000052  2101              MOVS     r1,#1
000054  4638              MOV      r0,r7
000056  f7fffffe          BL       RCC_AHBPeriphClockCmd
;;;638        /* Disable LCD Window mode */
;;;639        LCD_WindowModeDisable();
00005a  f7fffffe          BL       LCD_WindowModeDisable
;;;640    

⌨️ 快捷键说明

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