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