📄 tsensor.txt
字号:
000016 f7fffffe BL I2C_AcknowledgeConfig
;;;108
;;;109 /*----- Transmission Phase -----*/
;;;110
;;;111 /* Send I2C1 START condition */
;;;112 I2C_GenerateSTART(I2C1, ENABLE);
00001a 2101 MOVS r1,#1
00001c 4630 MOV r0,r6
00001e f7fffffe BL I2C_GenerateSTART
;;;113
;;;114 /* Test on I2C1 EV5 and clear it */
;;;115 while(!I2C_CheckEvent(I2C1, I2C_EVENT_MASTER_MODE_SELECT)) /* EV5 */
000022 4f13 LDR r7,|L7.112|
|L7.36|
000024 4630 MOV r0,r6
000026 4639 MOV r1,r7
000028 f7fffffe BL I2C_CheckEvent
00002c 2800 CMP r0,#0
00002e d0f9 BEQ |L7.36|
;;;116 {
;;;117 }
;;;118
;;;119 /* Send STLM75 slave address for write */
;;;120 I2C_Send7bitAddress(I2C1, LM75_Addr, I2C_Direction_Transmitter);
000030 2200 MOVS r2,#0
000032 2190 MOVS r1,#0x90
000034 4630 MOV r0,r6
000036 f7fffffe BL I2C_Send7bitAddress
;;;121
;;;122 while((!I2C_CheckEvent(I2C1, I2C_EVENT_MASTER_TRANSMITTER_MODE_SELECTED)) && I2C_TimeOut)/* EV6 */
00003a 4f0e LDR r7,|L7.116|
;;;123 {
;;;124 I2C_TimeOut--;
00003c e000 B |L7.64|
|L7.62|
00003e 1e64 SUBS r4,r4,#1
|L7.64|
000040 4639 MOV r1,r7 ;122
000042 4630 MOV r0,r6 ;122
000044 f7fffffe BL I2C_CheckEvent
000048 b908 CBNZ r0,|L7.78|
00004a 2c00 CMP r4,#0 ;122
00004c d1f7 BNE |L7.62|
|L7.78|
;;;125 }
;;;126
;;;127 if(I2C_GetFlagStatus(I2C1, I2C_FLAG_AF) != 0x0)
00004e 4629 MOV r1,r5
000050 4630 MOV r0,r6
000052 f7fffffe BL I2C_GetFlagStatus
000056 b110 CBZ r0,|L7.94|
;;;128 {
;;;129 return ERROR;
000058 2000 MOVS r0,#0
|L7.90|
;;;130 }
;;;131 else
;;;132 {
;;;133 return SUCCESS;
;;;134 }
;;;135 }
00005a e8bd81f0 POP {r4-r8,pc}
|L7.94|
00005e 2001 MOVS r0,#1 ;133
000060 e7fb B |L7.90|
;;;136
ENDP
000062 0000 DCW 0x0000
|L7.100|
DCD 0x0003ffff
|L7.104|
DCD 0x10000400
|L7.108|
DCD 0x40005400
|L7.112|
DCD 0x00030001
|L7.116|
DCD 0x00070082
AREA ||i.I2C_LM75_Temp_Read||, CODE, READONLY, ALIGN=2
I2C_LM75_Temp_Read PROC
;;;289 *******************************************************************************/
;;;290 u16 I2C_LM75_Temp_Read(void)
000000 b570 PUSH {r4-r6,lr}
;;;291 {
;;;292 u32 RegValue = 0;
;;;293
;;;294 /* Enable I2C1 acknowledgement if it is already disabled by other function */
;;;295 I2C_AcknowledgeConfig(I2C1, ENABLE);
000002 4c30 LDR r4,|L8.196|
000004 2101 MOVS r1,#1
000006 4620 MOV r0,r4
000008 f7fffffe BL I2C_AcknowledgeConfig
;;;296
;;;297 /*----- Transmission Phase -----*/
;;;298 /* Send I2C1 START condition */
;;;299 I2C_GenerateSTART(I2C1, ENABLE);
00000c 2101 MOVS r1,#1
00000e 4620 MOV r0,r4
000010 f7fffffe BL I2C_GenerateSTART
;;;300
;;;301 /* Test on I2C1 EV5 and clear it */
;;;302 while(!I2C_CheckEvent(I2C1, I2C_EVENT_MASTER_MODE_SELECT)) /* EV5 */
000014 4d2c LDR r5,|L8.200|
|L8.22|
000016 4620 MOV r0,r4
000018 4629 MOV r1,r5
00001a f7fffffe BL I2C_CheckEvent
00001e 2800 CMP r0,#0
000020 d0f9 BEQ |L8.22|
;;;303 {
;;;304 }
;;;305
;;;306 /* Send STLM75 slave address for write */
;;;307 I2C_Send7bitAddress(I2C1, LM75_Addr, I2C_Direction_Transmitter);
000022 2200 MOVS r2,#0
000024 2190 MOVS r1,#0x90
000026 4620 MOV r0,r4
000028 f7fffffe BL I2C_Send7bitAddress
;;;308
;;;309 /* Test on I2C1 EV6 and clear it */
;;;310 while(!I2C_CheckEvent(I2C1, I2C_EVENT_MASTER_TRANSMITTER_MODE_SELECTED)) /* EV6 */
00002c 4e27 LDR r6,|L8.204|
|L8.46|
00002e 4620 MOV r0,r4
000030 4631 MOV r1,r6
000032 f7fffffe BL I2C_CheckEvent
000036 2800 CMP r0,#0
000038 d0f9 BEQ |L8.46|
;;;311 {
;;;312 }
;;;313
;;;314 /* Send the temperature register data pointer */
;;;315 I2C_SendData(I2C1, LM75_TEMP_Reg);
00003a 2100 MOVS r1,#0
00003c 4620 MOV r0,r4
00003e f7fffffe BL I2C_SendData
;;;316
;;;317 /* Test on I2C1 EV8 and clear it */
;;;318 while(!I2C_CheckEvent(I2C1, I2C_EVENT_MASTER_BYTE_TRANSMITTED)) /* EV8 */
000042 4e22 LDR r6,|L8.204|
000044 1cb6 ADDS r6,r6,#2
|L8.70|
000046 4631 MOV r1,r6
000048 4620 MOV r0,r4
00004a f7fffffe BL I2C_CheckEvent
00004e 2800 CMP r0,#0
000050 d0f9 BEQ |L8.70|
;;;319 {
;;;320 }
;;;321
;;;322 /*----- Reception Phase -----*/
;;;323 /* Send Re-STRAT condition */
;;;324 I2C_GenerateSTART(I2C1, ENABLE);
000052 2101 MOVS r1,#1
000054 4620 MOV r0,r4
000056 f7fffffe BL I2C_GenerateSTART
|L8.90|
;;;325
;;;326 /* Test on EV5 and clear it */
;;;327 while(!I2C_CheckEvent(I2C1, I2C_EVENT_MASTER_MODE_SELECT)) /* EV5 */
00005a 4629 MOV r1,r5
00005c 4620 MOV r0,r4
00005e f7fffffe BL I2C_CheckEvent
000062 2800 CMP r0,#0
000064 d0f9 BEQ |L8.90|
;;;328 {
;;;329 }
;;;330
;;;331 /* Send STLM75 slave address for read */
;;;332 I2C_Send7bitAddress(I2C1, LM75_Addr, I2C_Direction_Receiver);
000066 2201 MOVS r2,#1
000068 2190 MOVS r1,#0x90
00006a 4620 MOV r0,r4
00006c f7fffffe BL I2C_Send7bitAddress
;;;333
;;;334 /* Test on EV6 and clear it */
;;;335 while(!I2C_CheckEvent(I2C1, I2C_EVENT_MASTER_RECEIVER_MODE_SELECTED)) /* EV6 */
000070 4d15 LDR r5,|L8.200|
;;;336 {
;;;337 }
;;;338
;;;339 /* Test on EV7 and clear it */
;;;340 while(!I2C_CheckEvent(I2C1, I2C_EVENT_MASTER_BYTE_RECEIVED)) /* EV7 */
000072 4e15 LDR r6,|L8.200|
000074 1c6d ADDS r5,r5,#1 ;335
000076 363f ADDS r6,r6,#0x3f
|L8.120|
000078 4629 MOV r1,r5 ;335
00007a 4620 MOV r0,r4 ;335
00007c f7fffffe BL I2C_CheckEvent
000080 2800 CMP r0,#0 ;335
000082 d0f9 BEQ |L8.120|
|L8.132|
000084 4631 MOV r1,r6
000086 4620 MOV r0,r4
000088 f7fffffe BL I2C_CheckEvent
00008c 2800 CMP r0,#0
00008e d0f9 BEQ |L8.132|
;;;341 {
;;;342 }
;;;343
;;;344 /* Store I2C1 received data */
;;;345 RegValue = I2C_ReceiveData(I2C1) << 8;
000090 4620 MOV r0,r4
000092 f7fffffe BL I2C_ReceiveData
000096 0205 LSLS r5,r0,#8
;;;346
;;;347 /* Disable I2C1 acknowledgement */
;;;348 I2C_AcknowledgeConfig(I2C1, DISABLE);
000098 2100 MOVS r1,#0
00009a 4620 MOV r0,r4
00009c f7fffffe BL I2C_AcknowledgeConfig
;;;349
;;;350 /* Send I2C1 STOP Condition */
;;;351 I2C_GenerateSTOP(I2C1, ENABLE);
0000a0 2101 MOVS r1,#1
0000a2 4620 MOV r0,r4
0000a4 f7fffffe BL I2C_GenerateSTOP
|L8.168|
;;;352
;;;353 /* Test on EV7 and clear it */
;;;354 while(!I2C_CheckEvent(I2C1, I2C_EVENT_MASTER_BYTE_RECEIVED)) /* EV7 */
0000a8 4631 MOV r1,r6
0000aa 4620 MOV r0,r4
0000ac f7fffffe BL I2C_CheckEvent
0000b0 2800 CMP r0,#0
0000b2 d0f9 BEQ |L8.168|
;;;355 {
;;;356 }
;;;357
;;;358 /* Store I2C1 received data */
;;;359 RegValue |= I2C_ReceiveData(I2C1);
0000b4 4620 MOV r0,r4
0000b6 f7fffffe BL I2C_ReceiveData
0000ba 4328 ORRS r0,r0,r5
;;;360
;;;361 /* Return Temperature value */
;;;362 return (RegValue >> 5);
0000bc f3c0104f UBFX r0,r0,#5,#16
;;;363 }
0000c0 bd70 POP {r4-r6,pc}
;;;364
ENDP
0000c2 0000 DCW 0x0000
|L8.196|
DCD 0x40005400
|L8.200|
DCD 0x00030001
|L8.204|
DCD 0x00070082
AREA ||i.Thermometer_Temperature||, CODE, READONLY, ALIGN=2
Thermometer_Temperature PROC
;;;601 *******************************************************************************/
;;;602 void Thermometer_Temperature(void)
000000 e92d5ff0 PUSH {r4-r12,lr}
;;;603 {
;;;604 u32 i = 0, pressedkey = 0;
000004 f05f0500 MOVS.W r5,#0
|L9.8|
;;;605
;;;606 while(ReadKey() != NOKEY)
000008 f7fffffe BL ReadKey
00000c 2800 CMP r0,#0
00000e d1fb BNE |L9.8|
;;;607 {
;;;608 }
;;;609 RCC_AHBPeriphClockCmd(RCC_AHBPeriph_FSMC, DISABLE);
000010 f44f7a80 MOV r10,#0x100
000014 2100 MOVS r1,#0
000016 4650 MOV r0,r10
000018 f7fffffe BL RCC_AHBPeriphClockCmd
;;;610
;;;611 /* Initialize the Temperature Sensor */
;;;612 I2C_LM75_Init();
00001c f7fffffe BL I2C_LM75_Init
;;;613
;;;614 if(I2C_LM75_Status() == SUCCESS)
000020 f7fffffe BL I2C_LM75_Status
000024 2801 CMP r0,#1
000026 d17e BNE |L9.294|
;;;615 {
;;;616 /* Disable the JoyStick Interrupts */
;;;617 IntExtOnOffConfig(DISABLE);
000028 2000 MOVS r0,#0
00002a f7fffffe BL IntExtOnOffConfig
;;;618
;;;619 RCC_AHBPeriphClockCmd(RCC_AHBPeriph_FSMC, ENABLE);
00002e 2101 MOVS r1,#1
000030 4656 MOV r6,r10
000032 4650 MOV r0,r10
000034 f7fffffe BL RCC_AHBPeriphClockCmd
;;;620 /* Clear the LCD */
;;;621 LCD_Clear(White);
000038 f64f74ff MOV r4,#0xffff
00003c 4620 MOV r0,r4
00003e f7fffffe BL LCD_Clear
;;;622
;;;623 /* Set the Icon display window */
;;;624 LCD_SetDisplayWindow(150, 190, 64, 64);
000042 2340 MOVS r3,#0x40
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -