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