📄 tsensor.txt
字号:
; 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 + -