; generated by Component: ARM Compiler 5.06 update 6 (build 750) Tool: ArmCC [4d3637]
; commandline ArmCC [--list --debug -c --asm --interleave -o.\obj\stm32f10x_it.o --asm_dir=.\list\ --list_dir=.\list\ --depend=.\obj\stm32f10x_it.d --cpu=Cortex-M3 --apcs=interwork -O0 --diag_suppress=9931 -I.\FWlib\inc -I.\user -I.\CM3 -I.\dmp -I.\RTE\_STM32-FD -If:\Users\Administrator\AppData\Local\Arm\Packs\ARM\CMSIS\5.7.0\CMSIS\Core\Include -If:\Users\Administrator\AppData\Local\Arm\Packs\Keil\STM32F1xx_DFP\2.4.1\Device\Include -D__MICROLIB -D__UVISION_VERSION=530 -D_RTE_ -DSTM32F10X_MD -D_RTE_ -DUSE_STDPERIPH_DRIVER -DSTM32F10X_MD --omf_browse=.\obj\stm32f10x_it.crf user\stm32f10x_it.c]
                          THUMB

                          AREA ||.text||, CODE, READONLY, ALIGN=2

                  NMIException PROC
;;;65     *******************************************************************************/
;;;66     void NMIException(void)
000000  4770              BX       lr
;;;67     {
;;;68     }
;;;69     
                          ENDP

                  HardFaultException PROC
;;;76     *******************************************************************************/
;;;77     void HardFaultException(void)
000002  4770              BX       lr
;;;78     {
;;;79     }
;;;80     
                          ENDP

                  MemManageException PROC
;;;87     *******************************************************************************/
;;;88     void MemManageException(void)
000004  4770              BX       lr
;;;89     {
;;;90     }
;;;91     
                          ENDP

                  BusFaultException PROC
;;;98     *******************************************************************************/
;;;99     void BusFaultException(void)
000006  4770              BX       lr
;;;100    {
;;;101    }
;;;102    
                          ENDP

                  UsageFaultException PROC
;;;109    *******************************************************************************/
;;;110    void UsageFaultException(void)
000008  4770              BX       lr
;;;111    {
;;;112    }
;;;113    
                          ENDP

                  DebugMonitor PROC
;;;120    *******************************************************************************/
;;;121    void DebugMonitor(void)
00000a  4770              BX       lr
;;;122    {
;;;123    }
;;;124    
                          ENDP

                  SVCHandler PROC
;;;131    *******************************************************************************/
;;;132    void SVCHandler(void)
00000c  4770              BX       lr
;;;133    {
;;;134    }
;;;135    
                          ENDP

                  PendSVC PROC
;;;142    *******************************************************************************/
;;;143    void PendSVC(void)
00000e  4770              BX       lr
;;;144    {
;;;145    }
;;;146    
                          ENDP

                  SysTick_Handler PROC
;;;153    *******************************************************************************/
;;;154    void SysTick_Handler(void)
000010  4770              BX       lr
;;;155    {
;;;156      //TimingDelay_Decrement();
;;;157    	//if (TimingDelay != 0x00)
;;;158      //{ 
;;;159      //  TimingDelay--;
;;;160      //}
;;;161      //count++;
;;;162     
;;;163    }
;;;164    
                          ENDP

                  WWDG_IRQHandler PROC
;;;172    *******************************************************************************/
;;;173    void WWDG_IRQHandler(void)
000012  4770              BX       lr
;;;174    {
;;;175    }
;;;176    
                          ENDP

                  PVD_IRQHandler PROC
;;;183    *******************************************************************************/
;;;184    void PVD_IRQHandler(void)
000014  4770              BX       lr
;;;185    {
;;;186    }
;;;187    
                          ENDP

                  TAMPER_IRQHandler PROC
;;;194    *******************************************************************************/
;;;195    void TAMPER_IRQHandler(void)
000016  4770              BX       lr
;;;196    {
;;;197    }
;;;198    
                          ENDP

                  RTC_IRQHandler PROC
;;;205    *******************************************************************************/
;;;206    void RTC_IRQHandler(void)
000018  4770              BX       lr
;;;207    {
;;;208    }
;;;209    
                          ENDP

                  FLASH_IRQHandler PROC
;;;216    *******************************************************************************/
;;;217    void FLASH_IRQHandler(void)
00001a  4770              BX       lr
;;;218    {
;;;219    }
;;;220    
                          ENDP

                  RCC_IRQHandler PROC
;;;227    *******************************************************************************/
;;;228    void RCC_IRQHandler(void)
00001c  4770              BX       lr
;;;229    {
;;;230    }
;;;231    
                          ENDP

                  EXTI0_IRQHandler PROC
;;;238    *******************************************************************************/
;;;239    void EXTI0_IRQHandler(void)
00001e  4770              BX       lr
;;;240    {
;;;241    }
;;;242    
                          ENDP

                  EXTI1_IRQHandler PROC
;;;249    *******************************************************************************/
;;;250    void EXTI1_IRQHandler(void)
000020  4770              BX       lr
;;;251    {
;;;252    }
;;;253    
                          ENDP

                  EXTI2_IRQHandler PROC
;;;260    *******************************************************************************/
;;;261    void EXTI2_IRQHandler(void)
000022  4770              BX       lr
;;;262    {
;;;263    }
;;;264    
                          ENDP

                  EXTI3_IRQHandler PROC
;;;271    *******************************************************************************/
;;;272    void EXTI3_IRQHandler(void)
000024  4770              BX       lr
;;;273    {
;;;274    }
;;;275    
                          ENDP

                  EXTI4_IRQHandler PROC
;;;282    *******************************************************************************/
;;;283    void EXTI4_IRQHandler(void)
000026  4770              BX       lr
;;;284    {
;;;285    }
;;;286    
                          ENDP

                  DMAChannel1_IRQHandler PROC
;;;293    *******************************************************************************/
;;;294    void DMAChannel1_IRQHandler(void)
000028  4770              BX       lr
;;;295    {
;;;296    }
;;;297    
                          ENDP

                  DMAChannel2_IRQHandler PROC
;;;304    *******************************************************************************/
;;;305    void DMAChannel2_IRQHandler(void)
00002a  4770              BX       lr
;;;306    {
;;;307    }
;;;308    
                          ENDP

                  DMAChannel3_IRQHandler PROC
;;;315    *******************************************************************************/
;;;316    void DMAChannel3_IRQHandler(void)
00002c  4770              BX       lr
;;;317    {
;;;318    }
;;;319    
                          ENDP

                  DMAChannel4_IRQHandler PROC
;;;326    *******************************************************************************/
;;;327    void DMAChannel4_IRQHandler(void)
00002e  4770              BX       lr
;;;328    {
;;;329    }
;;;330    
                          ENDP

                  DMAChannel5_IRQHandler PROC
;;;337    *******************************************************************************/
;;;338    void DMAChannel5_IRQHandler(void)
000030  4770              BX       lr
;;;339    {
;;;340    }
;;;341    
                          ENDP

                  DMAChannel6_IRQHandler PROC
;;;348    *******************************************************************************/
;;;349    void DMAChannel6_IRQHandler(void)
000032  4770              BX       lr
;;;350    {
;;;351    }
;;;352    
                          ENDP

                  DMAChannel7_IRQHandler PROC
;;;359    *******************************************************************************/
;;;360    void DMAChannel7_IRQHandler(void)
000034  4770              BX       lr
;;;361    {
;;;362    }
;;;363    
                          ENDP

                  ADC_IRQHandler PROC
;;;370    *******************************************************************************/
;;;371    void ADC_IRQHandler(void)
000036  4770              BX       lr
;;;372    {
;;;373    }
;;;374    
                          ENDP

                  USB_HP_CAN_TX_IRQHandler PROC
;;;382    *******************************************************************************/
;;;383    void USB_HP_CAN_TX_IRQHandler(void)
000038  4770              BX       lr
;;;384    {
;;;385    }
;;;386    
                          ENDP

                  USB_LP_CAN_RX0_IRQHandler PROC
;;;394    *******************************************************************************/
;;;395    void USB_LP_CAN_RX0_IRQHandler(void)
00003a  4770              BX       lr
;;;396    {
;;;397    }
;;;398    
                          ENDP

                  CAN_RX1_IRQHandler PROC
;;;405    *******************************************************************************/
;;;406    void CAN_RX1_IRQHandler(void)
00003c  4770              BX       lr
;;;407    {
;;;408    }
;;;409    
                          ENDP

                  CAN_SCE_IRQHandler PROC
;;;416    *******************************************************************************/
;;;417    void CAN_SCE_IRQHandler(void)
00003e  4770              BX       lr
;;;418    {
;;;419    }
;;;420    
                          ENDP

                  TIM3_IRQHandler PROC
;;;430    
;;;431    void TIM3_IRQHandler(void)  
000040  4770              BX       lr
;;;432    {  	  
;;;433      
;;;434    
;;;435    }
;;;436    
                          ENDP

                  TIM2_IRQHandler PROC
;;;437    
;;;438    void TIM2_IRQHandler(void)  
000042  e92d4ff8          PUSH     {r3-r11,lr}
;;;439    { 
;;;440    	//float zero=-0.3;
;;;441    	int offset=0;
000046  f04f0900          MOV      r9,#0
;;;442      int up_pwm_out=0,velocity_pwm_out=0,pwm_out=0;  
00004a  46ca              MOV      r10,r9
00004c  46cb              MOV      r11,r9
00004e  2400              MOVS     r4,#0
;;;443      //short Gyro_Pitch;
;;;444    	zero=-0.3;
000050  48fa              LDR      r0,|L1.1084|
000052  49fb              LDR      r1,|L1.1088|
000054  6008              STR      r0,[r1,#0]  ; zero
;;;445    	if(TIM_GetITStatus(TIM2,TIM_IT_Update)==SET)                    
000056  2101              MOVS     r1,#1
000058  0740              LSLS     r0,r0,#29
00005a  f7fffffe          BL       TIM_GetITStatus
00005e  2801              CMP      r0,#1
000060  d172              BNE      |L1.328|
;;;446    	{ 
;;;447        
;;;448    		mpu_dmp_get_data(&pitch,&roll,&yaw);  // ͨMPU6050dmpٶ
000062  4af8              LDR      r2,|L1.1092|
000064  49f8              LDR      r1,|L1.1096|
000066  48f9              LDR      r0,|L1.1100|
000068  f7fffffe          BL       mpu_dmp_get_data
;;;449    		MPU_Get_Gyroscope(&gyrox,&gyroy,&gyroz);	//õ 
00006c  4af8              LDR      r2,|L1.1104|
00006e  49f9              LDR      r1,|L1.1108|
000070  48f9              LDR      r0,|L1.1112|
000072  f7fffffe          BL       MPU_Get_Gyroscope
;;;450       
;;;451    			
;;;452    		if(Balance_up.Balance_PID_is_Enable==1){
000076  48f9              LDR      r0,|L1.1116|
000078  7c00              LDRB     r0,[r0,#0x10]  ; Balance_up
00007a  2801              CMP      r0,#1
00007c  d17d              BNE      |L1.378|
;;;453    			up_pwm_out=(Balance_up_PID(1,zero,roll,&Balance_up))*0.6;			
00007e  4bf7              LDR      r3,|L1.1116|
000080  48f1              LDR      r0,|L1.1096|
000082  6802              LDR      r2,[r0,#0]  ; roll
000084  48ee              LDR      r0,|L1.1088|
000086  6801              LDR      r1,[r0,#0]  ; zero
000088  2001              MOVS     r0,#1
00008a  f7fffffe          BL       Balance_up_PID
00008e  9000              STR      r0,[sp,#0]
000090  f7fffffe          BL       __aeabi_i2d
000094  4607              MOV      r7,r0
000096  f04f3233          MOV      r2,#0x33333333
00009a  4bf1              LDR      r3,|L1.1120|
00009c  f7fffffe          BL       __aeabi_dmul
0000a0  4605              MOV      r5,r0
0000a2  f7fffffe          BL       __aeabi_d2iz
0000a6  4682              MOV      r10,r0
;;;454    			//up_pwm_out=(Balance_up_PID(1,zero,roll,&Balance_up));			
;;;455    			velocity_pwm_out=velocity(Count_left,Count_right);  
0000a8  48ee              LDR      r0,|L1.1124|
0000aa  6801              LDR      r1,[r0,#0]  ; Count_right
0000ac  48ee              LDR      r0,|L1.1128|
0000ae  6800              LDR      r0,[r0,#0]  ; Count_left
0000b0  f7fffffe          BL       velocity
0000b4  4683              MOV      r11,r0
;;;456    
;;;457    			pwm_out=up_pwm_out+velocity_pwm_out;
0000b6  eb0a040b          ADD      r4,r10,r11
;;;458    			//pwm_out=velocity_pwm_out;
;;;459    			//pwm_out=up_pwm_out;
;;;460    			if(pwm_out>7200) pwm_out=7200;
0000ba  f5b45fe1          CMP      r4,#0x1c20
0000be  dd02              BLE      |L1.198|
0000c0  f44f54e1          MOV      r4,#0x1c20
0000c4  e003              B        |L1.206|
                  |L1.198|
;;;461    			else if(pwm_out<-7200) pwm_out=-7200;
0000c6  f5145fe1          CMN      r4,#0x1c20
0000ca  da00              BGE      |L1.206|
0000cc  4ce7              LDR      r4,|L1.1132|
                  |L1.206|
;;;462    			Balance_up.Ur=pwm_out;
0000ce  48e3              LDR      r0,|L1.1116|
0000d0  60c4              STR      r4,[r0,#0xc]  ; Balance_up
;;;463    			//pwm_out=110	
;;;464    			//pwm_out=0;
;;;465    			if(pwm_out>0){         
0000d2  2c00              CMP      r4,#0
0000d4  dd28              BLE      |L1.296|
;;;466    			//if(roll>zero){         
;;;467    			  //pwm_out=abs(pwm_out)+offset;
;;;468    				//Balance_up.Ur=pwm_out;
;;;469    				if(roll<90 ){
0000d6  49e6              LDR      r1,|L1.1136|
0000d8  48db              LDR      r0,|L1.1096|
0000da  6800              LDR      r0,[r0,#0]  ; roll
0000dc  f7fffffe          BL       __aeabi_cfcmple
0000e0  d218              BCS      |L1.276|
;;;470    					TIM4->CCR1 = 0;
0000e2  2000              MOVS     r0,#0
0000e4  49e3              LDR      r1,|L1.1140|
0000e6  8008              STRH     r0,[r1,#0]
;;;471    					TIM4->CCR2 =abs(pwm_out)+offset;
0000e8  1e20              SUBS     r0,r4,#0
0000ea  db01              BLT      |L1.240|
0000ec  4601              MOV      r1,r0
0000ee  e000              B        |L1.242|
                  |L1.240|
0000f0  4241              RSBS     r1,r0,#0
                  |L1.242|
0000f2  4449              ADD      r1,r1,r9
0000f4  4adf              LDR      r2,|L1.1140|
0000f6  1d12              ADDS     r2,r2,#4
0000f8  8011              STRH     r1,[r2,#0]
;;;472    				
;;;473    					TIM4->CCR3 = abs(pwm_out)+offset;
0000fa  1e20              SUBS     r0,r4,#0
0000fc  db01              BLT      |L1.258|
0000fe  4601              MOV      r1,r0
000100  e000              B        |L1.260|
                  |L1.258|
000102  4241              RSBS     r1,r0,#0
                  |L1.260|
000104  4449              ADD      r1,r1,r9
000106  4adb              LDR      r2,|L1.1140|
000108  3208              ADDS     r2,r2,#8
00010a  8011              STRH     r1,[r2,#0]
;;;474    					TIM4->CCR4 =0;
00010c  2000              MOVS     r0,#0
00010e  1d11              ADDS     r1,r2,#4
000110  8008              STRH     r0,[r1,#0]
000112  e032              B        |L1.378|
                  |L1.276|
;;;475    				
;;;476    				}
;;;477    				else{
;;;478    					TIM4->CCR1 = 0;
000114  2000              MOVS     r0,#0
000116  49d7              LDR      r1,|L1.1140|
000118  8008              STRH     r0,[r1,#0]
;;;479    					TIM4->CCR2 =0;
00011a  1d09              ADDS     r1,r1,#4
00011c  8008              STRH     r0,[r1,#0]
;;;480    				
;;;481    					TIM4->CCR3 = 0;
00011e  1d09              ADDS     r1,r1,#4
000120  8008              STRH     r0,[r1,#0]
;;;482    					TIM4->CCR4 =0;
000122  1d09              ADDS     r1,r1,#4
000124  8008              STRH     r0,[r1,#0]
000126  e028              B        |L1.378|
                  |L1.296|
;;;483    				
;;;484    				}
;;;485    			
;;;486    			
;;;487    			}
;;;488    			else if(pwm_out<0){         
000128  2c00              CMP      r4,#0
00012a  da26              BGE      |L1.378|
;;;489    			//else if(roll<zero){    //ǰ  
;;;490    			  //pwm_out=-abs(pwm_out)-offset; 
;;;491    				//Balance_up.Ur=pwm_out;
;;;492    				if(roll>-90){
00012c  49d2              LDR      r1,|L1.1144|
00012e  48c6              LDR      r0,|L1.1096|
000130  6800              LDR      r0,[r0,#0]  ; roll
000132  f7fffffe          BL       __aeabi_cfrcmple
000136  d217              BCS      |L1.360|
;;;493    				
;;;494    					TIM4->CCR2 = 0;
000138  2000              MOVS     r0,#0
00013a  49ce              LDR      r1,|L1.1140|
00013c  1d09              ADDS     r1,r1,#4
00013e  8008              STRH     r0,[r1,#0]
;;;495    					TIM4->CCR1 =abs(pwm_out);
000140  1e20              SUBS     r0,r4,#0
000142  db02              BLT      |L1.330|
000144  4601              MOV      r1,r0
000146  e001              B        |L1.332|
                  |L1.328|
000148  e0d2              B        |L1.752|
                  |L1.330|
00014a  4241              RSBS     r1,r0,#0
                  |L1.332|
00014c  4ac9              LDR      r2,|L1.1140|
00014e  8011              STRH     r1,[r2,#0]
;;;496    				
;;;497    					TIM4->CCR4 =abs(pwm_out);
000150  1e20              SUBS     r0,r4,#0
000152  db01              BLT      |L1.344|
000154  4601              MOV      r1,r0
000156  e000              B        |L1.346|
                  |L1.344|
000158  4241              RSBS     r1,r0,#0
                  |L1.346|
00015a  4ac6              LDR      r2,|L1.1140|
00015c  320c              ADDS     r2,r2,#0xc
00015e  8011              STRH     r1,[r2,#0]
;;;498    					TIM4->CCR3 =0;			
000160  2000              MOVS     r0,#0
000162  1f11              SUBS     r1,r2,#4
000164  8008              STRH     r0,[r1,#0]
000166  e008              B        |L1.378|
                  |L1.360|
;;;499    				}
;;;500    				else{
;;;501    					TIM4->CCR1 = 0;
000168  2000              MOVS     r0,#0
00016a  49c2              LDR      r1,|L1.1140|
00016c  8008              STRH     r0,[r1,#0]
;;;502    					TIM4->CCR2 =0;
00016e  1d09              ADDS     r1,r1,#4
000170  8008              STRH     r0,[r1,#0]
;;;503    				
;;;504    					TIM4->CCR3 = 0;
000172  1d09              ADDS     r1,r1,#4
000174  8008              STRH     r0,[r1,#0]
;;;505    					TIM4->CCR4 =0;
000176  1d09              ADDS     r1,r1,#4
000178  8008              STRH     r0,[r1,#0]
                  |L1.378|
;;;506    			
;;;507    				}			
;;;508    			}
;;;509    		
;;;510    		}
;;;511    		
;;;512    		
;;;513    		
;;;514    		if(Moto_tim2_ct++>=1){
00017a  48c0              LDR      r0,|L1.1148|
00017c  6801              LDR      r1,[r0,#0]  ; Moto_tim2_ct
00017e  6800              LDR      r0,[r0,#0]  ; Moto_tim2_ct
000180  1c40              ADDS     r0,r0,#1
000182  4abe              LDR      r2,|L1.1148|
000184  6010              STR      r0,[r2,#0]  ; Moto_tim2_ct
000186  2900              CMP      r1,#0
000188  d07e              BEQ      |L1.648|
;;;515    			Moto_tim2_ct=0;
00018a  2000              MOVS     r0,#0
00018c  4611              MOV      r1,r2
00018e  6008              STR      r0,[r1,#0]  ; Moto_tim2_ct
;;;516    			Count_left = TIM_GetCounter(TIM3); 
000190  48bb              LDR      r0,|L1.1152|
000192  f7fffffe          BL       TIM_GetCounter
000196  49b4              LDR      r1,|L1.1128|
000198  6008              STR      r0,[r1,#0]  ; Count_left
;;;517    			Count_right = TIM_GetCounter(TIM1); 
00019a  48ba              LDR      r0,|L1.1156|
00019c  f7fffffe          BL       TIM_GetCounter
0001a0  49b0              LDR      r1,|L1.1124|
0001a2  6008              STR      r0,[r1,#0]  ; Count_right
;;;518    			//if((TIM3->CR1&0x0010)==0x0010) Count_left=65536-Count_left;
;;;519    			//if((TIM1->CR1&0x0010)==0x0010) Count_right=65536-Count_right;
;;;520    			
;;;521    			if (Count_left>20000){
0001a4  48b0              LDR      r0,|L1.1128|
0001a6  6800              LDR      r0,[r0,#0]  ; Count_left
0001a8  f6446120          MOV      r1,#0x4e20
0001ac  4288              CMP      r0,r1
0001ae  d905              BLS      |L1.444|
;;;522    					
;;;523    					Count_left=(65536-Count_left);
0001b0  48ad              LDR      r0,|L1.1128|
0001b2  6800              LDR      r0,[r0,#0]  ; Count_left
0001b4  f5c03080          RSB      r0,r0,#0x10000
0001b8  49ab              LDR      r1,|L1.1128|
0001ba  6008              STR      r0,[r1,#0]  ; Count_left
                  |L1.444|
;;;524    			}
;;;525    			if (Count_right>20000) {
0001bc  48a9              LDR      r0,|L1.1124|
0001be  6800              LDR      r0,[r0,#0]  ; Count_right
0001c0  f6446120          MOV      r1,#0x4e20
0001c4  4288              CMP      r0,r1
0001c6  d905              BLS      |L1.468|
;;;526    				//Count_left=-Count_left;
;;;527    				Count_right=(65536-Count_right);
0001c8  48a6              LDR      r0,|L1.1124|
0001ca  6800              LDR      r0,[r0,#0]  ; Count_right
0001cc  f5c03080          RSB      r0,r0,#0x10000
0001d0  49a4              LDR      r1,|L1.1124|
0001d2  6008              STR      r0,[r1,#0]  ; Count_right
                  |L1.468|
;;;528    		  } 
;;;529          		  
;;;530    			if(pwm_out<0){
0001d4  2c00              CMP      r4,#0
0001d6  da09              BGE      |L1.492|
;;;531    			
;;;532    			//if(roll<zero){
;;;533    				Count_right=-Count_right;
0001d8  48a2              LDR      r0,|L1.1124|
0001da  6800              LDR      r0,[r0,#0]  ; Count_right
0001dc  4240              RSBS     r0,r0,#0
0001de  49a1              LDR      r1,|L1.1124|
0001e0  6008              STR      r0,[r1,#0]  ; Count_right
;;;534    				Count_left=-Count_left;
0001e2  48a1              LDR      r0,|L1.1128|
0001e4  6800              LDR      r0,[r0,#0]  ; Count_left
0001e6  4240              RSBS     r0,r0,#0
0001e8  499f              LDR      r1,|L1.1128|
0001ea  6008              STR      r0,[r1,#0]  ; Count_left
                  |L1.492|
;;;535    				
;;;536    			}
;;;537    			
;;;538    			if(P.PID_is_Enable==1){         //2ֺPIDʹ 
0001ec  48a6              LDR      r0,|L1.1160|
0001ee  7c00              LDRB     r0,[r0,#0x10]  ; P
0001f0  2801              CMP      r0,#1
0001f2  d171              BNE      |L1.728|
;;;539            if(Count_right<Count_left && Start_PID==0 && Count_right>5 && Count_moto_start++>=6){				
0001f4  489b              LDR      r0,|L1.1124|
0001f6  6800              LDR      r0,[r0,#0]  ; Count_right
0001f8  499b              LDR      r1,|L1.1128|
0001fa  6809              LDR      r1,[r1,#0]  ; Count_left
0001fc  4288              CMP      r0,r1
0001fe  d219              BCS      |L1.564|
000200  48a2              LDR      r0,|L1.1164|
000202  7800              LDRB     r0,[r0,#0]  ; Start_PID
000204  b9b0              CBNZ     r0,|L1.564|
000206  4897              LDR      r0,|L1.1124|
000208  6800              LDR      r0,[r0,#0]  ; Count_right
00020a  2805              CMP      r0,#5
00020c  d912              BLS      |L1.564|
00020e  48a0              LDR      r0,|L1.1168|
000210  7801              LDRB     r1,[r0,#0]  ; Count_moto_start
000212  7800              LDRB     r0,[r0,#0]  ; Count_moto_start
000214  1c40              ADDS     r0,r0,#1
000216  4a9e              LDR      r2,|L1.1168|
000218  7010              STRB     r0,[r2,#0]
00021a  2906              CMP      r1,#6
00021c  db0a              BLT      |L1.564|
;;;540    					Target_Count=Count_right;
00021e  4891              LDR      r0,|L1.1124|
000220  6800              LDR      r0,[r0,#0]  ; Count_right
000222  499c              LDR      r1,|L1.1172|
000224  6008              STR      r0,[r1,#0]  ; Target_Count
;;;541    					wheel_ptr=2;
000226  2002              MOVS     r0,#2
000228  499b              LDR      r1,|L1.1176|
00022a  7008              STRB     r0,[r1,#0]
;;;542    					Start_PID=1;
00022c  2001              MOVS     r0,#1
00022e  4997              LDR      r1,|L1.1164|
000230  7008              STRB     r0,[r1,#0]
000232  e01d              B        |L1.624|
                  |L1.564|
;;;543    			  
;;;544    				}
;;;545    				else if(Count_right>Count_left && Start_PID==0 && Count_left>5 && Count_moto_start++>=6){
000234  488b              LDR      r0,|L1.1124|
000236  6800              LDR      r0,[r0,#0]  ; Count_right
000238  498b              LDR      r1,|L1.1128|
00023a  6809              LDR      r1,[r1,#0]  ; Count_left
00023c  4288              CMP      r0,r1
00023e  d917              BLS      |L1.624|
000240  4892              LDR      r0,|L1.1164|
000242  7800              LDRB     r0,[r0,#0]  ; Start_PID
000244  b9a0              CBNZ     r0,|L1.624|
000246  4888              LDR      r0,|L1.1128|
000248  6800              LDR      r0,[r0,#0]  ; Count_left
00024a  2805              CMP      r0,#5
00024c  d910              BLS      |L1.624|
00024e  4890              LDR      r0,|L1.1168|
000250  7801              LDRB     r1,[r0,#0]  ; Count_moto_start
000252  7800              LDRB     r0,[r0,#0]  ; Count_moto_start
000254  1c40              ADDS     r0,r0,#1
000256  4a8e              LDR      r2,|L1.1168|
000258  7010              STRB     r0,[r2,#0]
00025a  2906              CMP      r1,#6
00025c  db08              BLT      |L1.624|
;;;546    					Target_Count=Count_left;
00025e  4882              LDR      r0,|L1.1128|
000260  6800              LDR      r0,[r0,#0]  ; Count_left
000262  498c              LDR      r1,|L1.1172|
000264  6008              STR      r0,[r1,#0]  ; Target_Count
;;;547    					wheel_ptr=1;
000266  2001              MOVS     r0,#1
000268  498b              LDR      r1,|L1.1176|
00026a  7008              STRB     r0,[r1,#0]
;;;548    					Start_PID=1;
00026c  4987              LDR      r1,|L1.1164|
00026e  7008              STRB     r0,[r1,#0]
                  |L1.624|
;;;549    				}
;;;550    		
;;;551    				if(wheel_ptr==2) Target_Count=Count_right;
000270  4889              LDR      r0,|L1.1176|
000272  7800              LDRB     r0,[r0,#0]  ; wheel_ptr
000274  2802              CMP      r0,#2
000276  d103              BNE      |L1.640|
000278  487a              LDR      r0,|L1.1124|
00027a  6800              LDR      r0,[r0,#0]  ; Count_right
00027c  4985              LDR      r1,|L1.1172|
00027e  6008              STR      r0,[r1,#0]  ; Target_Count
                  |L1.640|
;;;552    				if(wheel_ptr==1) Target_Count=Count_left;
000280  4885              LDR      r0,|L1.1176|
000282  7800              LDRB     r0,[r0,#0]  ; wheel_ptr
000284  2801              CMP      r0,#1
000286  e000              B        |L1.650|
                  |L1.648|
000288  e02e              B        |L1.744|
                  |L1.650|
00028a  d103              BNE      |L1.660|
00028c  4876              LDR      r0,|L1.1128|
00028e  6800              LDR      r0,[r0,#0]  ; Count_left
000290  4980              LDR      r1,|L1.1172|
000292  6008              STR      r0,[r1,#0]  ; Target_Count
                  |L1.660|
;;;553    		
;;;554    				if(wheel_ptr==1 && move_status==1)Turns_PID(wheel_ptr,Target_Count,Count_right,&P);
000294  4880              LDR      r0,|L1.1176|
000296  7800              LDRB     r0,[r0,#0]  ; wheel_ptr
000298  2801              CMP      r0,#1
00029a  d10c              BNE      |L1.694|
00029c  487f              LDR      r0,|L1.1180|
00029e  7800              LDRB     r0,[r0,#0]  ; move_status
0002a0  2801              CMP      r0,#1
0002a2  d108              BNE      |L1.694|
0002a4  4b78              LDR      r3,|L1.1160|
0002a6  486f              LDR      r0,|L1.1124|
0002a8  6802              LDR      r2,[r0,#0]  ; Count_right
0002aa  487a              LDR      r0,|L1.1172|
0002ac  6801              LDR      r1,[r0,#0]  ; Target_Count
0002ae  487a              LDR      r0,|L1.1176|
0002b0  7800              LDRB     r0,[r0,#0]  ; wheel_ptr
0002b2  f7fffffe          BL       Turns_PID
                  |L1.694|
;;;555    				if(wheel_ptr==2 && move_status==1)Turns_PID(wheel_ptr,Target_Count,Count_left,&P);
0002b6  4878              LDR      r0,|L1.1176|
0002b8  7800              LDRB     r0,[r0,#0]  ; wheel_ptr
0002ba  2802              CMP      r0,#2
0002bc  d10c              BNE      |L1.728|
0002be  4877              LDR      r0,|L1.1180|
0002c0  7800              LDRB     r0,[r0,#0]  ; move_status
0002c2  2801              CMP      r0,#1
0002c4  d108              BNE      |L1.728|
0002c6  4b70              LDR      r3,|L1.1160|
0002c8  4867              LDR      r0,|L1.1128|
0002ca  6802              LDR      r2,[r0,#0]  ; Count_left
0002cc  4871              LDR      r0,|L1.1172|
0002ce  6801              LDR      r1,[r0,#0]  ; Target_Count
0002d0  4871              LDR      r0,|L1.1176|
0002d2  7800              LDRB     r0,[r0,#0]  ; wheel_ptr
0002d4  f7fffffe          BL       Turns_PID
                  |L1.728|
;;;556    				//if(move_status==1 || move_status==4) Count_left=65536-Count_left;
;;;557    			}
;;;558    			TIM_SetCounter(TIM3,0); 
0002d8  2100              MOVS     r1,#0
0002da  4869              LDR      r0,|L1.1152|
0002dc  f7fffffe          BL       TIM_SetCounter
;;;559    			TIM_SetCounter(TIM1,0); 	
0002e0  2100              MOVS     r1,#0
0002e2  4868              LDR      r0,|L1.1156|
0002e4  f7fffffe          BL       TIM_SetCounter
                  |L1.744|
;;;560    		}
;;;561    		TIM_ClearITPendingBit(TIM2,TIM_IT_Update);
0002e8  2101              MOVS     r1,#1
0002ea  0788              LSLS     r0,r1,#30
0002ec  f7fffffe          BL       TIM_ClearITPendingBit
                  |L1.752|
;;;562        //Led_ON()		
;;;563    	
;;;564    	}
;;;565    	
;;;566    }
0002f0  e8bd8ff8          POP      {r3-r11,pc}
;;;567    
                          ENDP

                  TIM1_BRK_IRQHandler PROC
;;;574    *******************************************************************************/
;;;575    void TIM1_BRK_IRQHandler(void)
0002f4  4770              BX       lr
;;;576    {
;;;577    }
;;;578    
                          ENDP

                  TIM1_TRG_COM_IRQHandler PROC
;;;587    *******************************************************************************/
;;;588    void TIM1_TRG_COM_IRQHandler(void)
0002f6  4770              BX       lr
;;;589    {
;;;590    }
;;;591    
                          ENDP

                  TIM1_CC_IRQHandler PROC
;;;598    *******************************************************************************/
;;;599    void TIM1_CC_IRQHandler(void)
0002f8  4770              BX       lr
;;;600    {
;;;601    }
;;;602    
                          ENDP

                  TIM4_IRQHandler PROC
;;;613    *******************************************************************************/
;;;614    void TIM4_IRQHandler(void)
0002fa  4770              BX       lr
;;;615    {
;;;616    }
;;;617    
                          ENDP

                  I2C1_EV_IRQHandler PROC
;;;624    *******************************************************************************/
;;;625    void I2C1_EV_IRQHandler(void)
0002fc  4770              BX       lr
;;;626    {
;;;627    }
;;;628    
                          ENDP

                  I2C1_ER_IRQHandler PROC
;;;635    *******************************************************************************/
;;;636    void I2C1_ER_IRQHandler(void)
0002fe  4770              BX       lr
;;;637    {
;;;638    }
;;;639    
                          ENDP

                  I2C2_EV_IRQHandler PROC
;;;646    *******************************************************************************/
;;;647    void I2C2_EV_IRQHandler(void)
000300  4770              BX       lr
;;;648    {
;;;649    }
;;;650    
                          ENDP

                  I2C2_ER_IRQHandler PROC
;;;657    *******************************************************************************/
;;;658    void I2C2_ER_IRQHandler(void)
000302  4770              BX       lr
;;;659    {
;;;660    }
;;;661    
                          ENDP

                  SPI1_IRQHandler PROC
;;;668    *******************************************************************************/
;;;669    void SPI1_IRQHandler(void)
000304  4770              BX       lr
;;;670    {
;;;671    }
;;;672    
                          ENDP

                  SPI2_IRQHandler PROC
;;;679    *******************************************************************************/
;;;680    void SPI2_IRQHandler(void)
000306  4770              BX       lr
;;;681    {
;;;682    }
;;;683    
                          ENDP

                  USART1_IRQHandler PROC
;;;690    *******************************************************************************/
;;;691    void USART1_IRQHandler(void)
000308  4770              BX       lr
;;;692    {
;;;693    	
;;;694    }
;;;695    
                          ENDP

                  USART2a_IRQHandler PROC
;;;702    *******************************************************************************/
;;;703    void USART2a_IRQHandler(void)
00030a  b570              PUSH     {r4-r6,lr}
;;;704    {
;;;705    	unsigned int i;
;;;706    	
;;;707       	if(USART_GetITStatus(USART2, USART_IT_RXNE) != RESET)	   //ж϶ĴǷǿ
00030c  f2405125          MOV      r1,#0x525
000310  4863              LDR      r0,|L1.1184|
000312  f7fffffe          BL       USART_GetITStatus
000316  2800              CMP      r0,#0
000318  d05b              BEQ      |L1.978|
;;;708      	{	
;;;709        	RxBuffer1[RxCounter1++] = USART_ReceiveData(USART2);   //Ĵݻ浽ջ
00031a  4861              LDR      r0,|L1.1184|
00031c  f7fffffe          BL       USART_ReceiveData
000320  b2c1              UXTB     r1,r0
000322  4860              LDR      r0,|L1.1188|
000324  8805              LDRH     r5,[r0,#0]  ; RxCounter1
000326  1c68              ADDS     r0,r5,#1
000328  4a5e              LDR      r2,|L1.1188|
00032a  8010              STRH     r0,[r2,#0]
00032c  485e              LDR      r0,|L1.1192|
00032e  5541              STRB     r1,[r0,r5]
;;;710        	//GPIO_SetBits(GPIOB, GPIO_Pin_5 );
;;;711    		/*
;;;712    		if(RxBuffer1[RxCounter1-3]=='A' && RxBuffer1[RxCounter1-2]=='T' && RxBuffer1[RxCounter1-1]=='+' )
;;;713    		//if(RxBuffer1[RxCounter1-1]=='A' )//&& RxBuffer1[RxCounter1-2]=='T' && RxBuffer1[RxCounter1-1]=='+' )
;;;714    		{	//GPIO_SetBits(GPIOB, GPIO_Pin_5 );  
;;;715    			RxBuffer1[0]='A'; RxBuffer1[1]='T'; RxBuffer1[2]='+'; RxCounter1=3;
;;;716    			AT_rec_f=1; 
;;;717    
;;;718    		} */    //жʼ־
;;;719    		
;;;720    		if(RxBuffer1[RxCounter1-4]=='+' && RxBuffer1[RxCounter1-3]=='I' && RxBuffer1[RxCounter1-2]=='P' 
000330  4610              MOV      r0,r2
000332  8800              LDRH     r0,[r0,#0]  ; RxCounter1
000334  1f00              SUBS     r0,r0,#4
000336  495c              LDR      r1,|L1.1192|
000338  5c08              LDRB     r0,[r1,r0]
00033a  282b              CMP      r0,#0x2b
00033c  d11f              BNE      |L1.894|
00033e  4610              MOV      r0,r2
000340  8800              LDRH     r0,[r0,#0]  ; RxCounter1
000342  1ec0              SUBS     r0,r0,#3
000344  5c08              LDRB     r0,[r1,r0]
000346  2849              CMP      r0,#0x49
000348  d119              BNE      |L1.894|
00034a  4610              MOV      r0,r2
00034c  8800              LDRH     r0,[r0,#0]  ; RxCounter1
00034e  1e80              SUBS     r0,r0,#2
000350  5c08              LDRB     r0,[r1,r0]
000352  2850              CMP      r0,#0x50
000354  d113              BNE      |L1.894|
;;;721    		   && RxBuffer1[RxCounter1-1]=='D')
000356  4610              MOV      r0,r2
000358  8800              LDRH     r0,[r0,#0]  ; RxCounter1
00035a  1e40              SUBS     r0,r0,#1
00035c  5c08              LDRB     r0,[r1,r0]
00035e  2844              CMP      r0,#0x44
000360  d10d              BNE      |L1.894|
;;;722    		//if(RxBuffer1[RxCounter1-1]=='A' )//&& RxBuffer1[RxCounter1-2]=='T' && RxBuffer1[RxCounter1-1]=='+' )
;;;723    		{	//GPIO_SetBits(GPIOB, GPIO_Pin_5 );  
;;;724    			RxBuffer1[0]='+'; RxBuffer1[1]='I'; RxBuffer1[2]='P'; RxBuffer1[3]='D'; 
000362  202b              MOVS     r0,#0x2b
000364  7008              STRB     r0,[r1,#0]
000366  2049              MOVS     r0,#0x49
000368  7048              STRB     r0,[r1,#1]
00036a  2050              MOVS     r0,#0x50
00036c  7088              STRB     r0,[r1,#2]
00036e  2044              MOVS     r0,#0x44
000370  70c8              STRB     r0,[r1,#3]
;;;725    			RxCounter1=4;
000372  2004              MOVS     r0,#4
000374  4611              MOV      r1,r2
000376  8008              STRH     r0,[r1,#0]
;;;726    			AT_rec_f=2; 
000378  2002              MOVS     r0,#2
00037a  494c              LDR      r1,|L1.1196|
00037c  7008              STRB     r0,[r1,#0]
                  |L1.894|
;;;727    
;;;728    		}     //жʼ־
;;;729    		
;;;730    	
;;;731    	
;;;732    		if(RxBuffer1[RxCounter1-2]==0x0d && RxBuffer1[RxCounter1-1]==0x0a && AT_rec_f==2)                      //жϽ־Ƿ0x0d 0x0a
00037e  4849              LDR      r0,|L1.1188|
000380  8800              LDRH     r0,[r0,#0]  ; RxCounter1
000382  1e80              SUBS     r0,r0,#2
000384  4948              LDR      r1,|L1.1192|
000386  5c08              LDRB     r0,[r1,r0]
000388  280d              CMP      r0,#0xd
00038a  d123              BNE      |L1.980|
00038c  4845              LDR      r0,|L1.1188|
00038e  8800              LDRH     r0,[r0,#0]  ; RxCounter1
000390  1e40              SUBS     r0,r0,#1
000392  5c08              LDRB     r0,[r1,r0]
000394  280a              CMP      r0,#0xa
000396  d11d              BNE      |L1.980|
000398  4844              LDR      r0,|L1.1196|
00039a  7800              LDRB     r0,[r0,#0]  ; AT_rec_f
00039c  2802              CMP      r0,#2
00039e  d119              BNE      |L1.980|
;;;733    		{	  			
;;;734    			for(i=0; i< RxCounter1; i++) TxBuffer1[i]	= RxBuffer1[i]; 	     //ջתͻ׼ת
0003a0  2400              MOVS     r4,#0
0003a2  e004              B        |L1.942|
                  |L1.932|
0003a4  4840              LDR      r0,|L1.1192|
0003a6  5d00              LDRB     r0,[r0,r4]
0003a8  4941              LDR      r1,|L1.1200|
0003aa  5508              STRB     r0,[r1,r4]
0003ac  1c64              ADDS     r4,r4,#1
                  |L1.942|
0003ae  483d              LDR      r0,|L1.1188|
0003b0  8800              LDRH     r0,[r0,#0]  ; RxCounter1
0003b2  4284              CMP      r4,r0
0003b4  d3f6              BCC      |L1.932|
;;;735    	  		//AT_rec_f=0;
;;;736    			rec_f=1;				                                             //ճɹ־
0003b6  2001              MOVS     r0,#1
0003b8  493e              LDR      r1,|L1.1204|
0003ba  7008              STRB     r0,[r1,#0]
;;;737    	  		Rec_Len=RxCounter1;
0003bc  4839              LDR      r0,|L1.1188|
0003be  8800              LDRH     r0,[r0,#0]  ; RxCounter1
0003c0  493d              LDR      r1,|L1.1208|
0003c2  6008              STR      r0,[r1,#0]  ; Rec_Len
;;;738    	  		RxCounter1=0; 														 //ɣź
0003c4  2000              MOVS     r0,#0
0003c6  4937              LDR      r1,|L1.1188|
0003c8  8008              STRH     r0,[r1,#0]
;;;739    			memset((char *)RxBuffer1, 0, 200);	                                 //
0003ca  21c8              MOVS     r1,#0xc8
0003cc  4836              LDR      r0,|L1.1192|
0003ce  f7fffffe          BL       __aeabi_memclr
                  |L1.978|
0003d2  e0b7              B        |L1.1348|
                  |L1.980|
;;;740        	}
;;;741    		
;;;742    
;;;743    		else if(RxBuffer1[RxCounter1-4]=='O' && RxBuffer1[RxCounter1-3]=='K' 
0003d4  4833              LDR      r0,|L1.1188|
0003d6  8800              LDRH     r0,[r0,#0]  ; RxCounter1
0003d8  1f00              SUBS     r0,r0,#4
0003da  4933              LDR      r1,|L1.1192|
0003dc  5c08              LDRB     r0,[r1,r0]
0003de  284f              CMP      r0,#0x4f
0003e0  d16c              BNE      |L1.1212|
0003e2  4830              LDR      r0,|L1.1188|
0003e4  8800              LDRH     r0,[r0,#0]  ; RxCounter1
0003e6  1ec0              SUBS     r0,r0,#3
0003e8  5c08              LDRB     r0,[r1,r0]
0003ea  284b              CMP      r0,#0x4b
0003ec  d166              BNE      |L1.1212|
;;;744    			&& RxBuffer1[RxCounter1-2]==0x0d && RxBuffer1[RxCounter1-1]==0x0a)                      //жϽ־Ƿ0x0d 0x0a
0003ee  482d              LDR      r0,|L1.1188|
0003f0  8800              LDRH     r0,[r0,#0]  ; RxCounter1
0003f2  1e80              SUBS     r0,r0,#2
0003f4  5c08              LDRB     r0,[r1,r0]
0003f6  280d              CMP      r0,#0xd
0003f8  d160              BNE      |L1.1212|
0003fa  482a              LDR      r0,|L1.1188|
0003fc  8800              LDRH     r0,[r0,#0]  ; RxCounter1
0003fe  1e40              SUBS     r0,r0,#1
000400  5c08              LDRB     r0,[r1,r0]
000402  280a              CMP      r0,#0xa
000404  d15a              BNE      |L1.1212|
;;;745    		{	  			
;;;746    			for(i=0; i< RxCounter1; i++) TxBuffer1[i]	= RxBuffer1[i]; 	     //ջתͻ׼ת
000406  2400              MOVS     r4,#0
000408  e004              B        |L1.1044|
                  |L1.1034|
00040a  4827              LDR      r0,|L1.1192|
00040c  5d00              LDRB     r0,[r0,r4]
00040e  4928              LDR      r1,|L1.1200|
000410  5508              STRB     r0,[r1,r4]
000412  1c64              ADDS     r4,r4,#1
                  |L1.1044|
000414  4823              LDR      r0,|L1.1188|
000416  8800              LDRH     r0,[r0,#0]  ; RxCounter1
000418  4284              CMP      r4,r0
00041a  d3f6              BCC      |L1.1034|
;;;747    	  		rec_f=1;				                                             //ճɹ־
00041c  2001              MOVS     r0,#1
00041e  4925              LDR      r1,|L1.1204|
000420  7008              STRB     r0,[r1,#0]
;;;748    	  		Rec_Len=RxCounter1;
000422  4820              LDR      r0,|L1.1188|
000424  8800              LDRH     r0,[r0,#0]  ; RxCounter1
000426  4924              LDR      r1,|L1.1208|
000428  6008              STR      r0,[r1,#0]  ; Rec_Len
;;;749    	  		RxCounter1=0; 														 //ɣź
00042a  2000              MOVS     r0,#0
00042c  491d              LDR      r1,|L1.1188|
00042e  8008              STRH     r0,[r1,#0]
;;;750    			memset((char *)RxBuffer1, 0, 200);	                                 //
000430  21c8              MOVS     r1,#0xc8
000432  481d              LDR      r0,|L1.1192|
000434  f7fffffe          BL       __aeabi_memclr
000438  e084              B        |L1.1348|
00043a  e03f              B        |L1.1212|
                  |L1.1084|
                          DCD      0xbe99999a
                  |L1.1088|
                          DCD      zero
                  |L1.1092|
                          DCD      yaw
                  |L1.1096|
                          DCD      roll
                  |L1.1100|
                          DCD      pitch
                  |L1.1104|
                          DCD      gyroz
                  |L1.1108|
                          DCD      gyroy
                  |L1.1112|
                          DCD      gyrox
                  |L1.1116|
                          DCD      Balance_up
                  |L1.1120|
                          DCD      0x3fe33333
                  |L1.1124|
                          DCD      Count_right
                  |L1.1128|
                          DCD      Count_left
                  |L1.1132|
                          DCD      0xffffe3e0
                  |L1.1136|
                          DCD      0x42b40000
                  |L1.1140|
                          DCD      0x40000834
                  |L1.1144|
                          DCD      0xc2b40000
                  |L1.1148|
                          DCD      Moto_tim2_ct
                  |L1.1152|
                          DCD      0x40000400
                  |L1.1156|
                          DCD      0x40012c00
                  |L1.1160|
                          DCD      P
                  |L1.1164|
                          DCD      Start_PID
                  |L1.1168|
                          DCD      Count_moto_start
                  |L1.1172|
                          DCD      Target_Count
                  |L1.1176|
                          DCD      wheel_ptr
                  |L1.1180|
                          DCD      move_status
                  |L1.1184|
                          DCD      0x40004400
                  |L1.1188|
                          DCD      RxCounter1
                  |L1.1192|
                          DCD      RxBuffer1
                  |L1.1196|
                          DCD      AT_rec_f
                  |L1.1200|
                          DCD      TxBuffer1
                  |L1.1204|
                          DCD      rec_f
                  |L1.1208|
                          DCD      Rec_Len
                  |L1.1212|
;;;751    			
;;;752        	}
;;;753    		else if(RxBuffer1[RxCounter1-7]=='E' && RxBuffer1[RxCounter1-6]=='R' 
0004bc  4848              LDR      r0,|L1.1504|
0004be  8800              LDRH     r0,[r0,#0]  ; RxCounter1
0004c0  1fc0              SUBS     r0,r0,#7
0004c2  4948              LDR      r1,|L1.1508|
0004c4  5c08              LDRB     r0,[r1,r0]
0004c6  2845              CMP      r0,#0x45
0004c8  d13c              BNE      |L1.1348|
0004ca  4845              LDR      r0,|L1.1504|
0004cc  8800              LDRH     r0,[r0,#0]  ; RxCounter1
0004ce  1f80              SUBS     r0,r0,#6
0004d0  5c08              LDRB     r0,[r1,r0]
0004d2  2852              CMP      r0,#0x52
0004d4  d136              BNE      |L1.1348|
;;;754    		        && RxBuffer1[RxCounter1-5]=='R' && RxBuffer1[RxCounter1-4]=='O' && RxBuffer1[RxCounter1-3]=='R'  
0004d6  4842              LDR      r0,|L1.1504|
0004d8  8800              LDRH     r0,[r0,#0]  ; RxCounter1
0004da  1f40              SUBS     r0,r0,#5
0004dc  5c08              LDRB     r0,[r1,r0]
0004de  2852              CMP      r0,#0x52
0004e0  d130              BNE      |L1.1348|
0004e2  483f              LDR      r0,|L1.1504|
0004e4  8800              LDRH     r0,[r0,#0]  ; RxCounter1
0004e6  1f00              SUBS     r0,r0,#4
0004e8  5c08              LDRB     r0,[r1,r0]
0004ea  284f              CMP      r0,#0x4f
0004ec  d12a              BNE      |L1.1348|
0004ee  483c              LDR      r0,|L1.1504|
0004f0  8800              LDRH     r0,[r0,#0]  ; RxCounter1
0004f2  1ec0              SUBS     r0,r0,#3
0004f4  5c08              LDRB     r0,[r1,r0]
0004f6  2852              CMP      r0,#0x52
0004f8  d124              BNE      |L1.1348|
;;;755    				&& RxBuffer1[RxCounter1-2]==0x0d && RxBuffer1[RxCounter1-1]==0x0a )                      //жϽ־Ƿ0x0d 0x0a
0004fa  4839              LDR      r0,|L1.1504|
0004fc  8800              LDRH     r0,[r0,#0]  ; RxCounter1
0004fe  1e80              SUBS     r0,r0,#2
000500  5c08              LDRB     r0,[r1,r0]
000502  280d              CMP      r0,#0xd
000504  d11e              BNE      |L1.1348|
000506  4836              LDR      r0,|L1.1504|
000508  8800              LDRH     r0,[r0,#0]  ; RxCounter1
00050a  1e40              SUBS     r0,r0,#1
00050c  5c08              LDRB     r0,[r1,r0]
00050e  280a              CMP      r0,#0xa
000510  d118              BNE      |L1.1348|
;;;756    		{	  			
;;;757    			for(i=0; i< RxCounter1; i++) TxBuffer1[i]	= RxBuffer1[i]; 	     //ջתͻ׼ת
000512  2400              MOVS     r4,#0
000514  e004              B        |L1.1312|
                  |L1.1302|
000516  4833              LDR      r0,|L1.1508|
000518  5d00              LDRB     r0,[r0,r4]
00051a  4933              LDR      r1,|L1.1512|
00051c  5508              STRB     r0,[r1,r4]
00051e  1c64              ADDS     r4,r4,#1
                  |L1.1312|
000520  482f              LDR      r0,|L1.1504|
000522  8800              LDRH     r0,[r0,#0]  ; RxCounter1
000524  4284              CMP      r4,r0
000526  d3f6              BCC      |L1.1302|
;;;758    	  		rec_f=1;				                                             //ճɹ־
000528  2001              MOVS     r0,#1
00052a  4930              LDR      r1,|L1.1516|
00052c  7008              STRB     r0,[r1,#0]
;;;759    	  		Rec_Len=RxCounter1;
00052e  482c              LDR      r0,|L1.1504|
000530  8800              LDRH     r0,[r0,#0]  ; RxCounter1
000532  492f              LDR      r1,|L1.1520|
000534  6008              STR      r0,[r1,#0]  ; Rec_Len
;;;760    	  		RxCounter1=0; 														 //ɣź
000536  2000              MOVS     r0,#0
000538  4929              LDR      r1,|L1.1504|
00053a  8008              STRH     r0,[r1,#0]
;;;761    			memset((char *)RxBuffer1, 0, 200);	                                 //
00053c  21c8              MOVS     r1,#0xc8
00053e  4829              LDR      r0,|L1.1508|
000540  f7fffffe          BL       __aeabi_memclr
                  |L1.1348|
;;;762        	}
;;;763      	} 
;;;764      
;;;765    }
000544  bd70              POP      {r4-r6,pc}
;;;766    
                          ENDP

                  USART2_IRQHandler PROC
;;;773    *******************************************************************************/
;;;774    void USART2_IRQHandler(void)
000546  e92d41f0          PUSH     {r4-r8,lr}
;;;775    {
;;;776    	uint8_t res;
;;;777    	uint8_t clear = 0;
00054a  2700              MOVS     r7,#0
;;;778    	uint8_t inCrc;
;;;779    	uint8_t crc;
;;;780    	static uint8_t Rx_Sta = 1;
;;;781    	
;;;782    	if(USART_GetITStatus(USART2, USART_IT_RXNE) != RESET)   //ж϶ĴǷǿ
00054c  f2405125          MOV      r1,#0x525
000550  4828              LDR      r0,|L1.1524|
000552  f7fffffe          BL       USART_GetITStatus
000556  b160              CBZ      r0,|L1.1394|
;;;783    	{
;;;784    		res =USART2->DR;
000558  4826              LDR      r0,|L1.1524|
00055a  1d00              ADDS     r0,r0,#4
00055c  8800              LDRH     r0,[r0,#0]
00055e  b2c5              UXTB     r5,r0
;;;785    		USART3_RX_BUF[Rx_Sta++] = res;
000560  4825              LDR      r0,|L1.1528|
000562  7801              LDRB     r1,[r0,#0]  ; Rx_Sta
000564  7800              LDRB     r0,[r0,#0]  ; Rx_Sta
000566  1c40              ADDS     r0,r0,#1
000568  4a23              LDR      r2,|L1.1528|
00056a  7010              STRB     r0,[r2,#0]
00056c  4823              LDR      r0,|L1.1532|
00056e  5445              STRB     r5,[r0,r1]
000570  e031              B        |L1.1494|
                  |L1.1394|
;;;786    	}
;;;787    	else if(USART_GetITStatus(USART2, USART_IT_IDLE) != RESET)
000572  f2404124          MOV      r1,#0x424
000576  481f              LDR      r0,|L1.1524|
000578  f7fffffe          BL       USART_GetITStatus
00057c  b308              CBZ      r0,|L1.1474|
;;;788    	{
;;;789    		clear = USART2->SR;
00057e  481d              LDR      r0,|L1.1524|
000580  8800              LDRH     r0,[r0,#0]
000582  b2c7              UXTB     r7,r0
;;;790    		clear = USART2->DR;
000584  481b              LDR      r0,|L1.1524|
000586  1d00              ADDS     r0,r0,#4
000588  8800              LDRH     r0,[r0,#0]
00058a  b2c7              UXTB     r7,r0
;;;791    		
;;;792    		USART3_RX_BUF[0] = Rx_Sta - 1;
00058c  481a              LDR      r0,|L1.1528|
00058e  7800              LDRB     r0,[r0,#0]  ; Rx_Sta
000590  1e40              SUBS     r0,r0,#1
000592  491a              LDR      r1,|L1.1532|
000594  7008              STRB     r0,[r1,#0]
;;;793    		
;;;794    		inCrc = USART3_RX_BUF[Rx_Sta - 1];
000596  4818              LDR      r0,|L1.1528|
000598  7800              LDRB     r0,[r0,#0]  ; Rx_Sta
00059a  1e40              SUBS     r0,r0,#1
00059c  5c0e              LDRB     r6,[r1,r0]
;;;795        crc = Crc8_calc(&USART3_RX_BUF[3], USART3_RX_BUF[2] - 1);
00059e  4608              MOV      r0,r1
0005a0  7880              LDRB     r0,[r0,#2]  ; USART3_RX_BUF
0005a2  1e40              SUBS     r0,r0,#1
0005a4  b2c1              UXTB     r1,r0
0005a6  4815              LDR      r0,|L1.1532|
0005a8  1cc0              ADDS     r0,r0,#3
0005aa  f7fffffe          BL       Crc8_calc
0005ae  4604              MOV      r4,r0
;;;796    		
;;;797    		if(inCrc!=crc || USART3_RX_BUF[3]!=0x16){
0005b0  42a6              CMP      r6,r4
0005b2  d103              BNE      |L1.1468|
0005b4  4811              LDR      r0,|L1.1532|
0005b6  78c0              LDRB     r0,[r0,#3]  ; USART3_RX_BUF
0005b8  2816              CMP      r0,#0x16
0005ba  d003              BEQ      |L1.1476|
                  |L1.1468|
;;;798    			Rx_Sta = 1;
0005bc  2001              MOVS     r0,#1
0005be  490e              LDR      r1,|L1.1528|
0005c0  7008              STRB     r0,[r1,#0]
                  |L1.1474|
0005c2  e008              B        |L1.1494|
                  |L1.1476|
;;;799    			//GPIO_ResetBits(GPIOB, GPIO_Pin_5);	                      //LED1		
;;;800    		}
;;;801    		else{
;;;802    			Crsf_Data_Count(USART3_RX_BUF);
0005c4  480d              LDR      r0,|L1.1532|
0005c6  f7fffffe          BL       Crsf_Data_Count
;;;803    			Rx_Sta = 1;
0005ca  2001              MOVS     r0,#1
0005cc  490a              LDR      r1,|L1.1528|
0005ce  7008              STRB     r0,[r1,#0]
;;;804    			rc_flag=2;
0005d0  2002              MOVS     r0,#2
0005d2  490b              LDR      r1,|L1.1536|
0005d4  7008              STRB     r0,[r1,#0]
                  |L1.1494|
;;;805    			//GPIO_SetBits(GPIOB, GPIO_Pin_5);	                      //LED1		
;;;806    		}
;;;807    	}
;;;808    }
0005d6  e8bd81f0          POP      {r4-r8,pc}
;;;809    
                          ENDP

                  EXTI15_10_IRQHandler PROC
;;;818    *******************************************************************************/
;;;819    void EXTI15_10_IRQHandler(void)
0005da  4770              BX       lr
;;;820    {
;;;821    }
;;;822    
                          ENDP

                  RTCAlarm_IRQHandler PROC
;;;829    *******************************************************************************/
;;;830    void RTCAlarm_IRQHandler(void)
0005dc  4770              BX       lr
;;;831    {
;;;832    }
;;;833    
                          ENDP

0005de  0000              DCW      0x0000
                  |L1.1504|
                          DCD      RxCounter1
                  |L1.1508|
                          DCD      RxBuffer1
                  |L1.1512|
                          DCD      TxBuffer1
                  |L1.1516|
                          DCD      rec_f
                  |L1.1520|
                          DCD      Rec_Len
                  |L1.1524|
                          DCD      0x40004400
                  |L1.1528|
                          DCD      Rx_Sta
                  |L1.1532|
                          DCD      USART3_RX_BUF
                  |L1.1536|
                          DCD      rc_flag

                          AREA ||.data||, DATA, ALIGN=0

                  Rx_Sta
000000  01                DCB      0x01
