浏览代码

PE43711 제어 하도록 변경 / Data status Get 할 수 있도록 변경 /RFU TEMP 추가

PYJ 5 年之前
父节点
当前提交
008e8c381b
共有 9 个文件被更改,包括 860 次插入539 次删除
  1. 199 199
      .cproject
  2. 71 39
      Bluecell_Inc/Bluecell_operate.h
  3. 1 1
      Bluecell_Inc/uart.h
  4. 487 236
      Bluecell_Src/Bluecell_operate.c
  5. 1 1
      Bluecell_Src/uart.c
  6. 6 3
      Inc/main.h
  7. 66 56
      STM32F103ZET_JDASMBIC.ioc
  8. 20 4
      Src/main.c
  9. 9 0
      Src/stm32f1xx_hal_msp.c

文件差异内容过多而无法显示
+ 199 - 199
.cproject


+ 71 - 39
Bluecell_Inc/Bluecell_operate.h

@@ -309,38 +309,27 @@ struct Alarm_UL {
309
 };
309
 };
310
 enum DATATYPE
310
 enum DATATYPE
311
 {
311
 {
312
-	ATTDL1  = 0x11,
313
-	ATT_DL1_PATH_OFF = 0x12,
314
-	ATT_DL1_PATH_ON = 0x13,
315
-	ATTUL1  = 0x15,
316
-	ATT_UL1_PATH_OFF = 0x16,
317
-	ATT_UL1_PATH_ON = 0x17,
318
-	ATT_SelfTest1_OFF = 0x18,
319
-	ATT_SelfTest1_ON = 0x19,
320
-	ATTDL2  = 0x21,
321
-	ATT_DL2_PATH_OFF = 0x22,
322
-	ATT_DL2_PATH_ON = 0x23,
323
-	ATTUL2  = 0x25,
324
-	ATT_UL2_PATH_OFF = 0x26,
325
-	ATT_UL2_PATH_ON = 0x27,
326
-	ATT_SelfTest2_OFF = 0x28,
327
-	ATT_SelfTest2_ON = 0x29,
328
-	ATTDL3  = 0x31,
329
-	ATT_DL3_PATH_OFF = 0x32,
330
-	ATT_DL3_PATH_ON = 0x33,
331
-	ATTUL3  = 0x35,
332
-	ATT_UL3_PATH_OFF = 0x36,
333
-	ATT_UL3_PATH_ON = 0x37,
334
-	ATT_SelfTest3_OFF = 0x38,
335
-	ATT_SelfTest3_ON = 0x39,
336
-	ATTDL4  = 0x41,
337
-	ATT_DL4_PATH_OFF = 0x42,
338
-	ATT_DL4_PATH_ON = 0x43,
339
-	ATTUL4  = 0x45,
340
-	ATT_UL4_PATH_OFF = 0x46,
341
-	ATT_UL4_PATH_ON = 0x47,
342
-	ATT_SelfTest4_OFF = 0x48,
343
-	ATT_SelfTest4_ON = 0x49,
312
+	ATTSET  = 0x11,
313
+	ATT_DL1_PATH = 0x12,
314
+	ATT_UL1_PATH = 0x16,
315
+	ATT_SelfTest1 = 0x18,
316
+	ATT_DL2_PATH = 0x22,
317
+	ATT_UL2_PATH = 0x26,
318
+	ATT_SelfTest2 = 0x28,
319
+	ATT_DL3_PATH = 0x32,
320
+	ATT_UL3_PATH = 0x36,
321
+	ATT_SelfTest3 = 0x38,
322
+	ATT_DL4_PATH = 0x42,
323
+	ATT_UL4_PATH = 0x46,
324
+	ATT_SelfTest4 = 0x48,
325
+	ALC1_EN = 0x51,
326
+	ALC2_EN = 0x52,
327
+	ALC3_EN = 0x53,
328
+	ALC4_EN = 0x54,
329
+    AGC1_EN = 0x61,
330
+    AGC2_EN = 0x62,
331
+    AGC3_EN = 0x63,
332
+    AGC4_EN = 0x64,
344
 	Bluecell_StatusReq = 0x77,
333
 	Bluecell_StatusReq = 0x77,
345
 };
334
 };
346
 
335
 
@@ -494,13 +483,56 @@ typedef struct{
494
     uint8_t DET_UL4_IN_L;        
483
     uint8_t DET_UL4_IN_L;        
495
     uint8_t DET_TEMP_H;            
484
     uint8_t DET_TEMP_H;            
496
     uint8_t DET_TEMP_L;                
485
     uint8_t DET_TEMP_L;                
497
-    uint8_t ATT_AGC_ONOFF;
498
-    uint8_t ATT_ALC_ONOFF;
499
-    uint8_t ATT_AGC_H;
500
-    uint8_t ATT_AGC_L;    
501
-    uint8_t ATT_ALC_H;
502
-    uint8_t ATT_ALC_L;    
486
+    uint8_t ATT_AGC1_ONOFF;
487
+    uint8_t ATT_ALC1_ONOFF;
488
+    uint8_t ATT_AGC2_ONOFF;
489
+    uint8_t ATT_ALC2_ONOFF;
490
+    uint8_t ATT_AGC3_ONOFF;
491
+    uint8_t ATT_ALC3_ONOFF;
492
+    uint8_t ATT_AGC4_ONOFF;
493
+    uint8_t ATT_ALC4_ONOFF;
494
+    uint8_t ATT_AGC1_H;
495
+    uint8_t ATT_AGC1_L;    
496
+    uint8_t ATT_ALC1_H;
497
+    uint8_t ATT_ALC1_L;    
498
+    uint8_t ATT_AGC2_H;
499
+    uint8_t ATT_AGC2_L;    
500
+    uint8_t ATT_ALC2_H;
501
+    uint8_t ATT_ALC2_L;    
502
+    uint8_t ATT_AGC3_H;
503
+    uint8_t ATT_AGC3_L;    
504
+    uint8_t ATT_ALC3_H;
505
+    uint8_t ATT_ALC3_L;    
506
+    uint8_t ATT_AGC4_H;
507
+    uint8_t ATT_AGC4_L;    
508
+    uint8_t ATT_ALC4_H;
509
+    uint8_t ATT_ALC4_L;    
503
     uint8_t bluecell_crc;        
510
     uint8_t bluecell_crc;        
504
 }BLUESTATUS_st;
511
 }BLUESTATUS_st;
505
-
512
+typedef enum{
513
+  Bluecell_DET_UL1_ADC_INDEX_H = 0,
514
+  Bluecell_DET_UL1_ADC_INDEX_L,
515
+  Bluecell_DET_UL2_ADC_INDEX_H,
516
+  Bluecell_DET_UL2_ADC_INDEX_L,
517
+  Bluecell_DET_UL3_ADC_INDEX_H,
518
+  Bluecell_DET_UL3_ADC_INDEX_L,
519
+  Bluecell_RFU_TEMP_ADC_INDEX_H,
520
+  Bluecell_RFU_TEMP_ADC_INDEX_L,
521
+  Bluecell_ADC1_MaxLength,
522
+}Bluecell_ADC1_Index;
523
+typedef enum{
524
+  Bluecell_DET_UL4_ADC_INDEX_H = Bluecell_ADC1_MaxLength,
525
+  Bluecell_DET_UL4_ADC_INDEX_L,
526
+  Bluecell_DET_DL1_ADC_INDEX_H,
527
+  Bluecell_DET_DL1_ADC_INDEX_L,
528
+  Bluecell_DET_DL2_ADC_INDEX_H,
529
+  Bluecell_DET_DL2_ADC_INDEX_L,
530
+  Bluecell_DET_DL3_ADC_INDEX_H,
531
+  Bluecell_DET_DL3_ADC_INDEX_L,
532
+  Bluecell_DET_DL4_ADC_INDEX_H,
533
+  Bluecell_DET_DL4_ADC_INDEX_L,
534
+  Bluecell_ADC3_MaxLength,
535
+}Bluecell_ADC3_Index;
536
+#define ADC1_EA Bluecell_ADC1_MaxLength /2
537
+#define ADC3_EA Bluecell_ADC3_MaxLength /2
506
 #endif /* BLUECELL_OPERATE_H_ */
538
 #endif /* BLUECELL_OPERATE_H_ */

+ 1 - 1
Bluecell_Inc/uart.h

@@ -12,7 +12,7 @@
12
 #include "main.h"
12
 #include "main.h"
13
 #define hTerminal    huart1
13
 #define hTerminal    huart1
14
 
14
 
15
-#define QUEUE_BUFFER_LENGTH 10240
15
+#define QUEUE_BUFFER_LENGTH 1024
16
 
16
 
17
 typedef struct
17
 typedef struct
18
 {
18
 {

+ 487 - 236
Bluecell_Src/Bluecell_operate.c

@@ -3,6 +3,7 @@
3
 #include "Bluecell_operate.h"
3
 #include "Bluecell_operate.h"
4
 #include "PE43711.h"
4
 #include "PE43711.h"
5
 extern volatile uint32_t LedTimerCnt;
5
 extern volatile uint32_t LedTimerCnt;
6
+extern volatile uint32_t AdcTimerCnt;
6
 extern void PE43711_atten_ctrl(PE43711_st ATT ,uint8_t data);
7
 extern void PE43711_atten_ctrl(PE43711_st ATT ,uint8_t data);
7
 extern void Uart1_Data_Send(uint8_t* data,uint8_t size);
8
 extern void Uart1_Data_Send(uint8_t* data,uint8_t size);
8
 uint8_t Alarm_Status[MAX_ALARM_Len] = {0,};
9
 uint8_t Alarm_Status[MAX_ALARM_Len] = {0,};
@@ -16,6 +17,14 @@ DET_DL DET_DL2;
16
 DET_DL DET_DL3;
17
 DET_DL DET_DL3;
17
 DET_DL DET_DL4;
18
 DET_DL DET_DL4;
18
 uint8_t ResultData[1024] = {0,};
19
 uint8_t ResultData[1024] = {0,};
20
+
21
+
22
+
23
+
24
+
25
+
26
+
27
+
19
 void Boot_LED_Toggle(void){
28
 void Boot_LED_Toggle(void){
20
   if(LedTimerCnt > 500){
29
   if(LedTimerCnt > 500){
21
     HAL_GPIO_TogglePin(GPIOG,GPIO_PIN_14);
30
     HAL_GPIO_TogglePin(GPIOG,GPIO_PIN_14);
@@ -59,290 +68,482 @@ BLUECELL_LENGTH,
59
 BLUECELL_CRCINDEX,
68
 BLUECELL_CRCINDEX,
60
 BLUECELL_DATA,
69
 BLUECELL_DATA,
61
 }BLUECELLProt_st;
70
 }BLUECELLProt_st;
71
+typedef struct{
72
+    bool AGC1_En;
73
+    bool AGC2_En;
74
+    bool AGC3_En;
75
+    bool AGC4_En;
76
+    bool ALC1_En;
77
+    bool ALC2_En;
78
+    bool ALC3_En;
79
+    bool ALC4_En;
80
+}AutoCtrl_st;
62
 
81
 
63
 extern ALL_PE43711_st ALL_ATT;
82
 extern ALL_PE43711_st ALL_ATT;
64
-BLUESTATUS_st bluecell_datastatus;
83
+BLUESTATUS_st bluecell_Currdatastatus;
84
+BLUESTATUS_st bluecell_Prevdatastatus;
85
+
86
+uint8_t PE43711_Calc(uint8_t high_bit,uint8_t low_bit){
87
+    uint16_t tmp_h = 0,tmp_l = 0;
88
+    double ret = 0;
89
+    uint8_t val = 0;
90
+    tmp_h = high_bit;
91
+    tmp_l = low_bit;
92
+    ret += ((tmp_h << 8) & 0xFF00);
93
+    ret += (tmp_l & 0x00FF);
94
+    ret /= 100;
95
+    val = PE43711_DataToHexConvert(ret);
65
 
96
 
97
+}
66
 
98
 
67
-bool Bluecell_Operate(uint8_t* data){
68
-  uint8_t datatype = data[BLUECELL_TYPE];
69
-  uint16_t tmp_h = 0,tmp_l = 0;
70
-  double ret = 0 ,tmp = 0.1;
71
-  uint8_t val = 0;
72
-  switch(datatype){
73
-	case ATTDL1 				 :
74
-		printf("Function : %s Line %d \r\n",__func__,__LINE__);
75
-		tmp_h = data[BLUECELL_DATA];
76
-		tmp_l = data[BLUECELL_DATA + 1];
77
-		ret += ((tmp_h << 8) & 0xFF00);
99
+void CompareAttenData(BLUESTATUS_st Curr,BLUESTATUS_st Prev){
100
+     uint8_t val = 0;
101
+    if(Curr.ATT_DL1_H != Prev.ATT_DL1_H
102
+     ||Curr.ATT_DL1_L != Prev.ATT_DL1_L){
103
+        bluecell_Prevdatastatus.ATT_DL1_H = bluecell_Currdatastatus.ATT_DL1_H;
104
+        bluecell_Prevdatastatus.ATT_DL1_L = bluecell_Currdatastatus.ATT_DL1_L;
105
+        val = PE43711_Calc(Curr.ATT_DL1_H,Curr.ATT_DL1_L);
106
+        printf("%d val = %x \r\n",__LINE__,val);
107
+        PE43711_atten_ctrl(ALL_ATT.ATT_DL1,val);
108
+    }
109
+    printf("\r\nCurr.ATT_DL2_H : %x \r\nPrev.ATT_DL2_H : %x \r\n",Curr.ATT_DL2_H,Prev.ATT_DL2_H);
110
+     printf("\r\nCurr.ATT_DL2_L : %x \r\nPrev.ATT_DL2_L : %x \r\n",Curr.ATT_DL2_L,Prev.ATT_DL2_L);
111
+
112
+    if((Curr.ATT_DL2_H != Prev.ATT_DL2_H)
113
+     ||(Curr.ATT_DL2_L != Prev.ATT_DL2_L)){
114
+        bluecell_Prevdatastatus.ATT_DL2_H = bluecell_Currdatastatus.ATT_DL2_H;
115
+        bluecell_Prevdatastatus.ATT_DL2_L = bluecell_Currdatastatus.ATT_DL2_L;
116
+        val = PE43711_Calc(Curr.ATT_DL2_H,Curr.ATT_DL2_L);
117
+        printf("%d val = %x \r\n",__LINE__,val);
118
+        PE43711_atten_ctrl(ALL_ATT.ATT_DL2,val);
119
+    }
120
+
121
+    if(Curr.ATT_DL3_H != Prev.ATT_DL3_H
122
+     ||Curr.ATT_DL3_L != Prev.ATT_DL3_L){
123
+        bluecell_Prevdatastatus.ATT_DL3_H = bluecell_Currdatastatus.ATT_DL3_H;
124
+        bluecell_Prevdatastatus.ATT_DL3_L = bluecell_Currdatastatus.ATT_DL3_L;
125
+        val = PE43711_Calc(Curr.ATT_DL3_H,Curr.ATT_DL3_L);
126
+        printf("%d val = %x \r\n",__LINE__,val);
127
+        PE43711_atten_ctrl(ALL_ATT.ATT_DL3,val);
128
+    }
129
+     
130
+    if(Curr.ATT_DL4_H != Prev.ATT_DL4_H
131
+     ||Curr.ATT_DL4_L != Prev.ATT_DL4_L){
132
+        bluecell_Prevdatastatus.ATT_DL4_H = bluecell_Currdatastatus.ATT_DL4_H;
133
+        bluecell_Prevdatastatus.ATT_DL4_L = bluecell_Currdatastatus.ATT_DL4_L;
134
+        val = PE43711_Calc(Curr.ATT_DL4_H,Curr.ATT_DL4_L);
135
+        printf("%d val = %x \r\n",__LINE__,val);
136
+        PE43711_atten_ctrl(ALL_ATT.ATT_DL4,val);
137
+    }
138
+
139
+    
140
+    if(Curr.ATT_UL1_H != Prev.ATT_UL1_H
141
+     ||Curr.ATT_UL1_L != Prev.ATT_UL1_L){
142
+        bluecell_Prevdatastatus.ATT_UL1_H = bluecell_Currdatastatus.ATT_UL1_H;
143
+        bluecell_Prevdatastatus.ATT_UL1_L = bluecell_Currdatastatus.ATT_UL1_L;
144
+        val = PE43711_Calc(Curr.ATT_UL1_H,Curr.ATT_UL1_L);
145
+        printf("%d val = %x \r\n",__LINE__,val);
146
+        PE43711_atten_ctrl(ALL_ATT.ATT_UL1,val);
147
+    }
148
+    if(Curr.ATT_UL2_H != Prev.ATT_UL2_H
149
+     ||Curr.ATT_UL2_L != Prev.ATT_UL2_L){
150
+        bluecell_Prevdatastatus.ATT_UL2_H = bluecell_Currdatastatus.ATT_UL2_H;
151
+        bluecell_Prevdatastatus.ATT_UL2_L = bluecell_Currdatastatus.ATT_UL2_L;
152
+        val = PE43711_Calc(Curr.ATT_UL2_H,Curr.ATT_UL2_L);
153
+        printf("%d val = %x \r\n",__LINE__,val);
154
+        PE43711_atten_ctrl(ALL_ATT.ATT_UL2,val);
155
+    }
156
+     
157
+    if(Curr.ATT_UL3_H != Prev.ATT_UL3_H
158
+     ||Curr.ATT_UL3_L != Prev.ATT_UL3_L){
159
+        bluecell_Prevdatastatus.ATT_UL3_H = bluecell_Currdatastatus.ATT_UL3_H;
160
+        bluecell_Prevdatastatus.ATT_UL3_L = bluecell_Currdatastatus.ATT_UL3_L;
161
+        
162
+        val = PE43711_Calc(Curr.ATT_UL3_H,Curr.ATT_UL3_L);
163
+        printf("%d val = %x \r\n",__LINE__,val);
164
+        PE43711_atten_ctrl(ALL_ATT.ATT_UL3,val);
165
+    }
166
+    if(Curr.ATT_UL4_H != Prev.ATT_UL4_H
167
+     ||Curr.ATT_UL4_L != Prev.ATT_UL4_L){
168
+        bluecell_Prevdatastatus.ATT_UL4_H = bluecell_Currdatastatus.ATT_UL4_H;
169
+        bluecell_Prevdatastatus.ATT_UL4_L = bluecell_Currdatastatus.ATT_UL4_L;
170
+        
171
+        val = PE43711_Calc(Curr.ATT_UL4_H,Curr.ATT_UL4_L);
172
+        printf("%d val = %x \r\n",__LINE__,val);
173
+        PE43711_atten_ctrl(ALL_ATT.ATT_UL4,val);
174
+    }
175
+//    memcpy(&bluecell_Prevdatastatus.ATT_DL1_H,&bluecell_Currdatastatus.ATT_DL1_H,32);
176
+#if 0 // PYJ.2020.04.21_BEGIN -- 
177
+    
178
+    if(Curr.ATT_ALC1_H != Prev.ATT_ALC1_H
179
+     ||Curr.ATT_ALC1_L != Prev.ATT_ALC1_L){
180
+        tmp_h = Curr.ATT_ALC1_H;
181
+        tmp_l = Curr.ATT_ALC1_L;
182
+        ret += ((tmp_h << 8) & 0xFF00);
78
 		ret += (tmp_l & 0x00FF);
183
 		ret += (tmp_l & 0x00FF);
79
 		ret /= 100;
184
 		ret /= 100;
80
         val = PE43711_DataToHexConvert(ret);
185
         val = PE43711_DataToHexConvert(ret);
81
-        PE43711_atten_ctrl(ALL_ATT.ATT_DL1,val);
82
-		printf("ret : %f ,tmp %f \r\n",ret,tmp );
83
-		break;
84
-	case ATT_DL1_PATH_OFF 		 :
85
-        HAL_GPIO_WritePin(PATH_EN_DL1_GPIO_Port,PATH_EN_DL1_Pin,GPIO_PIN_SET);//CLOCK
86
-		printf("Function : %s Line %d \r\n",__func__,__LINE__);
87
-		break;
88
-	case ATT_DL1_PATH_ON 		 :
89
-        HAL_GPIO_WritePin(PATH_EN_DL1_GPIO_Port,PATH_EN_DL1_Pin,GPIO_PIN_RESET);//CLOCK        
90
-		printf("Function : %s Line %d \r\n",__func__,__LINE__);
91
-		break;
92
-	case ATTUL1  				 :
93
-		printf("Function : %s Line %d \r\n",__func__,__LINE__);
94
-		tmp_h = data[BLUECELL_DATA];
95
-		tmp_l = data[BLUECELL_DATA + 1];
96
-		ret += ((tmp_h << 8) & 0xFF00);
186
+//        PE43711_atten_ctrl(ALL_ATT.ATT_DL1,val);
187
+
188
+    }
189
+    if(Curr.ATT_ALC2_H != Prev.ATT_ALC2_H
190
+     ||Curr.ATT_ALC2_L != Prev.ATT_ALC2_L){
191
+        tmp_h = Curr.ATT_ALC2_H;
192
+        tmp_l = Curr.ATT_ALC2_L;
193
+        ret += ((tmp_h << 8) & 0xFF00);
97
 		ret += (tmp_l & 0x00FF);
194
 		ret += (tmp_l & 0x00FF);
98
 		ret /= 100;
195
 		ret /= 100;
99
         val = PE43711_DataToHexConvert(ret);
196
         val = PE43711_DataToHexConvert(ret);
100
-        PE43711_atten_ctrl(ALL_ATT.ATT_UL1,val);
101
-
102
-		printf("tmp_h : %x tmp_l : %x , ret : %x ,%f ,tmp %f \r\n",tmp_h,tmp_l,ret,tmp );
103
-
104
-		break;
105
-	case ATT_UL1_PATH_OFF        :
106
-        HAL_GPIO_WritePin(PATH_EN_UL1_GPIO_Port,PATH_EN_UL1_Pin,GPIO_PIN_SET);//CLOCK
107
-		printf("Function : %s Line %d \r\n",__func__,__LINE__);
108
-		break;
109
-	case ATT_UL1_PATH_ON 		 :
110
-        HAL_GPIO_WritePin(PATH_EN_UL1_GPIO_Port,PATH_EN_UL1_Pin,GPIO_PIN_RESET);//CLOCK
111
-		printf("Function : %s Line %d \r\n",__func__,__LINE__);
112
-		break;
113
-	case ATT_SelfTest1_OFF		 :
114
-        HAL_GPIO_WritePin(_PATH_SW1_GPIO_Port,_PATH_SW1_Pin,GPIO_PIN_RESET);//CLOCK
115
-        HAL_GPIO_WritePin(PATH_SW1_GPIO_Port,PATH_SW1_Pin,GPIO_PIN_SET);//CLOCK
116
-		printf("Function : %s Line %d \r\n",__func__,__LINE__);
117
-		break;
118
-	case ATT_SelfTest1_ON 		 :
119
-        HAL_GPIO_WritePin(_PATH_SW1_GPIO_Port,_PATH_SW1_Pin,GPIO_PIN_SET);//CLOCK
120
-        HAL_GPIO_WritePin(PATH_SW1_GPIO_Port,PATH_SW1_Pin,GPIO_PIN_RESET);//CLOCK
121
-		printf("Function : %s Line %d \r\n",__func__,__LINE__);
122
-		break;
123
-	case ATTDL2  				 :
124
-		printf("Function : %s Line %d \r\n",__func__,__LINE__);
125
-		tmp_h = data[BLUECELL_DATA];
126
-		tmp_l = data[BLUECELL_DATA + 1];
127
-		ret += ((tmp_h << 8) & 0xFF00);
197
+//        PE43711_atten_ctrl(ALL_ATT.ATT_DL1,val);
198
+
199
+    }
200
+    if(Curr.ATT_ALC3_H != Prev.ATT_ALC3_H
201
+     ||Curr.ATT_ALC3_L != Prev.ATT_ALC3_L){
202
+        tmp_h = Curr.ATT_ALC3_H;
203
+        tmp_l = Curr.ATT_ALC3_L;
204
+        ret += ((tmp_h << 8) & 0xFF00);
128
 		ret += (tmp_l & 0x00FF);
205
 		ret += (tmp_l & 0x00FF);
129
 		ret /= 100;
206
 		ret /= 100;
130
         val = PE43711_DataToHexConvert(ret);
207
         val = PE43711_DataToHexConvert(ret);
131
-        PE43711_atten_ctrl(ALL_ATT.ATT_DL2,val);
132
-
133
-		printf("tmp_h : %x tmp_l : %x , ret : %x ,%f ,tmp %f \r\n",tmp_h,tmp_l,ret,tmp );
134
-
135
-		break;
136
-	case ATT_DL2_PATH_OFF		 :
137
-        HAL_GPIO_WritePin(PATH_EN_DL2_GPIO_Port,PATH_EN_DL2_Pin,GPIO_PIN_SET);//CLOCK
138
-		printf("Function : %s Line %d \r\n",__func__,__LINE__);
139
-		break;
140
-	case ATT_DL2_PATH_ON		 :
141
-        HAL_GPIO_WritePin(PATH_EN_DL2_GPIO_Port,PATH_EN_DL2_Pin,GPIO_PIN_RESET);//CLOCK
142
-		printf("Function : %s Line %d \r\n",__func__,__LINE__);
143
-		break;
144
-	case ATTUL2  				 :
145
-		printf("Function : %s Line %d \r\n",__func__,__LINE__);
146
-		tmp_h = data[BLUECELL_DATA];
147
-		tmp_l = data[BLUECELL_DATA + 1];
148
-		ret += ((tmp_h << 8) & 0xFF00);
208
+//        PE43711_atten_ctrl(ALL_ATT.ATT_DL1,val);
209
+
210
+    }
211
+    if(Curr.ATT_ALC4_H != Prev.ATT_ALC4_H
212
+     ||Curr.ATT_ALC4_L != Prev.ATT_ALC4_L){
213
+        tmp_h = Curr.ATT_ALC4_H;
214
+        tmp_l = Curr.ATT_ALC4_L;
215
+        ret += ((tmp_h << 8) & 0xFF00);
149
 		ret += (tmp_l & 0x00FF);
216
 		ret += (tmp_l & 0x00FF);
150
 		ret /= 100;
217
 		ret /= 100;
151
         val = PE43711_DataToHexConvert(ret);
218
         val = PE43711_DataToHexConvert(ret);
152
-        PE43711_atten_ctrl(ALL_ATT.ATT_UL2,val);
219
+//        PE43711_atten_ctrl(ALL_ATT.ATT_DL1,val);
153
 
220
 
154
-		printf("tmp_h : %x tmp_l : %x , ret : %x ,%f ,tmp %f \r\n",tmp_h,tmp_l,ret,tmp );
221
+    }
155
 
222
 
156
-		break;
157
-	case ATT_UL2_PATH_OFF 		 :
158
-        HAL_GPIO_WritePin(PATH_EN_UL2_GPIO_Port,PATH_EN_UL2_Pin,GPIO_PIN_SET);//CLOCK
159
-		printf("Function : %s Line %d \r\n",__func__,__LINE__);
160
-		break;
161
-	case ATT_UL2_PATH_ON		 :
162
-        HAL_GPIO_WritePin(PATH_EN_UL2_GPIO_Port,PATH_EN_UL2_Pin,GPIO_PIN_RESET);//CLOCK
163
-		printf("Function : %s Line %d \r\n",__func__,__LINE__);
164
-		break;
165
-	case ATT_SelfTest2_OFF		 :
166
-        HAL_GPIO_WritePin(_PATH_SW2_GPIO_Port,_PATH_SW2_Pin,GPIO_PIN_RESET);//CLOCK
167
-        HAL_GPIO_WritePin(PATH_SW2_GPIO_Port,PATH_SW2_Pin,GPIO_PIN_SET);//CLOCK
168
-		printf("Function : %s Line %d \r\n",__func__,__LINE__);
169
-		break;
170
-	case ATT_SelfTest2_ON :
171
-        HAL_GPIO_WritePin(PATH_SW2_GPIO_Port,PATH_SW2_Pin,GPIO_PIN_RESET);//CLOCK
172
-        HAL_GPIO_WritePin(_PATH_SW2_GPIO_Port,_PATH_SW2_Pin,GPIO_PIN_SET);//CLOCK
173
-        
174
-		printf("Function : %s Line %d \r\n",__func__,__LINE__);
175
-		break;
176
-	case ATTDL3  :
177
-		printf("Function : %s Line %d \r\n",__func__,__LINE__);
178
-		tmp_h = data[BLUECELL_DATA];
179
-		tmp_l = data[BLUECELL_DATA + 1];
180
-		ret += ((tmp_h << 8) & 0xFF00);
223
+    
224
+    if(Curr.ATT_AGC1_H != Prev.ATT_AGC1_H
225
+     ||Curr.ATT_AGC1_L != Prev.ATT_AGC1_L){
226
+        tmp_h = Curr.ATT_AGC1_H;
227
+        tmp_l = Curr.ATT_AGC1_L;
228
+        ret += ((tmp_h << 8) & 0xFF00);
181
 		ret += (tmp_l & 0x00FF);
229
 		ret += (tmp_l & 0x00FF);
182
 		ret /= 100;
230
 		ret /= 100;
183
         val = PE43711_DataToHexConvert(ret);
231
         val = PE43711_DataToHexConvert(ret);
184
-        PE43711_atten_ctrl(ALL_ATT.ATT_DL3,val);
185
-
186
-		printf("tmp_h : %x tmp_l : %x , ret : %x ,%f ,tmp %f \r\n",tmp_h,tmp_l,ret,tmp );
187
-
188
-		break;
189
-	case ATT_DL3_PATH_OFF :
190
-        HAL_GPIO_WritePin(PATH_EN_DL3_GPIO_Port,PATH_EN_DL3_Pin,GPIO_PIN_SET);//CLOCK
191
-		printf("Function : %s Line %d \r\n",__func__,__LINE__);
192
-		break;
193
-	case ATT_DL3_PATH_ON :
194
-        HAL_GPIO_WritePin(PATH_EN_DL3_GPIO_Port,PATH_EN_DL3_Pin,GPIO_PIN_RESET);//CLOCK
195
-		printf("Function : %s Line %d \r\n",__func__,__LINE__);
196
-		break;
197
-	case ATTUL3  :
198
-		printf("Function : %s Line %d \r\n",__func__,__LINE__);
199
-		tmp_h = data[BLUECELL_DATA];
200
-		tmp_l = data[BLUECELL_DATA + 1];
201
-		ret += ((tmp_h << 8) & 0xFF00);
232
+//        PE43711_atten_ctrl(ALL_ATT.ATT_DL1,val);
233
+
234
+    }
235
+    if(Curr.ATT_AGC2_H != Prev.ATT_AGC2_H
236
+     ||Curr.ATT_AGC2_L != Prev.ATT_AGC2_L){
237
+        tmp_h = Curr.ATT_AGC2_H;
238
+        tmp_l = Curr.ATT_AGC2_L;
239
+        ret += ((tmp_h << 8) & 0xFF00);
202
 		ret += (tmp_l & 0x00FF);
240
 		ret += (tmp_l & 0x00FF);
203
 		ret /= 100;
241
 		ret /= 100;
204
         val = PE43711_DataToHexConvert(ret);
242
         val = PE43711_DataToHexConvert(ret);
205
-        PE43711_atten_ctrl(ALL_ATT.ATT_UL3,val);
206
-
207
-		printf("tmp_h : %x tmp_l : %x , ret : %x ,%f ,tmp %f \r\n",tmp_h,tmp_l,ret,tmp );
208
-
209
-		break;
210
-	case ATT_UL3_PATH_OFF :
211
-        HAL_GPIO_WritePin(PATH_EN_UL3_GPIO_Port,PATH_EN_UL3_Pin,GPIO_PIN_SET);//CLOCK
212
-		printf("Function : %s Line %d \r\n",__func__,__LINE__);
213
-		break;
214
-	case ATT_UL3_PATH_ON :
215
-        HAL_GPIO_WritePin(PATH_EN_UL3_GPIO_Port,PATH_EN_UL3_Pin,GPIO_PIN_RESET);//CLOCK
216
-		printf("Function : %s Line %d \r\n",__func__,__LINE__);
217
-		break;
218
-	case ATT_SelfTest3_OFF :
219
-        HAL_GPIO_WritePin(_PATH_SW3_GPIO_Port,_PATH_SW3_Pin,GPIO_PIN_RESET);//CLOCK
220
-        HAL_GPIO_WritePin(PATH_SW3_GPIO_Port,PATH_SW3_Pin,GPIO_PIN_SET);//CLOCK
221
-        
222
-		printf("Function : %s Line %d \r\n",__func__,__LINE__);
223
-		break;
224
-	case ATT_SelfTest3_ON :
225
-        HAL_GPIO_WritePin(PATH_SW3_GPIO_Port,PATH_SW3_Pin,GPIO_PIN_RESET);//CLOCK
226
-        HAL_GPIO_WritePin(_PATH_SW3_GPIO_Port,_PATH_SW3_Pin,GPIO_PIN_SET);//CLOCK
227
-        
228
-		printf("Function : %s Line %d \r\n",__func__,__LINE__);
229
-		break;
230
-	case ATTDL4  :
231
-		printf("Function : %s Line %d \r\n",__func__,__LINE__);
232
-		tmp_h = data[BLUECELL_DATA];
233
-		tmp_l = data[BLUECELL_DATA + 1];
234
-		ret += ((tmp_h << 8) & 0xFF00);
243
+//        PE43711_atten_ctrl(ALL_ATT.ATT_DL1,val);
244
+
245
+    }
246
+    if(Curr.ATT_AGC3_H != Prev.ATT_AGC3_H
247
+     ||Curr.ATT_AGC3_L != Prev.ATT_AGC3_L){
248
+        tmp_h = Curr.ATT_AGC3_H;
249
+        tmp_l = Curr.ATT_AGC3_L;
250
+        ret += ((tmp_h << 8) & 0xFF00);
235
 		ret += (tmp_l & 0x00FF);
251
 		ret += (tmp_l & 0x00FF);
236
 		ret /= 100;
252
 		ret /= 100;
237
         val = PE43711_DataToHexConvert(ret);
253
         val = PE43711_DataToHexConvert(ret);
238
-        PE43711_atten_ctrl(ALL_ATT.ATT_DL4,val);
254
+//        PE43711_atten_ctrl(ALL_ATT.ATT_DL1,val);
255
+
256
+    }
257
+    if(Curr.ATT_AGC4_H != Prev.ATT_AGC4_H
258
+     ||Curr.ATT_AGC4_L != Prev.ATT_AGC4_L){
259
+        tmp_h = Curr.ATT_AGC4_H;
260
+        tmp_l = Curr.ATT_AGC4_L;
261
+        ret += ((tmp_h << 8) & 0xFF00);
262
+		ret += (tmp_l & 0x00FF);
263
+		ret /= 100;
264
+        val = PE43711_DataToHexConvert(ret);
265
+//        PE43711_atten_ctrl(ALL_ATT.ATT_DL1,val);
266
+
267
+    }
268
+#endif // PYJ.2020.04.21_END -- 
269
+     
270
+}
271
+void Bluecell_DataCopy(){
272
+
273
+}
274
+bool Bluecell_Operate(uint8_t* data){
275
+  uint8_t datatype = data[BLUECELL_TYPE];
239
 
276
 
240
-		printf("tmp_h : %x tmp_l : %x , ret : %x ,%f ,tmp %f \r\n",tmp_h,tmp_l,ret,tmp );
277
+  uint16_t tmp_h = 0,tmp_l = 0;
278
+  double ret = 0 ,tmp = 0.1;
279
+  uint8_t val = 0;
280
+  uint8_t i = 0;
281
+  switch(datatype){
282
+	case ATTSET 				 :
283
+		printf("Function : %s Line %d \r\n",__func__,__LINE__);
284
+        bluecell_Currdatastatus.ATT_DL1_H = data[BLUECELL_DATA + i++];
285
+        bluecell_Currdatastatus.ATT_DL1_L = data[BLUECELL_DATA + i++];
286
+        bluecell_Currdatastatus.ATT_DL2_H = data[BLUECELL_DATA + i++];
287
+        bluecell_Currdatastatus.ATT_DL2_L = data[BLUECELL_DATA + i++];
288
+        bluecell_Currdatastatus.ATT_DL3_H = data[BLUECELL_DATA + i++];
289
+        bluecell_Currdatastatus.ATT_DL3_L = data[BLUECELL_DATA + i++];
290
+        bluecell_Currdatastatus.ATT_DL4_H = data[BLUECELL_DATA + i++];
291
+        bluecell_Currdatastatus.ATT_DL4_L = data[BLUECELL_DATA + i++];
292
+
293
+        bluecell_Currdatastatus.ATT_UL1_H = data[BLUECELL_DATA + i++];
294
+        bluecell_Currdatastatus.ATT_UL1_L = data[BLUECELL_DATA + i++];
295
+        bluecell_Currdatastatus.ATT_UL2_H = data[BLUECELL_DATA + i++];
296
+        bluecell_Currdatastatus.ATT_UL2_L = data[BLUECELL_DATA + i++];
297
+        bluecell_Currdatastatus.ATT_UL3_H = data[BLUECELL_DATA + i++];
298
+        bluecell_Currdatastatus.ATT_UL3_L = data[BLUECELL_DATA + i++];
299
+        bluecell_Currdatastatus.ATT_UL4_H = data[BLUECELL_DATA + i++];
300
+        bluecell_Currdatastatus.ATT_UL4_L = data[BLUECELL_DATA + i++];
301
+     //   memcpy(&bluecell_Currdatastatus.ATT_DL1_H,&data[BLUECELL_DATA],32);
302
+//		bluecell_Currdatastatus.ATT_DL1_H =  data[BLUECELL_DATA + i++];
303
+//		bluecell_Currdatastatus.ATT_DL1_L =  data[BLUECELL_DATA + 1];
304
+        /*
305
+            Atten Ctrl Function
306
+        */
307
+		CompareAttenData(bluecell_Currdatastatus,bluecell_Prevdatastatus);
308
+//		printf("ret : %f ,tmp %f \r\n",ret,tmp );
309
+		break;
310
+	case ATT_DL1_PATH 		 :
311
+        if(data[BLUECELL_DATA]==0){
312
+            HAL_GPIO_WritePin(PATH_EN_DL1_GPIO_Port,PATH_EN_DL1_Pin,GPIO_PIN_SET);//CLOCK
313
+            printf("ATT_DL1_PATH OFF\r\n");
314
+        }
315
+        else{
316
+            HAL_GPIO_WritePin(PATH_EN_DL1_GPIO_Port,PATH_EN_DL1_Pin,GPIO_PIN_RESET);//CLOCK        
317
+            printf("ATT_DL1_PATH ON\r\n");
318
+        }
319
+		break;
320
+	
321
+
322
+		break;
323
+	case ATT_UL1_PATH        :
324
+        if(data[BLUECELL_DATA]==0){
325
+        HAL_GPIO_WritePin(PATH_EN_UL1_GPIO_Port,PATH_EN_UL1_Pin,GPIO_PIN_SET);//CLOCK
326
+        }
327
+        else{
328
+            HAL_GPIO_WritePin(PATH_EN_UL1_GPIO_Port,PATH_EN_UL1_Pin,GPIO_PIN_RESET);//CLOCK
241
 
329
 
330
+        }
331
+        printf("Function : %s Line %d \r\n",__func__,__LINE__);
242
 		break;
332
 		break;
243
-	case ATT_DL4_PATH_OFF :
244
-        HAL_GPIO_WritePin(PATH_EN_DL4_GPIO_Port,PATH_EN_DL4_Pin,GPIO_PIN_SET);//CLOCK        
333
+	case ATT_SelfTest1		 :
334
+        if(data[BLUECELL_DATA]==0){
335
+        HAL_GPIO_WritePin(_PATH_SW1_GPIO_Port,_PATH_SW1_Pin,GPIO_PIN_RESET);//CLOCK
336
+        HAL_GPIO_WritePin(PATH_SW1_GPIO_Port,PATH_SW1_Pin,GPIO_PIN_SET);//CLOCK
337
+        }
338
+        else{
339
+            HAL_GPIO_WritePin(_PATH_SW1_GPIO_Port,_PATH_SW1_Pin,GPIO_PIN_SET);//CLOCK
340
+            HAL_GPIO_WritePin(PATH_SW1_GPIO_Port,PATH_SW1_Pin,GPIO_PIN_RESET);//CLOCK
341
+        }
245
 		printf("Function : %s Line %d \r\n",__func__,__LINE__);
342
 		printf("Function : %s Line %d \r\n",__func__,__LINE__);
246
 		break;
343
 		break;
247
-	case ATT_DL4_PATH_ON :
248
-        HAL_GPIO_WritePin(PATH_EN_DL4_GPIO_Port,PATH_EN_DL4_Pin,GPIO_PIN_RESET);//CLOCK
344
+	case ATT_DL2_PATH		 :
345
+        if(data[BLUECELL_DATA]==0){
346
+        HAL_GPIO_WritePin(PATH_EN_DL2_GPIO_Port,PATH_EN_DL2_Pin,GPIO_PIN_SET);//CLOCK
347
+        }
348
+        else{
349
+            HAL_GPIO_WritePin(PATH_EN_DL2_GPIO_Port,PATH_EN_DL2_Pin,GPIO_PIN_RESET);//CLOCK
350
+        }
249
 		printf("Function : %s Line %d \r\n",__func__,__LINE__);
351
 		printf("Function : %s Line %d \r\n",__func__,__LINE__);
250
 		break;
352
 		break;
251
-	case ATTUL4  :
252
-		printf("Function : %s Line %d \r\n",__func__,__LINE__);
253
-		tmp_h = data[BLUECELL_DATA];
254
-		tmp_l = data[BLUECELL_DATA + 1];
255
-		ret += ((tmp_h << 8) & 0xFF00);
256
-		ret += (tmp_l & 0x00FF);
257
-		ret /= 100;
258
-        val = PE43711_DataToHexConvert(ret);
259
-        PE43711_atten_ctrl(ALL_ATT.ATT_UL4,val);
260
-
261
-		printf("tmp_h : %x tmp_l : %x , ret : %x ,%f ,tmp %f \r\n",tmp_h,tmp_l,ret,tmp );
262
 
353
 
263
 		break;
354
 		break;
264
-	case ATT_UL4_PATH_OFF:
265
-        HAL_GPIO_WritePin(PATH_EN_UL4_GPIO_Port,PATH_EN_UL4_Pin,GPIO_PIN_SET);//CLOCK
355
+	case ATT_UL2_PATH 		 :
356
+        if(data[BLUECELL_DATA]==0){
357
+        HAL_GPIO_WritePin(PATH_EN_UL2_GPIO_Port,PATH_EN_UL2_Pin,GPIO_PIN_SET);//CLOCK
358
+        }
359
+        else{
360
+            HAL_GPIO_WritePin(PATH_EN_UL2_GPIO_Port,PATH_EN_UL2_Pin,GPIO_PIN_RESET);//CLOCK
361
+        }
362
+		break;
363
+	case ATT_SelfTest2		 :
364
+        if(data[BLUECELL_DATA]==0){
365
+        HAL_GPIO_WritePin(_PATH_SW2_GPIO_Port,_PATH_SW2_Pin,GPIO_PIN_RESET);//CLOCK
366
+        HAL_GPIO_WritePin(PATH_SW2_GPIO_Port,PATH_SW2_Pin,GPIO_PIN_SET);//CLOCK
367
+        }else{
368
+            HAL_GPIO_WritePin(PATH_SW2_GPIO_Port,PATH_SW2_Pin,GPIO_PIN_RESET);//CLOCK
369
+            HAL_GPIO_WritePin(_PATH_SW2_GPIO_Port,_PATH_SW2_Pin,GPIO_PIN_SET);//CLOCK
370
+        }
266
 		printf("Function : %s Line %d \r\n",__func__,__LINE__);
371
 		printf("Function : %s Line %d \r\n",__func__,__LINE__);
267
 		break;
372
 		break;
268
-	case ATT_UL4_PATH_ON :
269
-        HAL_GPIO_WritePin(PATH_EN_UL4_GPIO_Port,PATH_EN_UL4_Pin,GPIO_PIN_RESET);//CLOCK
373
+	case ATT_DL3_PATH :
374
+        if(data[BLUECELL_DATA]==0){
375
+        HAL_GPIO_WritePin(PATH_EN_DL3_GPIO_Port,PATH_EN_DL3_Pin,GPIO_PIN_SET);//CLOCK
376
+        }
377
+        else{
378
+            HAL_GPIO_WritePin(PATH_EN_DL3_GPIO_Port,PATH_EN_DL3_Pin,GPIO_PIN_RESET);//CLOCK
379
+        }
270
 		printf("Function : %s Line %d \r\n",__func__,__LINE__);
380
 		printf("Function : %s Line %d \r\n",__func__,__LINE__);
271
 		break;
381
 		break;
272
-	case ATT_SelfTest4_OFF :
273
-        HAL_GPIO_WritePin(_PATH_SW4_GPIO_Port,_PATH_SW4_Pin,GPIO_PIN_RESET);//CLOCK
274
-        HAL_GPIO_WritePin(PATH_SW4_GPIO_Port,PATH_SW4_Pin,GPIO_PIN_SET);//CLOCK
382
+	case ATT_UL3_PATH :
383
+        if(data[BLUECELL_DATA]==0){
384
+        HAL_GPIO_WritePin(PATH_EN_UL3_GPIO_Port,PATH_EN_UL3_Pin,GPIO_PIN_SET);//CLOCK
385
+        }
386
+        else{
387
+            HAL_GPIO_WritePin(PATH_EN_UL3_GPIO_Port,PATH_EN_UL3_Pin,GPIO_PIN_RESET);//CLOCK
388
+        }
275
 		printf("Function : %s Line %d \r\n",__func__,__LINE__);
389
 		printf("Function : %s Line %d \r\n",__func__,__LINE__);
276
 		break;
390
 		break;
277
-	case ATT_SelfTest4_ON :
278
-        HAL_GPIO_WritePin(_PATH_SW4_GPIO_Port,_PATH_SW4_Pin,GPIO_PIN_SET);//CLOCK
279
-        HAL_GPIO_WritePin(PATH_SW4_GPIO_Port,PATH_SW4_Pin,GPIO_PIN_RESET);//CLOCK
391
+	case ATT_SelfTest3 :
392
+        if(data[BLUECELL_DATA]==0){
393
+            HAL_GPIO_WritePin(_PATH_SW3_GPIO_Port,_PATH_SW3_Pin,GPIO_PIN_RESET);//CLOCK
394
+            HAL_GPIO_WritePin(PATH_SW3_GPIO_Port,PATH_SW3_Pin,GPIO_PIN_SET);//CLOCK
395
+        }
396
+        else{
397
+            HAL_GPIO_WritePin(PATH_SW3_GPIO_Port,PATH_SW3_Pin,GPIO_PIN_RESET);//CLOCK
398
+            HAL_GPIO_WritePin(_PATH_SW3_GPIO_Port,_PATH_SW3_Pin,GPIO_PIN_SET);//CLOCK
399
+        }
280
 		printf("Function : %s Line %d \r\n",__func__,__LINE__);
400
 		printf("Function : %s Line %d \r\n",__func__,__LINE__);
281
 		break;
401
 		break;
402
+	case ATT_DL4_PATH :
403
+        if(data[BLUECELL_DATA]==0){
404
+            HAL_GPIO_WritePin(PATH_EN_DL4_GPIO_Port,PATH_EN_DL4_Pin,GPIO_PIN_SET);//CLOCK        
405
+        }else{
406
+
407
+            HAL_GPIO_WritePin(PATH_EN_DL4_GPIO_Port,PATH_EN_DL4_Pin,GPIO_PIN_RESET);//CLOCK
408
+        }
409
+		printf("Function : %s Line %d \r\n",__func__,__LINE__);
410
+		break;
411
+	case ATT_UL4_PATH:
412
+        if(data[BLUECELL_DATA]==0){
413
+        HAL_GPIO_WritePin(PATH_EN_UL4_GPIO_Port,PATH_EN_UL4_Pin,GPIO_PIN_SET);//CLOCK
414
+        }
415
+        else{
416
+
417
+            HAL_GPIO_WritePin(PATH_EN_UL4_GPIO_Port,PATH_EN_UL4_Pin,GPIO_PIN_RESET);//CLOCK
418
+        }
419
+		printf("Function : %s Line %d \r\n",__func__,__LINE__);
420
+		break;
421
+	case ATT_SelfTest4 :
422
+	  if(data[BLUECELL_DATA]==0){
423
+	    HAL_GPIO_WritePin(_PATH_SW4_GPIO_Port,_PATH_SW4_Pin,GPIO_PIN_RESET);//CLOCK
424
+	    HAL_GPIO_WritePin(PATH_SW4_GPIO_Port,PATH_SW4_Pin,GPIO_PIN_SET);//CLOCK
425
+	  }else{
426
+	    HAL_GPIO_WritePin(_PATH_SW4_GPIO_Port,_PATH_SW4_Pin,GPIO_PIN_SET);//CLOCK
427
+	    HAL_GPIO_WritePin(PATH_SW4_GPIO_Port,PATH_SW4_Pin,GPIO_PIN_RESET);//CLOCK
428
+	  }
429
+		printf("Function : %s Line %d \r\n",__func__,__LINE__);
430
+		break;
431
+    case ALC1_EN :
432
+        if(data[BLUECELL_DATA]==0){
433
+            bluecell_Currdatastatus.ATT_ALC1_ONOFF = false;
434
+        }
435
+        else{
436
+            bluecell_Currdatastatus.ATT_ALC1_ONOFF = true;
437
+        }
438
+    break;
439
+    case ALC2_EN :
440
+        if(data[BLUECELL_DATA]==0){
441
+            bluecell_Currdatastatus.ATT_ALC2_ONOFF = false;
442
+        }
443
+        else{
444
+            bluecell_Currdatastatus.ATT_ALC2_ONOFF = true;
445
+        }
446
+    break;
447
+    case ALC3_EN :
448
+        if(data[BLUECELL_DATA]==0){
449
+            bluecell_Currdatastatus.ATT_ALC3_ONOFF = false;
450
+        }
451
+        else{
452
+            bluecell_Currdatastatus.ATT_ALC3_ONOFF = true;
453
+        }
454
+    break;
455
+    case ALC4_EN :
456
+        if(data[BLUECELL_DATA]==0){
457
+            bluecell_Currdatastatus.ATT_ALC4_ONOFF = false;
458
+        }
459
+        else{
460
+            bluecell_Currdatastatus.ATT_ALC4_ONOFF = true;
461
+        }
462
+    break;
463
+    case AGC1_EN :
464
+        if(data[BLUECELL_DATA]==0){
465
+            bluecell_Currdatastatus.ATT_AGC1_ONOFF = false;
466
+        }
467
+        else{
468
+            bluecell_Currdatastatus.ATT_AGC1_ONOFF = true;
469
+        }
470
+    break;
471
+    case AGC2_EN :
472
+        if(data[BLUECELL_DATA]==0){
473
+            bluecell_Currdatastatus.ATT_AGC2_ONOFF = false;
474
+        }
475
+        else{
476
+            bluecell_Currdatastatus.ATT_AGC2_ONOFF = true;
477
+        }
478
+
479
+    break;
480
+    case AGC3_EN :
481
+        if(data[BLUECELL_DATA]==0){
482
+            bluecell_Currdatastatus.ATT_AGC3_ONOFF = false;
483
+        }
484
+        else{
485
+            bluecell_Currdatastatus.ATT_AGC3_ONOFF = true;
486
+        }
487
+
488
+    break;
489
+    case AGC4_EN :
490
+        if(data[BLUECELL_DATA]==0){
491
+            bluecell_Currdatastatus.ATT_AGC4_ONOFF = false;
492
+        }
493
+        else{
494
+            bluecell_Currdatastatus.ATT_AGC4_ONOFF = true;
495
+        }
496
+
497
+      break;
282
     case Bluecell_StatusReq:
498
     case Bluecell_StatusReq:
283
-        DataStatusGet();
284
-        Uart1_Data_Send(&bluecell_datastatus, sizeof(bluecell_datastatus));
499
+        DataStatusSet();
500
+        Uart1_Data_Send(&bluecell_Currdatastatus, sizeof(bluecell_Currdatastatus) + 1 );
285
         break;
501
         break;
286
   }
502
   }
287
   return true;
503
   return true;
288
 }
504
 }
289
-void DataStatusGet(void){
290
-        bluecell_datastatus.bluecell_header = 0xbe;
291
-        bluecell_datastatus.bluecell_type = Bluecell_StatusReq;
292
-        bluecell_datastatus.bluecell_length = sizeof(bluecell_datastatus) - 1;    
293
-        bluecell_datastatus.bluecell_crcindex = 56;
294
-        bluecell_datastatus.Selftest0 = HAL_GPIO_ReadPin(_PATH_SW1_GPIO_Port,_PATH_SW1_Pin);
295
-        bluecell_datastatus.Selftest1 = HAL_GPIO_ReadPin(_PATH_SW2_GPIO_Port,_PATH_SW2_Pin);
296
-        bluecell_datastatus.Selftest2 = HAL_GPIO_ReadPin(_PATH_SW3_GPIO_Port,_PATH_SW3_Pin);
297
-        bluecell_datastatus.Selftest3 = HAL_GPIO_ReadPin(_PATH_SW4_GPIO_Port,_PATH_SW4_Pin);
298
-        bluecell_datastatus.ATT_DL1_PATH = HAL_GPIO_ReadPin(PATH_EN_DL1_GPIO_Port,PATH_EN_UL1_Pin);//CLOCK;
299
-        bluecell_datastatus.ATT_DL2_PATH = HAL_GPIO_ReadPin(PATH_EN_DL2_GPIO_Port,PATH_EN_UL2_Pin);//CLOCK;
300
-        bluecell_datastatus.ATT_DL3_PATH = HAL_GPIO_ReadPin(PATH_EN_DL3_GPIO_Port,PATH_EN_UL3_Pin);//CLOCK;
301
-        bluecell_datastatus.ATT_DL4_PATH = HAL_GPIO_ReadPin(PATH_EN_DL4_GPIO_Port,PATH_EN_UL4_Pin);//CLOCK;
302
-        bluecell_datastatus.ATT_UL1_PATH = HAL_GPIO_ReadPin(PATH_EN_UL1_GPIO_Port,PATH_EN_UL1_Pin);//CLOCK;
303
-        bluecell_datastatus.ATT_UL2_PATH = HAL_GPIO_ReadPin(PATH_EN_UL2_GPIO_Port,PATH_EN_UL2_Pin);//CLOCK;
304
-        bluecell_datastatus.ATT_UL3_PATH = HAL_GPIO_ReadPin(PATH_EN_UL3_GPIO_Port,PATH_EN_UL3_Pin);//CLOCK;
305
-        bluecell_datastatus.ATT_UL4_PATH = HAL_GPIO_ReadPin(PATH_EN_UL4_GPIO_Port,PATH_EN_UL4_Pin);//CLOCK;
306
-        bluecell_datastatus.ATT_DL1_H ;
307
-        bluecell_datastatus.ATT_DL1_L;
308
-        bluecell_datastatus.ATT_DL2_H;
309
-        bluecell_datastatus.ATT_DL2_L;
310
-        bluecell_datastatus.ATT_DL3_H;
311
-        bluecell_datastatus.ATT_DL3_L;
312
-        bluecell_datastatus.ATT_DL4_H;
313
-        bluecell_datastatus.ATT_DL4_L;
314
-        bluecell_datastatus.ATT_UL1_H;
315
-        bluecell_datastatus.ATT_UL1_L;
316
-        bluecell_datastatus.ATT_UL2_H;
317
-        bluecell_datastatus.ATT_UL2_L;
318
-        bluecell_datastatus.ATT_UL3_H;
319
-        bluecell_datastatus.ATT_UL3_L;
320
-        bluecell_datastatus.ATT_UL4_H;
321
-        bluecell_datastatus.ATT_UL4_L;
322
-        bluecell_datastatus.DET_DL1_IN_H;
323
-        bluecell_datastatus.DET_DL1_IN_L;
324
-        bluecell_datastatus.DET_DL2_IN_H;
325
-        bluecell_datastatus.DET_DL2_IN_L;
326
-        bluecell_datastatus.DET_DL3_IN_H;
327
-        bluecell_datastatus.DET_DL3_IN_L;
328
-        bluecell_datastatus.DET_DL4_IN_H;
329
-        bluecell_datastatus.DET_DL4_IN_L;
330
-        bluecell_datastatus.DET_UL1_IN_H;
331
-        bluecell_datastatus.DET_UL1_IN_L;
332
-        bluecell_datastatus.DET_UL2_IN_H;
333
-        bluecell_datastatus.DET_UL2_IN_L;
334
-        bluecell_datastatus.DET_UL3_IN_H;
335
-        bluecell_datastatus.DET_UL3_IN_L;
336
-        bluecell_datastatus.DET_UL4_IN_H;
337
-        bluecell_datastatus.DET_UL4_IN_L;
338
-        bluecell_datastatus.DET_TEMP_H;
339
-        bluecell_datastatus.DET_TEMP_L;
340
-        bluecell_datastatus.ATT_AGC_ONOFF;
341
-        bluecell_datastatus.ATT_ALC_ONOFF;
342
-        bluecell_datastatus.ATT_AGC_H;
343
-        bluecell_datastatus.ATT_AGC_L;
344
-        bluecell_datastatus.ATT_ALC_H;
345
-        bluecell_datastatus.ATT_ALC_L;
505
+void DataStatusSet(void){
506
+        bluecell_Currdatastatus.bluecell_header = 0xbe;
507
+        bluecell_Currdatastatus.bluecell_type = Bluecell_StatusReq;
508
+        bluecell_Currdatastatus.bluecell_length = sizeof(bluecell_Currdatastatus) - 2;    
509
+        bluecell_Currdatastatus.bluecell_crcindex = 56;
510
+        bluecell_Currdatastatus.Selftest0 = HAL_GPIO_ReadPin(_PATH_SW1_GPIO_Port,_PATH_SW1_Pin);
511
+        bluecell_Currdatastatus.Selftest1 = HAL_GPIO_ReadPin(_PATH_SW2_GPIO_Port,_PATH_SW2_Pin);
512
+        bluecell_Currdatastatus.Selftest2 = HAL_GPIO_ReadPin(_PATH_SW3_GPIO_Port,_PATH_SW3_Pin);
513
+        bluecell_Currdatastatus.Selftest3 = HAL_GPIO_ReadPin(_PATH_SW4_GPIO_Port,_PATH_SW4_Pin);
514
+        bluecell_Currdatastatus.ATT_DL1_PATH = HAL_GPIO_ReadPin(PATH_EN_DL1_GPIO_Port,PATH_EN_UL1_Pin);//CLOCK;
515
+        bluecell_Currdatastatus.ATT_DL2_PATH = HAL_GPIO_ReadPin(PATH_EN_DL2_GPIO_Port,PATH_EN_UL2_Pin);//CLOCK;
516
+        bluecell_Currdatastatus.ATT_DL3_PATH = HAL_GPIO_ReadPin(PATH_EN_DL3_GPIO_Port,PATH_EN_UL3_Pin);//CLOCK;
517
+        bluecell_Currdatastatus.ATT_DL4_PATH = HAL_GPIO_ReadPin(PATH_EN_DL4_GPIO_Port,PATH_EN_UL4_Pin);//CLOCK;
518
+        bluecell_Currdatastatus.ATT_UL1_PATH = HAL_GPIO_ReadPin(PATH_EN_UL1_GPIO_Port,PATH_EN_UL1_Pin);//CLOCK;
519
+        bluecell_Currdatastatus.ATT_UL2_PATH = HAL_GPIO_ReadPin(PATH_EN_UL2_GPIO_Port,PATH_EN_UL2_Pin);//CLOCK;
520
+        bluecell_Currdatastatus.ATT_UL3_PATH = HAL_GPIO_ReadPin(PATH_EN_UL3_GPIO_Port,PATH_EN_UL3_Pin);//CLOCK;
521
+        bluecell_Currdatastatus.ATT_UL4_PATH = HAL_GPIO_ReadPin(PATH_EN_UL4_GPIO_Port,PATH_EN_UL4_Pin);//CLOCK;
522
+        bluecell_Currdatastatus.bluecell_crc = STH30_CreateCrc(&bluecell_Currdatastatus.bluecell_type, bluecell_Currdatastatus.bluecell_length);
523
+        /*bluecell_Currdatastatus.ATT_AGC1_ONOFF;
524
+        bluecell_Currdatastatus.ATT_ALC1_ONOFF;
525
+        bluecell_Currdatastatus.ATT_AGC2_ONOFF;
526
+        bluecell_Currdatastatus.ATT_ALC2_ONOFF;
527
+        bluecell_Currdatastatus.ATT_AGC3_ONOFF;
528
+        bluecell_Currdatastatus.ATT_ALC3_ONOFF;
529
+        bluecell_Currdatastatus.ATT_AGC4_ONOFF;
530
+        bluecell_Currdatastatus.ATT_ALC4_ONOFF;
531
+        bluecell_Currdatastatus.ATT_AGC1_H;
532
+        bluecell_Currdatastatus.ATT_AGC1_L;
533
+        bluecell_Currdatastatus.ATT_ALC1_H;
534
+        bluecell_Currdatastatus.ATT_ALC1_L;
535
+        bluecell_Currdatastatus.ATT_AGC2_H;
536
+        bluecell_Currdatastatus.ATT_AGC2_L;
537
+        bluecell_Currdatastatus.ATT_ALC2_H;
538
+        bluecell_Currdatastatus.ATT_ALC2_L;
539
+        bluecell_Currdatastatus.ATT_AGC3_H;
540
+        bluecell_Currdatastatus.ATT_AGC3_L;
541
+        bluecell_Currdatastatus.ATT_ALC3_H;
542
+        bluecell_Currdatastatus.ATT_ALC3_L;
543
+        bluecell_Currdatastatus.ATT_AGC4_H;
544
+        bluecell_Currdatastatus.ATT_AGC4_L;
545
+        bluecell_Currdatastatus.ATT_ALC4_H;
546
+        bluecell_Currdatastatus.ATT_ALC4_L;  */
346
 }
547
 }
347
 
548
 
348
 bool MBIC_Operate(uint8_t* data){
549
 bool MBIC_Operate(uint8_t* data){
@@ -350,7 +551,6 @@ bool MBIC_Operate(uint8_t* data){
350
 
551
 
351
 	switch(datatype){
552
 	switch(datatype){
352
 		case Alarm_Bit_List:
553
 		case Alarm_Bit_List:
353
-			// �븣由� 鍮꾪듃
354
 			Uart1_Data_Send(&Alarm_Status[0],MAX_ALARM_Len);
554
 			Uart1_Data_Send(&Alarm_Status[0],MAX_ALARM_Len);
355
 		break;
555
 		break;
356
 		case Alarm_Mask:
556
 		case Alarm_Mask:
@@ -428,3 +628,54 @@ bool MBIC_Operate(uint8_t* data){
428
 	return true;
628
 	return true;
429
 
629
 
430
 }
630
 }
631
+
632
+
633
+
634
+
635
+void ADC_Check(void){
636
+    if(AdcTimerCnt > 10){
637
+        bluecell_Currdatastatus.DET_DL1_IN_H 
638
+            = (uint16_t)((ADC1value[Bluecell_DET_DL1_ADC_INDEX_H] & 0xFF00) >> 8);
639
+        bluecell_Currdatastatus.DET_DL1_IN_L 
640
+            = (uint16_t)((ADC1value[Bluecell_DET_DL1_ADC_INDEX_L] & 0xFF00) >> 8);
641
+        bluecell_Currdatastatus.DET_DL2_IN_H 
642
+            = (uint16_t)((ADC1value[Bluecell_DET_DL2_ADC_INDEX_H] & 0xFF00) >> 8);
643
+        bluecell_Currdatastatus.DET_DL2_IN_L 
644
+            = (uint16_t)((ADC1value[Bluecell_DET_DL2_ADC_INDEX_L] & 0xFF00) >> 8);
645
+        bluecell_Currdatastatus.DET_DL3_IN_H 
646
+            = (uint16_t)((ADC1value[Bluecell_DET_DL3_ADC_INDEX_H] & 0xFF00) >> 8);
647
+        bluecell_Currdatastatus.DET_DL3_IN_L 
648
+            = (uint16_t)((ADC1value[Bluecell_DET_DL3_ADC_INDEX_L] & 0xFF00) >> 8);
649
+        bluecell_Currdatastatus.DET_DL4_IN_H 
650
+            = (uint16_t)((ADC1value[Bluecell_DET_DL4_ADC_INDEX_H] & 0xFF00) >> 8);
651
+        bluecell_Currdatastatus.DET_DL4_IN_L 
652
+            = (uint16_t)((ADC1value[Bluecell_DET_DL4_ADC_INDEX_L] & 0xFF00) >> 8);
653
+        bluecell_Currdatastatus.DET_UL1_IN_H 
654
+            = (uint16_t)((ADC1value[Bluecell_DET_UL1_ADC_INDEX_H] & 0xFF00) >> 8);
655
+        bluecell_Currdatastatus.DET_UL1_IN_L 
656
+            = (uint16_t)((ADC1value[Bluecell_DET_UL1_ADC_INDEX_L] & 0xFF00) >> 8);
657
+        bluecell_Currdatastatus.DET_UL2_IN_H 
658
+            = (uint16_t)((ADC1value[Bluecell_DET_UL2_ADC_INDEX_H] & 0xFF00) >> 8);
659
+        bluecell_Currdatastatus.DET_UL2_IN_L 
660
+            = (uint16_t)((ADC1value[Bluecell_DET_UL2_ADC_INDEX_L] & 0xFF00) >> 8);
661
+        bluecell_Currdatastatus.DET_UL3_IN_H 
662
+            = (uint16_t)((ADC1value[Bluecell_DET_UL3_ADC_INDEX_H] & 0xFF00) >> 8);
663
+        bluecell_Currdatastatus.DET_UL3_IN_L 
664
+            = (uint16_t)((ADC1value[Bluecell_DET_UL3_ADC_INDEX_L] & 0xFF00) >> 8);
665
+        bluecell_Currdatastatus.DET_UL4_IN_H 
666
+            = (uint16_t)((ADC1value[Bluecell_DET_UL4_ADC_INDEX_H] & 0xFF00) >> 8);
667
+        bluecell_Currdatastatus.DET_UL4_IN_L 
668
+            = (uint16_t)((ADC1value[Bluecell_DET_UL4_ADC_INDEX_L] & 0xFF00) >> 8);
669
+        bluecell_Currdatastatus.DET_TEMP_H  
670
+            =(uint16_t)((ADC1value[Bluecell_RFU_TEMP_ADC_INDEX_H] & 0xFF00) >> 8);
671
+        bluecell_Currdatastatus.DET_TEMP_L  
672
+            =(uint16_t)((ADC1value[Bluecell_RFU_TEMP_ADC_INDEX_L] & 0xFF00) >> 8);
673
+
674
+#if 0 // PYJ.2019.08.09_BEGIN --
675
+                                                     printf("Prev_data[%d] : %x",i,Prev_data[INDEX_DET_1_8G_DL_IN_H + i]);
676
+                                                     printf("%x\r\n",i,Prev_data[INDEX_DET_1_8G_DL_IN_L + i]);
677
+#endif // PYJ.2019.08.09_END --
678
+        AdcTimerCnt = 0;
679
+
680
+    }
681
+}

+ 1 - 1
Bluecell_Src/uart.c

@@ -85,7 +85,7 @@ void GetDataFromUartQueue(UART_HandleTypeDef *huart)
85
 //        printf("data cnt zero !!!  \r\n");
85
 //        printf("data cnt zero !!!  \r\n");
86
         //RF_Ctrl_Main(&uart_buf[Header]);
86
         //RF_Ctrl_Main(&uart_buf[Header]);
87
 //        HAL_UART_Transmit(dst, &temp_buf[BLUECELL_HEADER00], 11, 3000);
87
 //        HAL_UART_Transmit(dst, &temp_buf[BLUECELL_HEADER00], 11, 3000);
88
-#if 1 // PYJ.2019.07.15_BEGIN --
88
+#if 0 // PYJ.2019.07.15_BEGIN --
89
             for(int i = 0; i < cnt; i++){
89
             for(int i = 0; i < cnt; i++){
90
                 printf("%02x ",uart_buf[i]);
90
                 printf("%02x ",uart_buf[i]);
91
             }
91
             }

+ 6 - 3
Inc/main.h

@@ -32,7 +32,7 @@ extern "C" {
32
 
32
 
33
 /* Private includes ----------------------------------------------------------*/
33
 /* Private includes ----------------------------------------------------------*/
34
 /* USER CODE BEGIN Includes */
34
 /* USER CODE BEGIN Includes */
35
-
35
+#include "Bluecell_operate.h"
36
 /* USER CODE END Includes */
36
 /* USER CODE END Includes */
37
 
37
 
38
 /* Exported types ------------------------------------------------------------*/
38
 /* Exported types ------------------------------------------------------------*/
@@ -55,7 +55,8 @@ extern "C" {
55
 void Error_Handler(void);
55
 void Error_Handler(void);
56
 
56
 
57
 /* USER CODE BEGIN EFP */
57
 /* USER CODE BEGIN EFP */
58
-
58
+extern uint32_t ADC1value[Bluecell_ADC1_MaxLength / 2];
59
+extern uint32_t ADC3value[Bluecell_ADC3_MaxLength / 2];
59
 /* USER CODE END EFP */
60
 /* USER CODE END EFP */
60
 
61
 
61
 /* Private defines -----------------------------------------------------------*/
62
 /* Private defines -----------------------------------------------------------*/
@@ -73,6 +74,8 @@ void Error_Handler(void);
73
 #define DET_DL3_IN_GPIO_Port GPIOF
74
 #define DET_DL3_IN_GPIO_Port GPIOF
74
 #define DET_DL4_IN_Pin GPIO_PIN_10
75
 #define DET_DL4_IN_Pin GPIO_PIN_10
75
 #define DET_DL4_IN_GPIO_Port GPIOF
76
 #define DET_DL4_IN_GPIO_Port GPIOF
77
+#define RFU_TEMP_Pin GPIO_PIN_2
78
+#define RFU_TEMP_GPIO_Port GPIOC
76
 #define RFU_TX_Pin GPIO_PIN_2
79
 #define RFU_TX_Pin GPIO_PIN_2
77
 #define RFU_TX_GPIO_Port GPIOA
80
 #define RFU_TX_GPIO_Port GPIOA
78
 #define RFU_RX_Pin GPIO_PIN_3
81
 #define RFU_RX_Pin GPIO_PIN_3
@@ -158,7 +161,7 @@ void Error_Handler(void);
158
 #define ATT_EN_DL1_Pin GPIO_PIN_9
161
 #define ATT_EN_DL1_Pin GPIO_PIN_9
159
 #define ATT_EN_DL1_GPIO_Port GPIOB
162
 #define ATT_EN_DL1_GPIO_Port GPIOB
160
 /* USER CODE BEGIN Private defines */
163
 /* USER CODE BEGIN Private defines */
161
-#define ADC_EA 8
164
+
162
 /* USER CODE END Private defines */
165
 /* USER CODE END Private defines */
163
 
166
 
164
 #ifdef __cplusplus
167
 #ifdef __cplusplus

文件差异内容过多而无法显示
+ 66 - 56
STM32F103ZET_JDASMBIC.ioc


+ 20 - 4
Src/main.c

@@ -26,6 +26,7 @@
26
 #include <stdio.h>
26
 #include <stdio.h>
27
 #include "PE43711.h"
27
 #include "PE43711.h"
28
 #include "uart.h"
28
 #include "uart.h"
29
+#include "Bluecell_operate.h"
29
 /* USER CODE END Includes */
30
 /* USER CODE END Includes */
30
 
31
 
31
 /* Private typedef -----------------------------------------------------------*/
32
 /* Private typedef -----------------------------------------------------------*/
@@ -58,7 +59,8 @@ DMA_HandleTypeDef hdma_usart1_rx;
58
 DMA_HandleTypeDef hdma_usart1_tx;
59
 DMA_HandleTypeDef hdma_usart1_tx;
59
 
60
 
60
 /* USER CODE BEGIN PV */
61
 /* USER CODE BEGIN PV */
61
-uint32_t ADCvalue[ADC_EA];
62
+uint32_t ADC1value[Bluecell_ADC1_MaxLength / 2] = {0,};
63
+uint32_t ADC3value[Bluecell_ADC3_MaxLength / 2] = {0,};
62
 volatile uint32_t AdcTimerCnt = 0;
64
 volatile uint32_t AdcTimerCnt = 0;
63
 volatile uint32_t LedTimerCnt = 0;
65
 volatile uint32_t LedTimerCnt = 0;
64
 volatile uint32_t UartRxTimerCnt = 0;
66
 volatile uint32_t UartRxTimerCnt = 0;
@@ -143,8 +145,8 @@ int main(void)
143
   while(!(HAL_ADCEx_Calibration_Start(&hadc1)==HAL_OK));
145
   while(!(HAL_ADCEx_Calibration_Start(&hadc1)==HAL_OK));
144
   while(!(HAL_ADCEx_Calibration_Start(&hadc3)==HAL_OK));
146
   while(!(HAL_ADCEx_Calibration_Start(&hadc3)==HAL_OK));
145
   PE43711_PinInit();
147
   PE43711_PinInit();
146
-  HAL_ADC_Start_DMA(&hadc1, (uint32_t*)ADCvalue, 3);
147
-  HAL_ADC_Start_DMA(&hadc3, (uint32_t*)ADCvalue, 5);
148
+  HAL_ADC_Start_DMA(&hadc1, (uint32_t*)ADC1value, Bluecell_ADC1_MaxLength / 2);
149
+  HAL_ADC_Start_DMA(&hadc3, (uint32_t*)ADC3value, Bluecell_ADC3_MaxLength / 2);
148
   /* USER CODE END 2 */
150
   /* USER CODE END 2 */
149
 
151
 
150
   /* Infinite loop */
152
   /* Infinite loop */
@@ -271,7 +273,7 @@ static void MX_ADC1_Init(void)
271
   hadc1.Init.DiscontinuousConvMode = DISABLE;
273
   hadc1.Init.DiscontinuousConvMode = DISABLE;
272
   hadc1.Init.ExternalTrigConv = ADC_SOFTWARE_START;
274
   hadc1.Init.ExternalTrigConv = ADC_SOFTWARE_START;
273
   hadc1.Init.DataAlign = ADC_DATAALIGN_RIGHT;
275
   hadc1.Init.DataAlign = ADC_DATAALIGN_RIGHT;
274
-  hadc1.Init.NbrOfConversion = 3;
276
+  hadc1.Init.NbrOfConversion = 4;
275
   if (HAL_ADC_Init(&hadc1) != HAL_OK)
277
   if (HAL_ADC_Init(&hadc1) != HAL_OK)
276
   {
278
   {
277
     Error_Handler();
279
     Error_Handler();
@@ -287,6 +289,7 @@ static void MX_ADC1_Init(void)
287
   }
289
   }
288
   /** Configure Regular Channel 
290
   /** Configure Regular Channel 
289
   */
291
   */
292
+  sConfig.Channel = ADC_CHANNEL_5;
290
   sConfig.Rank = ADC_REGULAR_RANK_2;
293
   sConfig.Rank = ADC_REGULAR_RANK_2;
291
   if (HAL_ADC_ConfigChannel(&hadc1, &sConfig) != HAL_OK)
294
   if (HAL_ADC_ConfigChannel(&hadc1, &sConfig) != HAL_OK)
292
   {
295
   {
@@ -294,11 +297,20 @@ static void MX_ADC1_Init(void)
294
   }
297
   }
295
   /** Configure Regular Channel 
298
   /** Configure Regular Channel 
296
   */
299
   */
300
+  sConfig.Channel = ADC_CHANNEL_6;
297
   sConfig.Rank = ADC_REGULAR_RANK_3;
301
   sConfig.Rank = ADC_REGULAR_RANK_3;
298
   if (HAL_ADC_ConfigChannel(&hadc1, &sConfig) != HAL_OK)
302
   if (HAL_ADC_ConfigChannel(&hadc1, &sConfig) != HAL_OK)
299
   {
303
   {
300
     Error_Handler();
304
     Error_Handler();
301
   }
305
   }
306
+  /** Configure Regular Channel 
307
+  */
308
+  sConfig.Channel = ADC_CHANNEL_4;
309
+  sConfig.Rank = ADC_REGULAR_RANK_4;
310
+  if (HAL_ADC_ConfigChannel(&hadc1, &sConfig) != HAL_OK)
311
+  {
312
+    Error_Handler();
313
+  }
302
   /* USER CODE BEGIN ADC1_Init 2 */
314
   /* USER CODE BEGIN ADC1_Init 2 */
303
 
315
 
304
   /* USER CODE END ADC1_Init 2 */
316
   /* USER CODE END ADC1_Init 2 */
@@ -346,6 +358,7 @@ static void MX_ADC3_Init(void)
346
   }
358
   }
347
   /** Configure Regular Channel 
359
   /** Configure Regular Channel 
348
   */
360
   */
361
+  sConfig.Channel = ADC_CHANNEL_5;
349
   sConfig.Rank = ADC_REGULAR_RANK_2;
362
   sConfig.Rank = ADC_REGULAR_RANK_2;
350
   if (HAL_ADC_ConfigChannel(&hadc3, &sConfig) != HAL_OK)
363
   if (HAL_ADC_ConfigChannel(&hadc3, &sConfig) != HAL_OK)
351
   {
364
   {
@@ -353,6 +366,7 @@ static void MX_ADC3_Init(void)
353
   }
366
   }
354
   /** Configure Regular Channel 
367
   /** Configure Regular Channel 
355
   */
368
   */
369
+  sConfig.Channel = ADC_CHANNEL_6;
356
   sConfig.Rank = ADC_REGULAR_RANK_3;
370
   sConfig.Rank = ADC_REGULAR_RANK_3;
357
   if (HAL_ADC_ConfigChannel(&hadc3, &sConfig) != HAL_OK)
371
   if (HAL_ADC_ConfigChannel(&hadc3, &sConfig) != HAL_OK)
358
   {
372
   {
@@ -360,6 +374,7 @@ static void MX_ADC3_Init(void)
360
   }
374
   }
361
   /** Configure Regular Channel 
375
   /** Configure Regular Channel 
362
   */
376
   */
377
+  sConfig.Channel = ADC_CHANNEL_7;
363
   sConfig.Rank = ADC_REGULAR_RANK_4;
378
   sConfig.Rank = ADC_REGULAR_RANK_4;
364
   if (HAL_ADC_ConfigChannel(&hadc3, &sConfig) != HAL_OK)
379
   if (HAL_ADC_ConfigChannel(&hadc3, &sConfig) != HAL_OK)
365
   {
380
   {
@@ -367,6 +382,7 @@ static void MX_ADC3_Init(void)
367
   }
382
   }
368
   /** Configure Regular Channel 
383
   /** Configure Regular Channel 
369
   */
384
   */
385
+  sConfig.Channel = ADC_CHANNEL_8;
370
   sConfig.Rank = ADC_REGULAR_RANK_5;
386
   sConfig.Rank = ADC_REGULAR_RANK_5;
371
   if (HAL_ADC_ConfigChannel(&hadc3, &sConfig) != HAL_OK)
387
   if (HAL_ADC_ConfigChannel(&hadc3, &sConfig) != HAL_OK)
372
   {
388
   {

+ 9 - 0
Src/stm32f1xx_hal_msp.c

@@ -105,12 +105,18 @@ void HAL_ADC_MspInit(ADC_HandleTypeDef* hadc)
105
     /* Peripheral clock enable */
105
     /* Peripheral clock enable */
106
     __HAL_RCC_ADC1_CLK_ENABLE();
106
     __HAL_RCC_ADC1_CLK_ENABLE();
107
   
107
   
108
+    __HAL_RCC_GPIOC_CLK_ENABLE();
108
     __HAL_RCC_GPIOA_CLK_ENABLE();
109
     __HAL_RCC_GPIOA_CLK_ENABLE();
109
     /**ADC1 GPIO Configuration    
110
     /**ADC1 GPIO Configuration    
111
+    PC2     ------> ADC1_IN12
110
     PA4     ------> ADC1_IN4
112
     PA4     ------> ADC1_IN4
111
     PA5     ------> ADC1_IN5
113
     PA5     ------> ADC1_IN5
112
     PA6     ------> ADC1_IN6 
114
     PA6     ------> ADC1_IN6 
113
     */
115
     */
116
+    GPIO_InitStruct.Pin = RFU_TEMP_Pin;
117
+    GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
118
+    HAL_GPIO_Init(RFU_TEMP_GPIO_Port, &GPIO_InitStruct);
119
+
114
     GPIO_InitStruct.Pin = DET_UL1_OUT_Pin|DET_UL2_OUT_Pin|DET_UL3_OUT_Pin;
120
     GPIO_InitStruct.Pin = DET_UL1_OUT_Pin|DET_UL2_OUT_Pin|DET_UL3_OUT_Pin;
115
     GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
121
     GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
116
     HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
122
     HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
@@ -198,10 +204,13 @@ void HAL_ADC_MspDeInit(ADC_HandleTypeDef* hadc)
198
     __HAL_RCC_ADC1_CLK_DISABLE();
204
     __HAL_RCC_ADC1_CLK_DISABLE();
199
   
205
   
200
     /**ADC1 GPIO Configuration    
206
     /**ADC1 GPIO Configuration    
207
+    PC2     ------> ADC1_IN12
201
     PA4     ------> ADC1_IN4
208
     PA4     ------> ADC1_IN4
202
     PA5     ------> ADC1_IN5
209
     PA5     ------> ADC1_IN5
203
     PA6     ------> ADC1_IN6 
210
     PA6     ------> ADC1_IN6 
204
     */
211
     */
212
+    HAL_GPIO_DeInit(RFU_TEMP_GPIO_Port, RFU_TEMP_Pin);
213
+
205
     HAL_GPIO_DeInit(GPIOA, DET_UL1_OUT_Pin|DET_UL2_OUT_Pin|DET_UL3_OUT_Pin);
214
     HAL_GPIO_DeInit(GPIOA, DET_UL1_OUT_Pin|DET_UL2_OUT_Pin|DET_UL3_OUT_Pin);
206
 
215
 
207
     /* ADC1 DMA DeInit */
216
     /* ADC1 DMA DeInit */