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

📄 tsensor.txt

📁 STM32F103ZET6+UCOSII+UCGUI源码
💻 TXT
📖 第 1 页 / 共 5 页
字号:
; generated by ARM C/C++ Compiler with , RVCT4.0 [Build 524] for uVision
; commandline ArmCC [--split_sections --debug -c --asm --interleave -o.\Obj\tsensor.o --depend=.\Obj\tsensor.d --device=DARMSTM --apcs=interwork -O3 -I..\..\include -I..\..\..\FWLib\library\inc -I..\..\..\USBLib\library\inc -I..\..\Config -I..\..\GUI\Core -I..\..\GUI\Font -I..\..\GUI\ConvertColor -I..\..\GUI\AntiAlias -I..\..\GUI\ConvertMono -I..\..\GUI\JPEG -I..\..\GUI\MemDev -I..\..\GUI\MultiLayer -I..\..\GUI\Widget -I..\..\GUI\WM -IC:\Keil\ARM\INC\ST\STM32F10x ..\..\source\tsensor.c]
                          THUMB

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

                  I2C_LM75_ConfReg_Read PROC
;;;371    *******************************************************************************/
;;;372    u8 I2C_LM75_ConfReg_Read(void)
000000  b570              PUSH     {r4-r6,lr}
;;;373    {
;;;374      u32 RegValue = 0;
;;;375    
;;;376      /*----- Transmission Phase -----*/
;;;377      /* Send I2C1 START condition */
;;;378      I2C_GenerateSTART(I2C1, ENABLE);
000002  4d28              LDR      r5,|L1.164|
000004  2101              MOVS     r1,#1
000006  4628              MOV      r0,r5
000008  f7fffffe          BL       I2C_GenerateSTART
;;;379      
;;;380      /* Test on I2C1 EV5 and clear it */
;;;381      while(!I2C_CheckEvent(I2C1, I2C_EVENT_MASTER_MODE_SELECT))  /* EV5 */
00000c  4c26              LDR      r4,|L1.168|
                  |L1.14|
00000e  4628              MOV      r0,r5
000010  4621              MOV      r1,r4
000012  f7fffffe          BL       I2C_CheckEvent
000016  2800              CMP      r0,#0
000018  d0f9              BEQ      |L1.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  f7fffffe          BL       I2C_Send7bitAddress
;;;387      
;;;388      /* Test on I2C1 EV6 and clear it */
;;;389      while(!I2C_CheckEvent(I2C1, I2C_EVENT_MASTER_TRANSMITTER_MODE_SELECTED)) /* EV6 */
000024  4e21              LDR      r6,|L1.172|
                  |L1.38|
000026  4628              MOV      r0,r5
000028  4631              MOV      r1,r6
00002a  f7fffffe          BL       I2C_CheckEvent
00002e  2800              CMP      r0,#0
000030  d0f9              BEQ      |L1.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  f7fffffe          BL       I2C_SendData
;;;395      
;;;396      /* Test on I2C1 EV8 and clear it */
;;;397      while(!I2C_CheckEvent(I2C1, I2C_EVENT_MASTER_BYTE_TRANSMITTED)) /* EV8 */
00003a  4e1c              LDR      r6,|L1.172|
00003c  1cb6              ADDS     r6,r6,#2
                  |L1.62|
00003e  4631              MOV      r1,r6
000040  4628              MOV      r0,r5
000042  f7fffffe          BL       I2C_CheckEvent
000046  2800              CMP      r0,#0
000048  d0f9              BEQ      |L1.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  f7fffffe          BL       I2C_GenerateSTART
                  |L1.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  f7fffffe          BL       I2C_CheckEvent
00005a  2800              CMP      r0,#0
00005c  d0f9              BEQ      |L1.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  f7fffffe          BL       I2C_Send7bitAddress
;;;412      
;;;413      /* Test on EV6 and clear it */
;;;414      while(!I2C_CheckEvent(I2C1, I2C_EVENT_MASTER_RECEIVER_MODE_SELECTED))  /* EV6 */
000068  4c0f              LDR      r4,|L1.168|
00006a  1c64              ADDS     r4,r4,#1
                  |L1.108|
00006c  4621              MOV      r1,r4
00006e  4628              MOV      r0,r5
000070  f7fffffe          BL       I2C_CheckEvent
000074  2800              CMP      r0,#0
000076  d0f9              BEQ      |L1.108|
;;;415      {
;;;416      }
;;;417    
;;;418      /* Disable I2C1 acknowledgement */
;;;419      I2C_AcknowledgeConfig(I2C1, DISABLE);
000078  2100              MOVS     r1,#0
00007a  4628              MOV      r0,r5
00007c  f7fffffe          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  f7fffffe          BL       I2C_GenerateSTOP
;;;423    
;;;424      /* Test on EV7 and clear it */
;;;425      while(!I2C_CheckEvent(I2C1, I2C_EVENT_MASTER_BYTE_RECEIVED))  /* EV7 */
000088  4c07              LDR      r4,|L1.168|
00008a  343f              ADDS     r4,r4,#0x3f
                  |L1.140|
00008c  4621              MOV      r1,r4
00008e  4628              MOV      r0,r5
000090  f7fffffe          BL       I2C_CheckEvent
000094  2800              CMP      r0,#0
000096  d0f9              BEQ      |L1.140|
;;;426      {
;;;427      }
;;;428      
;;;429      /* Store I2C1 received data */
;;;430      RegValue = I2C_ReceiveData(I2C1);
000098  4628              MOV      r0,r5
00009a  e8bd4070          POP      {r4-r6,lr}
00009e  f7ffbffe          B.W      I2C_ReceiveData
;;;431    
;;;432      /* Return configuration register value */
;;;433      return (RegValue);    
;;;434    }
;;;435    
                          ENDP

0000a2  0000              DCW      0x0000
                  |L1.164|
                          DCD      0x40005400
                  |L1.168|
                          DCD      0x00030001
                  |L1.172|
                          DCD      0x00070082

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

                  I2C_LM75_ConfReg_Write PROC
;;;442    *******************************************************************************/
;;;443    void I2C_LM75_ConfReg_Write(u8 RegValue)
000000  b570              PUSH     {r4-r6,lr}
;;;444    {
;;;445      /*----- Transmission Phase -----*/
;;;446      /* Send I2C1 START condition */
;;;447      I2C_GenerateSTART(I2C1, ENABLE);
000002  4c1a              LDR      r4,|L2.108|
000004  4605              MOV      r5,r0                 ;444
000006  2101              MOVS     r1,#1
000008  4620              MOV      r0,r4
00000a  f7fffffe          BL       I2C_GenerateSTART
;;;448    
;;;449      /* Test on I2C1 EV5 and clear it */
;;;450      while(!I2C_CheckEvent(I2C1, I2C_EVENT_MASTER_MODE_SELECT))  /* EV5 */
00000e  4e18              LDR      r6,|L2.112|
                  |L2.16|
000010  4620              MOV      r0,r4
000012  4631              MOV      r1,r6
000014  f7fffffe          BL       I2C_CheckEvent
000018  2800              CMP      r0,#0
00001a  d0f9              BEQ      |L2.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  4620              MOV      r0,r4
000022  f7fffffe          BL       I2C_Send7bitAddress
;;;456      
;;;457      /* Test on I2C1 EV6 and clear it */
;;;458      while(!I2C_CheckEvent(I2C1, I2C_EVENT_MASTER_TRANSMITTER_MODE_SELECTED)) /* EV6 */
000026  4e13              LDR      r6,|L2.116|
                  |L2.40|
000028  4620              MOV      r0,r4
00002a  4631              MOV      r1,r6
00002c  f7fffffe          BL       I2C_CheckEvent
000030  2800              CMP      r0,#0
000032  d0f9              BEQ      |L2.40|
;;;459      {
;;;460      }
;;;461    
;;;462      /* Send the configuration register data pointer */
;;;463      I2C_SendData(I2C1, LM75_CONF_Reg);
000034  2101              MOVS     r1,#1
000036  4620              MOV      r0,r4
000038  f7fffffe          BL       I2C_SendData
;;;464      
;;;465      /* Test on I2C1 EV8 and clear it */
;;;466      while(!I2C_CheckEvent(I2C1, I2C_EVENT_MASTER_BYTE_TRANSMITTED)) /* EV8 */
00003c  4e0d              LDR      r6,|L2.116|
00003e  1cb6              ADDS     r6,r6,#2
                  |L2.64|
000040  4631              MOV      r1,r6
000042  4620              MOV      r0,r4
000044  f7fffffe          BL       I2C_CheckEvent
000048  2800              CMP      r0,#0
00004a  d0f9              BEQ      |L2.64|
;;;467      {
;;;468      }
;;;469    
;;;470      /* Send I2C1 data */
;;;471      I2C_SendData(I2C1, RegValue);
00004c  4629              MOV      r1,r5
00004e  4620              MOV      r0,r4
000050  f7fffffe          BL       I2C_SendData
                  |L2.84|
;;;472      
;;;473      /* Test on I2C1 EV8 and clear it */
;;;474      while(!I2C_CheckEvent(I2C1, I2C_EVENT_MASTER_BYTE_TRANSMITTED)) /* EV8 */
000054  4631              MOV      r1,r6
000056  4620              MOV      r0,r4
000058  f7fffffe          BL       I2C_CheckEvent
00005c  2800              CMP      r0,#0
00005e  d0f9              BEQ      |L2.84|
;;;475      {
;;;476      }
;;;477    
;;;478      /* Send I2C1 STOP Condition */
;;;479      I2C_GenerateSTOP(I2C1, ENABLE);     
000060  4620              MOV      r0,r4
000062  e8bd4070          POP      {r4-r6,lr}
000066  2101              MOVS     r1,#1
000068  f7ffbffe          B.W      I2C_GenerateSTOP
;;;480    }
;;;481    
                          ENDP

                  |L2.108|
                          DCD      0x40005400
                  |L2.112|
                          DCD      0x00030001
                  |L2.116|
                          DCD      0x00070082

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

                  I2C_LM75_Init PROC
;;;53     *******************************************************************************/
;;;54     void I2C_LM75_Init(void)
000000  b510              PUSH     {r4,lr}
;;;55     {
000002  b086              SUB      sp,sp,#0x18
;;;56       GPIO_InitTypeDef  GPIO_InitStructure;
;;;57       I2C_InitTypeDef   I2C_InitStructure;
;;;58     
;;;59       /* GPIOB Periph clock enable */
;;;60       RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO | RCC_APB2Periph_GPIOB, ENABLE);
000004  2101              MOVS     r1,#1
000006  2009              MOVS     r0,#9
000008  f7fffffe          BL       RCC_APB2PeriphClockCmd
;;;61     
;;;62       /* I2C1 Periph clock enable */
;;;63       RCC_APB1PeriphClockCmd(RCC_APB1Periph_I2C1, ENABLE);
00000c  2101              MOVS     r1,#1
00000e  0548              LSLS     r0,r1,#21
000010  f7fffffe          BL       RCC_APB1PeriphClockCmd
;;;64     
;;;65       /* Configure I2C1 pins: SCL and SDA */
;;;66       GPIO_InitStructure.GPIO_Pin =  GPIO_Pin_6 | GPIO_Pin_7;
000014  20c0              MOVS     r0,#0xc0
000016  f8ad0014          STRH     r0,[sp,#0x14]
;;;67       GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
00001a  2003              MOVS     r0,#3
00001c  f88d0016          STRB     r0,[sp,#0x16]
;;;68       GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_OD;
000020  201c              MOVS     r0,#0x1c
;;;69       GPIO_Init(GPIOB, &GPIO_InitStructure);
000022  4c19              LDR      r4,|L3.136|
000024  f88d0017          STRB     r0,[sp,#0x17]         ;68
000028  a905              ADD      r1,sp,#0x14
00002a  4620              MOV      r0,r4
00002c  f7fffffe          BL       GPIO_Init
;;;70     
;;;71       /* Configure PB.5 as Input pull-up, used as TemperatureSensor_INT */
;;;72       GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5;
000030  2020              MOVS     r0,#0x20
000032  f8ad0014          STRH     r0,[sp,#0x14]
;;;73       GPIO_InitStructure.GPIO_Speed = GPIO_Speed_10MHz;
000036  2001              MOVS     r0,#1
000038  f88d0016          STRB     r0,[sp,#0x16]
;;;74       GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;
00003c  2048              MOVS     r0,#0x48
00003e  f88d0017          STRB     r0,[sp,#0x17]
;;;75       GPIO_Init(GPIOB, &GPIO_InitStructure);
000042  a905              ADD      r1,sp,#0x14
000044  4620              MOV      r0,r4

⌨️ 快捷键说明

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