Browse Source

BaudRate 115200 으로 변경
끝 Byte에 LF추가

PYJ 4 years ago
parent
commit
9151f8591a
38 changed files with 16278 additions and 13576 deletions
  1. 34 18
      Bluecell_Src/NessLab.c
  2. BIN
      Debug/Bluecell_Src/NessLab.o
  3. 7 7
      Debug/Bluecell_Src/NessLab.su
  4. BIN
      Debug/Nesslab_200M_System.bin
  5. BIN
      Debug/Nesslab_200M_System.elf
  6. 12928 12861
      Debug/Nesslab_200M_System.list
  7. 675 675
      Debug/Nesslab_200M_System.map
  8. BIN
      Debug/Src/main.o
  9. 10 10
      Debug/Src/main.su
  10. 2 2
      Nesslab_200M_System.ioc
  11. 15 3
      Src/main.c
  12. 196 0
      insight/Nesslab_200M_System.si4project/Backup/NessLab(7195).c
  13. 571 0
      insight/Nesslab_200M_System.si4project/Backup/main(2383).c
  14. 572 0
      insight/Nesslab_200M_System.si4project/Backup/main(41).c
  15. 547 0
      insight/Nesslab_200M_System.si4project/Backup/main(4910).c
  16. 560 0
      insight/Nesslab_200M_System.si4project/Backup/main(8119).c
  17. 161 0
      insight/Nesslab_200M_System.si4project/Backup/uart(3730).c
  18. BIN
      insight/Nesslab_200M_System.si4project/Nesslab_200M_System.sip_xm
  19. BIN
      insight/Nesslab_200M_System.si4project/Nesslab_200M_System.siwork
  20. BIN
      insight/Nesslab_200M_System.si4project/cache/parse/.._Bluecell_Inc_NessLab.h.sisc
  21. BIN
      insight/Nesslab_200M_System.si4project/cache/parse/.._Bluecell_Inc_adc.h.sisc
  22. BIN
      insight/Nesslab_200M_System.si4project/cache/parse/.._Bluecell_Inc_crc.h.sisc
  23. BIN
      insight/Nesslab_200M_System.si4project/cache/parse/.._Bluecell_Inc_flash.h.sisc
  24. BIN
      insight/Nesslab_200M_System.si4project/cache/parse/.._Bluecell_Inc_uart.h.sisc
  25. BIN
      insight/Nesslab_200M_System.si4project/cache/parse/.._Bluecell_Src_NessLab.c.sisc
  26. BIN
      insight/Nesslab_200M_System.si4project/cache/parse/.._Bluecell_Src_adc.c.sisc
  27. BIN
      insight/Nesslab_200M_System.si4project/cache/parse/.._Bluecell_Src_crc.c.sisc
  28. BIN
      insight/Nesslab_200M_System.si4project/cache/parse/.._Bluecell_Src_flash.c.sisc
  29. BIN
      insight/Nesslab_200M_System.si4project/cache/parse/.._Bluecell_Src_led.c.sisc
  30. BIN
      insight/Nesslab_200M_System.si4project/cache/parse/.._Bluecell_Src_uart.c.sisc
  31. BIN
      insight/Nesslab_200M_System.si4project/cache/parse/.._Drivers_STM32F1xx_HAL_Driver_Inc_stm32f1xx_hal_flash_ex.h.sisc
  32. BIN
      insight/Nesslab_200M_System.si4project/cache/parse/.._Inc_main.h.sisc
  33. BIN
      insight/Nesslab_200M_System.si4project/cache/parse/.._Inc_stm32f1xx_hal_conf.h.sisc
  34. BIN
      insight/Nesslab_200M_System.si4project/cache/parse/.._Inc_stm32f1xx_it.h.sisc
  35. BIN
      insight/Nesslab_200M_System.si4project/cache/parse/.._Src_main.c.sisc
  36. BIN
      insight/Nesslab_200M_System.si4project/cache/parse/.._Src_stm32f1xx_hal_msp.c.sisc
  37. BIN
      insight/Nesslab_200M_System.si4project/cache/parse/.._Src_stm32f1xx_hal_timebase_tim.c.sisc
  38. BIN
      insight/Nesslab_200M_System.si4project/cache/parse/.._Src_stm32f1xx_it.c.sisc

+ 34 - 18
Bluecell_Src/NessLab.c

@@ -11,6 +11,7 @@
11 11
 #include "adc.h"
12 12
 #include "crc.h"
13 13
 #include "flash.h"
14
+#include "NessLab.h"
14 15
 //extern uint8_t NessLab_Checksum(uint8_t* data,uint8_t size);
15 16
 
16 17
 #define NESSLAB_DATARESPONSE_INDEXSIZE  23
@@ -33,20 +34,35 @@ void NessLab_TalbleFlash_Read(uint8_t* data,uint8_t size) // ?占쏙옙湲고븿
33 34
 void NessLab_Operate(uint8_t* data){
34 35
 	uint8_t datatype = data[NessLab_MsgID0];
35 36
     uint8_t UartLength = 0;
37
+    static uint16_t MSG_SNCnt = 0;
36 38
 	switch(datatype){
37 39
 		case NessLab_STATUS_REQ:
38 40
 			ADC_Check();
39
-            UartLength = NessLab_MAX_INDEX;
40
-            if(data[NessLab_Req_Data_Cnt0] > 0)
41
-                NessLab_TxData[NessLab_Over_Power_Alarm] = 1;
42
-            else
43
-                NessLab_TxData[NessLab_Over_Power_Alarm] = 0;
44
-            if(data[NessLab_Req_Data_Cnt1] > 0)                
45
-                NessLab_TxData[NessLab_VSWR_ALARM] = 1;
46
-            else
47
-                NessLab_TxData[NessLab_VSWR_ALARM] = 0;
41
+            
42
+            UartLength = NessLab_MAX_INDEX + 1;
43
+            MSG_SNCnt = data[NessLab_Req_MsgSN0] << 8 | data[NessLab_Req_MsgSN1];
44
+            MSG_SNCnt++;
45
+//            if(data[NessLab_Req_Data_Cnt0] > 0)
46
+//                NessLab_TxData[NessLab_Over_Power_Alarm] = 1;
47
+//            else
48
+//                NessLab_TxData[NessLab_Over_Power_Alarm] = 0;
49
+//            if(data[NessLab_Req_Data_Cnt1] > 0)                
50
+//                NessLab_TxData[NessLab_VSWR_ALARM] = 1;
51
+//            else
52
+//                NessLab_TxData[NessLab_VSWR_ALARM] = 0;
48 53
                 
54
+            NessLab_TxData[NessLab_MsgSN0] = (uint8_t)((MSG_SNCnt & 0xFF00) >>8);//data[NessLab_Req_MsgSN0];
55
+            NessLab_TxData[NessLab_MsgSN1] = (uint8_t)((MSG_SNCnt & 0x00FF));//data[NessLab_Req_MsgSN1] ;    
49 56
             NessLab_Frame_Set(NessLab_TxData,12);
57
+//            NessLab_TxData[10] = 1;
58
+//            NessLab_TxData[11] = 0;
59
+//            NessLab_TxData[12] = 1;
60
+//            NessLab_TxData[13] = 0;
61
+//            NessLab_TxData[14] = 1;
62
+//            NessLab_TxData[15] = 0;
63
+//            NessLab_TxData[16] = 1;
64
+//            NessLab_TxData[17] = 0;            
65
+                
50 66
 			break;
51 67
             
52 68
         case NessLab_Table_REQ:
@@ -77,25 +93,25 @@ void NessLab_Frame_Set(uint8_t* data,uint8_t size){
77 93
     data[NessLab_Header1] = 0x7E;
78 94
 
79 95
     data[NessLab_MsgID0] = NessLab_STATUS_RES;// ID
80
-    data[NessLab_MsgSN0] = 0; // SEQ NUMBER
81
-    data[NessLab_MsgSN1] = 0; // SEQ NUMBER   
96
+//    data[NessLab_MsgSN0] = 0; // SEQ NUMBER
97
+//    data[NessLab_MsgSN1] = 0; // SEQ NUMBER   
82 98
     data[NessLab_Reserve0] = 0; // NessLab_Reserve0
83 99
     data[NessLab_DataLength] = size; // Nesslab Size
84 100
     data[NessLab_Data_ADC1_H] =  Currstatus.DownLink_Forward_Det_H;//(uint8_t)((ADC1value[0] & 0xFF00) >> 8);
85 101
     data[NessLab_Data_ADC1_L] =  Currstatus.DownLink_Forward_Det_L;//(uint8_t)(ADC1value[0] & 0x00FF);
86
-
87 102
     data[NessLab_DC_FAIL_ALARM] = 0;
88 103
     data[NessLab_DownLink_Status] = 0;
89
-//    data[NessLab_Over_Power_Alarm] = 00;
90
-//    data[NessLab_VSWR_ALARM] = 0;
91
-    data[NessLab_Over_Input_Alarm] = 0;
92
-    data[NessLab_Over_Temp_Alarm] = 0;
93
-    data[NessLab_Temp_Monitor] = 0;
94
-    data[NessLab_ALC_ALARM] = 0;
104
+    data[NessLab_Over_Power_Alarm] = 0;        
105
+    data[NessLab_VSWR_ALARM] = 0;  
106
+    data[NessLab_Over_Input_Alarm] = 0;  
107
+    data[NessLab_Over_Temp_Alarm] = 0; 
108
+    data[NessLab_Temp_Monitor] = 0; 
109
+    data[NessLab_ALC_ALARM] = 0; 
95 110
     data[NessLab_ChecksumVal] = NessLab_Checksum(&data[NessLab_MsgID0], NessLab_MAX_INDEX - 5);
96 111
     /* Exception Header Tail Checksum */
97 112
     data[NessLab_Tail0] = 0x7E;
98 113
     data[NessLab_Tail1] = 0x7E; 
114
+    data[NessLab_Tail1 + 1] = 0x0A; 
99 115
 }
100 116
 
101 117
 

BIN
Debug/Bluecell_Src/NessLab.o


+ 7 - 7
Debug/Bluecell_Src/NessLab.su

@@ -1,7 +1,7 @@
1
-NessLab.c:26:6:NessLab_TalbleFlash_Read	16	static
2
-NessLab.c:33:6:NessLab_Operate	32	static
3
-NessLab.c:75:6:NessLab_Frame_Set	24	static
4
-NessLab.c:102:6:NessLab_Table_Frame_Set	40	static
5
-NessLab.c:131:6:NessLab_Status_Check	4	static
6
-NessLab.c:134:6:NessLab_PAU_Enable	8	static
7
-NessLab.c:138:6:NessLab_GPIO_Operate	8	static
1
+NessLab.c:27:6:NessLab_TalbleFlash_Read	16	static
2
+NessLab.c:34:6:NessLab_Operate	32	static
3
+NessLab.c:91:6:NessLab_Frame_Set	24	static
4
+NessLab.c:157:6:NessLab_Table_Frame_Set	40	static
5
+NessLab.c:186:6:NessLab_Status_Check	4	static
6
+NessLab.c:189:6:NessLab_PAU_Enable	8	static
7
+NessLab.c:193:6:NessLab_GPIO_Operate	8	static

BIN
Debug/Nesslab_200M_System.bin


BIN
Debug/Nesslab_200M_System.elf


File diff suppressed because it is too large
+ 12928 - 12861
Debug/Nesslab_200M_System.list


File diff suppressed because it is too large
+ 675 - 675
Debug/Nesslab_200M_System.map


BIN
Debug/Src/main.o


+ 10 - 10
Debug/Src/main.su

@@ -1,12 +1,12 @@
1 1
 main.c:86:5:_write	24	static
2 2
 main.c:104:5:main	8	static
3
-main.c:183:6:SystemClock_Config	80	static
4
-main.c:226:13:MX_NVIC_Init	8	static
5
-main.c:262:13:MX_ADC1_Init	24	static
6
-main.c:323:13:MX_TIM6_Init	16	static
7
-main.c:361:13:MX_USART1_UART_Init	8	static
8
-main.c:394:13:MX_USART3_UART_Init	8	static
9
-main.c:425:13:MX_DMA_Init	16	static
10
-main.c:438:13:MX_GPIO_Init	40	static
11
-main.c:503:6:HAL_TIM_PeriodElapsedCallback	16	static
12
-main.c:523:6:Error_Handler	4	static
3
+main.c:206:6:SystemClock_Config	80	static
4
+main.c:249:13:MX_NVIC_Init	8	static
5
+main.c:285:13:MX_ADC1_Init	24	static
6
+main.c:346:13:MX_TIM6_Init	16	static
7
+main.c:384:13:MX_USART1_UART_Init	8	static
8
+main.c:417:13:MX_USART3_UART_Init	8	static
9
+main.c:448:13:MX_DMA_Init	16	static
10
+main.c:461:13:MX_GPIO_Init	40	static
11
+main.c:526:6:HAL_TIM_PeriodElapsedCallback	16	static
12
+main.c:546:6:Error_Handler	4	static

+ 2 - 2
Nesslab_200M_System.ioc

@@ -264,10 +264,10 @@ SH.ADCx_IN3.ConfNb=1
264 264
 TIM6.IPParameters=Period,Prescaler
265 265
 TIM6.Period=10
266 266
 TIM6.Prescaler=2400-1
267
-USART1.BaudRate=57600
267
+USART1.BaudRate=115200
268 268
 USART1.IPParameters=VirtualMode,BaudRate
269 269
 USART1.VirtualMode=VM_ASYNC
270
-USART3.BaudRate=57600
270
+USART3.BaudRate=115200
271 271
 USART3.IPParameters=VirtualMode,BaudRate
272 272
 USART3.VirtualMode=VM_ASYNC
273 273
 VP_SYS_VS_tim2.Mode=TIM2

+ 15 - 3
Src/main.c

@@ -29,6 +29,7 @@
29 29
 #include "adc.h"
30 30
 #include "led.h"
31 31
 #include "flash.h"
32
+#include "NessLab.h"
32 33
 /* USER CODE END Includes */
33 34
 
34 35
 /* Private typedef -----------------------------------------------------------*/
@@ -100,7 +101,6 @@ int _write (int file, uint8_t *ptr, uint16_t len)
100 101
   * @brief  The application entry point.
101 102
   * @retval int
102 103
   */
103
-
104 104
 int main(void)
105 105
 {
106 106
   /* USER CODE BEGIN 1 */
@@ -164,10 +164,22 @@ int main(void)
164 164
 
165 165
   /* Infinite loop */
166 166
   /* USER CODE BEGIN WHILE */
167
+
168
+ 
169
+
170
+
167 171
   while (1)
168 172
   {
173
+#if 1 // PYJ.2020.08.31_BEGIN -- 
169 174
     Boot_LED_Toggle(); /*LED Check*/
170 175
     Uart_Check();      /*Usart Rx*/
176
+#else
177
+    NessLab_Operate(datatest);
178
+    datatest[4]++;
179
+
180
+    HAL_Delay(3000);
181
+
182
+#endif // PYJ.2020.08.31_END -- 
171 183
 //    ADC_Check();       /*Det Calc + DL/UL Alarm Check Function*/
172 184
     /* USER CODE END WHILE */
173 185
 
@@ -369,7 +381,7 @@ static void MX_USART1_UART_Init(void)
369 381
 
370 382
   /* USER CODE END USART1_Init 1 */
371 383
   huart1.Instance = USART1;
372
-  huart1.Init.BaudRate = 57600;
384
+  huart1.Init.BaudRate = 115200;
373 385
   huart1.Init.WordLength = UART_WORDLENGTH_8B;
374 386
   huart1.Init.StopBits = UART_STOPBITS_1;
375 387
   huart1.Init.Parity = UART_PARITY_NONE;
@@ -402,7 +414,7 @@ static void MX_USART3_UART_Init(void)
402 414
 
403 415
   /* USER CODE END USART3_Init 1 */
404 416
   huart3.Instance = USART3;
405
-  huart3.Init.BaudRate = 57600;
417
+  huart3.Init.BaudRate = 115200;
406 418
   huart3.Init.WordLength = UART_WORDLENGTH_8B;
407 419
   huart3.Init.StopBits = UART_STOPBITS_1;
408 420
   huart3.Init.Parity = UART_PARITY_NONE;

+ 196 - 0
insight/Nesslab_200M_System.si4project/Backup/NessLab(7195).c

@@ -0,0 +1,196 @@
1
+/*
2
+ * NessLab.c
3
+ *
4
+ *  Created on: Aug 3, 2020
5
+ *      Author: parkyj
6
+ */
7
+
8
+
9
+#include "main.h"
10
+#include "NessLab.h"
11
+#include "adc.h"
12
+#include "crc.h"
13
+#include "flash.h"
14
+#include "NessLab.h"
15
+//extern uint8_t NessLab_Checksum(uint8_t* data,uint8_t size);
16
+
17
+#define NESSLAB_DATARESPONSE_INDEXSIZE  23
18
+#define NESSLAB_TABLE_LENGTH 110
19
+
20
+Nesslab_Prot Currstatus;
21
+extern volatile uint16_t ADC1value[ADC1_CNT];
22
+volatile uint8_t NessLab_TxData[200] = {0,};
23
+uint8_t Flash_DataArray[200] = {0,};
24
+
25
+
26
+
27
+void NessLab_TalbleFlash_Read(uint8_t* data,uint8_t size) // ?占쏙옙湲고븿?占쏙옙
28
+{
29
+
30
+  
31
+
32
+}
33
+
34
+void NessLab_Operate(uint8_t* data){
35
+	uint8_t datatype = data[NessLab_MsgID0];
36
+    uint8_t UartLength = 0;
37
+    static uint16_t MSG_SNCnt = 0;
38
+	switch(datatype){
39
+		case NessLab_STATUS_REQ:
40
+			ADC_Check();
41
+            
42
+            UartLength = NessLab_MAX_INDEX + 1;
43
+            MSG_SNCnt = data[NessLab_Req_MsgSN0] << 8 | data[NessLab_Req_MsgSN1];
44
+            MSG_SNCnt++;
45
+//            if(data[NessLab_Req_Data_Cnt0] > 0)
46
+//                NessLab_TxData[NessLab_Over_Power_Alarm] = 1;
47
+//            else
48
+//                NessLab_TxData[NessLab_Over_Power_Alarm] = 0;
49
+//            if(data[NessLab_Req_Data_Cnt1] > 0)                
50
+//                NessLab_TxData[NessLab_VSWR_ALARM] = 1;
51
+//            else
52
+//                NessLab_TxData[NessLab_VSWR_ALARM] = 0;
53
+                
54
+            NessLab_TxData[NessLab_MsgSN0] = (uint8_t)((MSG_SNCnt & 0xFF00) >>8);//data[NessLab_Req_MsgSN0];
55
+            NessLab_TxData[NessLab_MsgSN1] = (uint8_t)((MSG_SNCnt & 0x00FF));//data[NessLab_Req_MsgSN1] ;    
56
+            NessLab_Frame_Set(NessLab_TxData,12);
57
+//            NessLab_TxData[10] = 1;
58
+//            NessLab_TxData[11] = 0;
59
+//            NessLab_TxData[12] = 1;
60
+//            NessLab_TxData[13] = 0;
61
+//            NessLab_TxData[14] = 1;
62
+//            NessLab_TxData[15] = 0;
63
+//            NessLab_TxData[16] = 1;
64
+//            NessLab_TxData[17] = 0;            
65
+                
66
+			break;
67
+            
68
+        case NessLab_Table_REQ:
69
+            UartLength = NESSLAB_TABLE_LENGTH;
70
+            NessLab_Table_Frame_Set(NessLab_TxData,100);
71
+            printf("NessLab_Table_REQ \r\n");
72
+            break;
73
+        case NessLab_TableSet_REQ:
74
+            DataErase_Func(FLASH_USER_USE_START_ADDR,200);
75
+            printf("Ram Data Display \r\n");
76
+            for(int i = 0; i < data[NessLab_DataLength]; i++){
77
+                Flash_DataArray[i] = data[NessLab_Data_ADC1_H + i];
78
+                printf("%x ",Flash_DataArray[i]);
79
+            }
80
+            FLASH_Write_Func(&Flash_DataArray[0],data[NessLab_DataLength]);
81
+            UartLength = NESSLAB_TABLE_LENGTH;
82
+            NessLab_Table_Frame_Set(NessLab_TxData,100);
83
+            printf("\r\nNessLab_TableSet_REQ \r\n");            
84
+            break;
85
+	}
86
+    Uart1_Data_Send(&NessLab_TxData[NessLab_Header0], UartLength);
87
+}
88
+
89
+
90
+
91
+void NessLab_Frame_Set(uint8_t* data,uint8_t size){
92
+    data[NessLab_Header0] = 0x7E;
93
+    data[NessLab_Header1] = 0x7E;
94
+
95
+    data[NessLab_MsgID0] = NessLab_STATUS_RES;// ID
96
+//    data[NessLab_MsgSN0] = 0; // SEQ NUMBER
97
+//    data[NessLab_MsgSN1] = 0; // SEQ NUMBER   
98
+    data[NessLab_Reserve0] = 0; // NessLab_Reserve0
99
+    data[NessLab_DataLength] = size; // Nesslab Size
100
+    data[NessLab_Data_ADC1_H] =  Currstatus.DownLink_Forward_Det_H;//(uint8_t)((ADC1value[0] & 0xFF00) >> 8);
101
+    data[NessLab_Data_ADC1_L] =  Currstatus.DownLink_Forward_Det_L;//(uint8_t)(ADC1value[0] & 0x00FF);
102
+    data[NessLab_Data_ADC1_L + 1]++;
103
+    if( data[NessLab_DC_FAIL_ALARM] == 0)
104
+        data[NessLab_DC_FAIL_ALARM] = 1;
105
+    else
106
+        data[NessLab_DC_FAIL_ALARM] = 0;
107
+    
108
+    if( data[NessLab_DownLink_Status] == 0)
109
+        data[NessLab_DownLink_Status] = 1;
110
+    else
111
+        data[NessLab_DownLink_Status] = 0;
112
+
113
+
114
+    if( data[NessLab_Over_Power_Alarm] == 0)
115
+        data[NessLab_Over_Power_Alarm] = 1;
116
+    else
117
+        data[NessLab_Over_Power_Alarm] = 0;        
118
+//    data[NessLab_Over_Power_Alarm] = 00;
119
+    if( data[NessLab_VSWR_ALARM] == 0)
120
+        data[NessLab_VSWR_ALARM] = 1;
121
+    else
122
+        data[NessLab_VSWR_ALARM] = 0;  
123
+
124
+//    data[NessLab_VSWR_ALARM] = 0;
125
+    if( data[NessLab_Over_Input_Alarm] == 0)
126
+        data[NessLab_Over_Input_Alarm] = 1;
127
+    else
128
+        data[NessLab_Over_Input_Alarm] = 0;  
129
+    
130
+//    data[NessLab_Over_Input_Alarm] = 0;
131
+    if( data[NessLab_Over_Temp_Alarm] == 0)
132
+        data[NessLab_Over_Temp_Alarm] = 1;
133
+    else
134
+        data[NessLab_Over_Temp_Alarm] = 0; 
135
+
136
+//    data[NessLab_Over_Temp_Alarm] = 0;
137
+    if( data[NessLab_Temp_Monitor] == 0)
138
+        data[NessLab_Temp_Monitor] = 1;
139
+    else
140
+        data[NessLab_Temp_Monitor] = 0; 
141
+
142
+//    data[NessLab_Temp_Monitor] = 0;
143
+    if( data[NessLab_ALC_ALARM] == 0)
144
+        data[NessLab_ALC_ALARM] = 1;
145
+    else
146
+        data[NessLab_ALC_ALARM] = 0; 
147
+
148
+//    data[NessLab_ALC_ALARM] = 0;
149
+    data[NessLab_ChecksumVal] = NessLab_Checksum(&data[NessLab_MsgID0], NessLab_MAX_INDEX - 5);
150
+    /* Exception Header Tail Checksum */
151
+    data[NessLab_Tail0] = 0x7E;
152
+    data[NessLab_Tail1] = 0x7E; 
153
+    data[NessLab_Tail1 + 1] = 0x0A; 
154
+}
155
+
156
+
157
+void NessLab_Table_Frame_Set(uint8_t* data,uint8_t size){
158
+    uint32_t i = 0;
159
+    uint32_t  CurrApiAddress = 0;
160
+    CurrApiAddress = FLASH_USER_USE_START_ADDR;
161
+    uint8_t* Currdata = (uint8_t*)CurrApiAddress;
162
+    uint8_t* pdata;
163
+
164
+
165
+
166
+    data[i++] = 0x7E;
167
+    data[i++] = 0x7E;
168
+
169
+    data[i++] = NessLab_STATUS_RES;// ID
170
+    data[i++] = 0; // SEQ NUMBER
171
+    data[i++] = 0; // SEQ NUMBER   
172
+    data[i++] = 0; // NessLab_Reserve0
173
+    data[i++] = size; // Nesslab Size
174
+    //    NessLab_TalbleFlash_Read(&data[NessLab_DataLength + 1],100);              
175
+
176
+    for(int a = 0; a < size; a++){
177
+        data[i++] = Currdata[a];
178
+//        printf("%02x ",Currdata[i]);
179
+    }
180
+    data[i++] = NessLab_Checksum(&data[NessLab_MsgID0], 100 + 5);
181
+    /* Exception Header Tail Checksum */
182
+    data[i++] = 0x7E;
183
+    data[i++] = 0x7E; 
184
+}
185
+
186
+void NessLab_Status_Check(){
187
+	//HAL_GPIO_ReadPin(, GPIO_Pin)
188
+}
189
+void NessLab_PAU_Enable(){
190
+	HAL_GPIO_WritePin(AMP_EN_GPIO_Port,AMP_EN_Pin, HAL_GPIO_ReadPin(PAU_EN_GPIO_Port, PAU_EN_Pin));
191
+	//HAL_GPIO_WritePin(AMP_EN_GPIO_Port,AMP_EN_Pin, HAL_GPIO_ReadPin(PAU_RESET_GPIO_Port, PAU_RESET_Pin));
192
+}
193
+void NessLab_GPIO_Operate(){
194
+	NessLab_PAU_Enable();
195
+}
196
+

+ 571 - 0
insight/Nesslab_200M_System.si4project/Backup/main(2383).c

@@ -0,0 +1,571 @@
1
+/* USER CODE BEGIN Header */
2
+/**
3
+  ******************************************************************************
4
+  * @file           : main.c
5
+  * @brief          : Main program body
6
+  ******************************************************************************
7
+  * @attention
8
+  *
9
+  * <h2><center>&copy; Copyright (c) 2020 STMicroelectronics.
10
+  * All rights reserved.</center></h2>
11
+  *
12
+  * This software component is licensed by ST under Ultimate Liberty license
13
+  * SLA0044, the "License"; You may not use this file except in compliance with
14
+  * the License. You may obtain a copy of the License at:
15
+  *                             www.st.com/SLA0044
16
+  *
17
+  ******************************************************************************
18
+  */
19
+/* USER CODE END Header */
20
+
21
+/* Includes ------------------------------------------------------------------*/
22
+#include "main.h"
23
+
24
+/* Private includes ----------------------------------------------------------*/
25
+/* USER CODE BEGIN Includes */
26
+#include <stdio.h>
27
+#include <string.h>
28
+#include "uart.h"
29
+#include "adc.h"
30
+#include "led.h"
31
+#include "flash.h"
32
+/* USER CODE END Includes */
33
+
34
+/* Private typedef -----------------------------------------------------------*/
35
+/* USER CODE BEGIN PTD */
36
+
37
+/* USER CODE END PTD */
38
+
39
+/* Private define ------------------------------------------------------------*/
40
+/* USER CODE BEGIN PD */
41
+/* USER CODE END PD */
42
+
43
+/* Private macro -------------------------------------------------------------*/
44
+/* USER CODE BEGIN PM */
45
+
46
+/* USER CODE END PM */
47
+
48
+/* Private variables ---------------------------------------------------------*/
49
+ADC_HandleTypeDef hadc1;
50
+DMA_HandleTypeDef hdma_adc1;
51
+
52
+TIM_HandleTypeDef htim6;
53
+
54
+UART_HandleTypeDef huart1;
55
+UART_HandleTypeDef huart3;
56
+DMA_HandleTypeDef hdma_usart1_tx;
57
+DMA_HandleTypeDef hdma_usart1_rx;
58
+DMA_HandleTypeDef hdma_usart3_tx;
59
+DMA_HandleTypeDef hdma_usart3_rx;
60
+
61
+/* USER CODE BEGIN PV */
62
+volatile uint32_t UartRxTimerCnt = 0;
63
+
64
+
65
+/* USER CODE END PV */
66
+
67
+/* Private function prototypes -----------------------------------------------*/
68
+void SystemClock_Config(void);
69
+static void MX_GPIO_Init(void);
70
+static void MX_DMA_Init(void);
71
+static void MX_ADC1_Init(void);
72
+static void MX_TIM6_Init(void);
73
+static void MX_USART1_UART_Init(void);
74
+static void MX_USART3_UART_Init(void);
75
+static void MX_NVIC_Init(void);
76
+/* USER CODE BEGIN PFP */
77
+extern void InitUartQueue(pUARTQUEUE pQueue);
78
+extern void Flash_InitRead();
79
+extern uint8_t FLASH_Write_Func(uint8_t* data,uint32_t size);
80
+
81
+
82
+/* USER CODE END PFP */
83
+
84
+/* Private user code ---------------------------------------------------------*/
85
+/* USER CODE BEGIN 0 */
86
+int _write (int file, uint8_t *ptr, uint16_t len)
87
+{
88
+#if 0 // PYJ.2020.06.03_BEGIN --
89
+    HAL_UART_Transmit(&hTest, ptr, len,10);
90
+#else
91
+    HAL_UART_Transmit(&hTerminal, ptr, len,10);
92
+#endif // PYJ.2020.06.03_END --
93
+
94
+    return len;
95
+}
96
+
97
+/* USER CODE END 0 */
98
+
99
+/**
100
+  * @brief  The application entry point.
101
+  * @retval int
102
+  */
103
+uint8_t datatest[50] = {0,};
104
+int main(void)
105
+{
106
+  /* USER CODE BEGIN 1 */
107
+
108
+
109
+  /* USER CODE END 1 */
110
+
111
+  /* MCU Configuration--------------------------------------------------------*/
112
+
113
+  /* Reset of all peripherals, Initializes the Flash interface and the Systick. */
114
+  HAL_Init();
115
+
116
+  /* USER CODE BEGIN Init */
117
+
118
+  /* USER CODE END Init */
119
+
120
+  /* Configure the system clock */
121
+  SystemClock_Config();
122
+
123
+  /* USER CODE BEGIN SysInit */
124
+
125
+  /* USER CODE END SysInit */
126
+
127
+  /* Initialize all configured peripherals */
128
+  MX_GPIO_Init();
129
+  MX_DMA_Init();
130
+  MX_ADC1_Init();
131
+  MX_TIM6_Init();
132
+  MX_USART1_UART_Init();
133
+  MX_USART3_UART_Init();
134
+
135
+  /* Initialize interrupts */
136
+  MX_NVIC_Init();
137
+  /* USER CODE BEGIN 2 */
138
+  HAL_TIM_Base_Start_IT(&htim6);
139
+
140
+  setbuf(stdout, NULL);
141
+  InitUartQueue(&MainQueue);
142
+  ADC_Initialize();
143
+#if 1 // PYJ.2020.05.06_BEGIN --
144
+    printf("****************************************\r\n");
145
+    printf("NESSLAB Project\r\n");
146
+    printf("Build at %s %s\r\n", __DATE__, __TIME__);
147
+    printf("Copyright (c) 2020. BLUECELL\r\n");
148
+    printf("****************************************\r\n");
149
+#if 0 // PYJ.2020.08.28_BEGIN -- 
150
+    uint8_t Flash_TestDataArray[200] = {0x33,};
151
+
152
+    Flash_InitRead();
153
+    DataErase_Func(FLASH_USER_USE_START_ADDR,200);
154
+    printf("Ram Data Display \r\n");
155
+    for(int i = 0; i < 200; i++){
156
+        Flash_TestDataArray[i] = 0x33;
157
+//        printf("%x ",Flash_TestDataArray[i]);
158
+    }
159
+    FLASH_Write_Func(&Flash_TestDataArray[0],200);
160
+    Flash_InitRead();    
161
+#endif // PYJ.2020.08.28_END -- 
162
+#endif // PYJ.2020.05.06_END --  
163
+  /* USER CODE END 2 */
164
+
165
+  /* Infinite loop */
166
+  /* USER CODE BEGIN WHILE */
167
+  datatest[2] = 101;
168
+
169
+
170
+    datatest[10] = 1;
171
+    datatest[11] = 0;
172
+    datatest[12] = 1;
173
+    datatest[13] = 0;
174
+    datatest[14] = 1;
175
+    datatest[15] = 0;
176
+    datatest[16] = 1;
177
+    datatest[17] = 0;
178
+
179
+ 
180
+
181
+
182
+  while (1)
183
+  {
184
+#if 0 // PYJ.2020.08.31_BEGIN -- 
185
+    Boot_LED_Toggle(); /*LED Check*/
186
+    Uart_Check();      /*Usart Rx*/
187
+#else
188
+    NessLab_Operate(datatest);
189
+    datatest[4]++;
190
+
191
+    HAL_Delay(3000);
192
+
193
+#endif // PYJ.2020.08.31_END -- 
194
+//    ADC_Check();       /*Det Calc + DL/UL Alarm Check Function*/
195
+    /* USER CODE END WHILE */
196
+
197
+    /* USER CODE BEGIN 3 */
198
+  }
199
+  /* USER CODE END 3 */
200
+}
201
+
202
+/**
203
+  * @brief System Clock Configuration
204
+  * @retval None
205
+  */
206
+void SystemClock_Config(void)
207
+{
208
+  RCC_OscInitTypeDef RCC_OscInitStruct = {0};
209
+  RCC_ClkInitTypeDef RCC_ClkInitStruct = {0};
210
+  RCC_PeriphCLKInitTypeDef PeriphClkInit = {0};
211
+
212
+  /** Initializes the CPU, AHB and APB busses clocks 
213
+  */
214
+  RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSI;
215
+  RCC_OscInitStruct.HSIState = RCC_HSI_ON;
216
+  RCC_OscInitStruct.HSICalibrationValue = RCC_HSICALIBRATION_DEFAULT;
217
+  RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;
218
+  RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSI_DIV2;
219
+  RCC_OscInitStruct.PLL.PLLMUL = RCC_PLL_MUL6;
220
+  if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK)
221
+  {
222
+    Error_Handler();
223
+  }
224
+  /** Initializes the CPU, AHB and APB busses clocks 
225
+  */
226
+  RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK|RCC_CLOCKTYPE_SYSCLK
227
+                              |RCC_CLOCKTYPE_PCLK1|RCC_CLOCKTYPE_PCLK2;
228
+  RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK;
229
+  RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1;
230
+  RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV1;
231
+  RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1;
232
+
233
+  if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_0) != HAL_OK)
234
+  {
235
+    Error_Handler();
236
+  }
237
+  PeriphClkInit.PeriphClockSelection = RCC_PERIPHCLK_ADC;
238
+  PeriphClkInit.AdcClockSelection = RCC_ADCPCLK2_DIV2;
239
+  if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInit) != HAL_OK)
240
+  {
241
+    Error_Handler();
242
+  }
243
+}
244
+
245
+/**
246
+  * @brief NVIC Configuration.
247
+  * @retval None
248
+  */
249
+static void MX_NVIC_Init(void)
250
+{
251
+  /* ADC1_IRQn interrupt configuration */
252
+  HAL_NVIC_SetPriority(ADC1_IRQn, 0, 0);
253
+  HAL_NVIC_EnableIRQ(ADC1_IRQn);
254
+  /* USART1_IRQn interrupt configuration */
255
+  HAL_NVIC_SetPriority(USART1_IRQn, 0, 0);
256
+  HAL_NVIC_EnableIRQ(USART1_IRQn);
257
+  /* USART3_IRQn interrupt configuration */
258
+  HAL_NVIC_SetPriority(USART3_IRQn, 0, 0);
259
+  HAL_NVIC_EnableIRQ(USART3_IRQn);
260
+  /* TIM6_DAC_IRQn interrupt configuration */
261
+  HAL_NVIC_SetPriority(TIM6_DAC_IRQn, 0, 0);
262
+  HAL_NVIC_EnableIRQ(TIM6_DAC_IRQn);
263
+  /* DMA1_Channel2_IRQn interrupt configuration */
264
+  HAL_NVIC_SetPriority(DMA1_Channel2_IRQn, 0, 0);
265
+  HAL_NVIC_EnableIRQ(DMA1_Channel2_IRQn);
266
+  /* DMA1_Channel4_IRQn interrupt configuration */
267
+  HAL_NVIC_SetPriority(DMA1_Channel4_IRQn, 0, 0);
268
+  HAL_NVIC_EnableIRQ(DMA1_Channel4_IRQn);
269
+  /* DMA1_Channel3_IRQn interrupt configuration */
270
+  HAL_NVIC_SetPriority(DMA1_Channel3_IRQn, 0, 0);
271
+  HAL_NVIC_EnableIRQ(DMA1_Channel3_IRQn);
272
+  /* DMA1_Channel1_IRQn interrupt configuration */
273
+  HAL_NVIC_SetPriority(DMA1_Channel1_IRQn, 0, 0);
274
+  HAL_NVIC_EnableIRQ(DMA1_Channel1_IRQn);
275
+  /* DMA1_Channel5_IRQn interrupt configuration */
276
+  HAL_NVIC_SetPriority(DMA1_Channel5_IRQn, 0, 0);
277
+  HAL_NVIC_EnableIRQ(DMA1_Channel5_IRQn);
278
+}
279
+
280
+/**
281
+  * @brief ADC1 Initialization Function
282
+  * @param None
283
+  * @retval None
284
+  */
285
+static void MX_ADC1_Init(void)
286
+{
287
+
288
+  /* USER CODE BEGIN ADC1_Init 0 */
289
+
290
+  /* USER CODE END ADC1_Init 0 */
291
+
292
+  ADC_ChannelConfTypeDef sConfig = {0};
293
+
294
+  /* USER CODE BEGIN ADC1_Init 1 */
295
+
296
+  /* USER CODE END ADC1_Init 1 */
297
+  /** Common config 
298
+  */
299
+  hadc1.Instance = ADC1;
300
+  hadc1.Init.ScanConvMode = ADC_SCAN_ENABLE;
301
+  hadc1.Init.ContinuousConvMode = ENABLE;
302
+  hadc1.Init.DiscontinuousConvMode = DISABLE;
303
+  hadc1.Init.ExternalTrigConv = ADC_SOFTWARE_START;
304
+  hadc1.Init.DataAlign = ADC_DATAALIGN_RIGHT;
305
+  hadc1.Init.NbrOfConversion = 3;
306
+  if (HAL_ADC_Init(&hadc1) != HAL_OK)
307
+  {
308
+    Error_Handler();
309
+  }
310
+  /** Configure Regular Channel 
311
+  */
312
+  sConfig.Channel = ADC_CHANNEL_0;
313
+  sConfig.Rank = ADC_REGULAR_RANK_1;
314
+  sConfig.SamplingTime = ADC_SAMPLETIME_239CYCLES_5;
315
+  if (HAL_ADC_ConfigChannel(&hadc1, &sConfig) != HAL_OK)
316
+  {
317
+    Error_Handler();
318
+  }
319
+  /** Configure Regular Channel 
320
+  */
321
+  sConfig.Channel = ADC_CHANNEL_1;
322
+  sConfig.Rank = ADC_REGULAR_RANK_2;
323
+  if (HAL_ADC_ConfigChannel(&hadc1, &sConfig) != HAL_OK)
324
+  {
325
+    Error_Handler();
326
+  }
327
+  /** Configure Regular Channel 
328
+  */
329
+  sConfig.Channel = ADC_CHANNEL_3;
330
+  sConfig.Rank = ADC_REGULAR_RANK_3;
331
+  if (HAL_ADC_ConfigChannel(&hadc1, &sConfig) != HAL_OK)
332
+  {
333
+    Error_Handler();
334
+  }
335
+  /* USER CODE BEGIN ADC1_Init 2 */
336
+
337
+  /* USER CODE END ADC1_Init 2 */
338
+
339
+}
340
+
341
+/**
342
+  * @brief TIM6 Initialization Function
343
+  * @param None
344
+  * @retval None
345
+  */
346
+static void MX_TIM6_Init(void)
347
+{
348
+
349
+  /* USER CODE BEGIN TIM6_Init 0 */
350
+
351
+  /* USER CODE END TIM6_Init 0 */
352
+
353
+  TIM_MasterConfigTypeDef sMasterConfig = {0};
354
+
355
+  /* USER CODE BEGIN TIM6_Init 1 */
356
+
357
+  /* USER CODE END TIM6_Init 1 */
358
+  htim6.Instance = TIM6;
359
+  htim6.Init.Prescaler = 2400-1;
360
+  htim6.Init.CounterMode = TIM_COUNTERMODE_UP;
361
+  htim6.Init.Period = 10;
362
+  htim6.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE;
363
+  if (HAL_TIM_Base_Init(&htim6) != HAL_OK)
364
+  {
365
+    Error_Handler();
366
+  }
367
+  sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET;
368
+  sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE;
369
+  if (HAL_TIMEx_MasterConfigSynchronization(&htim6, &sMasterConfig) != HAL_OK)
370
+  {
371
+    Error_Handler();
372
+  }
373
+  /* USER CODE BEGIN TIM6_Init 2 */
374
+
375
+  /* USER CODE END TIM6_Init 2 */
376
+
377
+}
378
+
379
+/**
380
+  * @brief USART1 Initialization Function
381
+  * @param None
382
+  * @retval None
383
+  */
384
+static void MX_USART1_UART_Init(void)
385
+{
386
+
387
+  /* USER CODE BEGIN USART1_Init 0 */
388
+
389
+  /* USER CODE END USART1_Init 0 */
390
+
391
+  /* USER CODE BEGIN USART1_Init 1 */
392
+
393
+  /* USER CODE END USART1_Init 1 */
394
+  huart1.Instance = USART1;
395
+  huart1.Init.BaudRate = 115200;
396
+  huart1.Init.WordLength = UART_WORDLENGTH_8B;
397
+  huart1.Init.StopBits = UART_STOPBITS_1;
398
+  huart1.Init.Parity = UART_PARITY_NONE;
399
+  huart1.Init.Mode = UART_MODE_TX_RX;
400
+  huart1.Init.HwFlowCtl = UART_HWCONTROL_NONE;
401
+  huart1.Init.OverSampling = UART_OVERSAMPLING_16;
402
+  if (HAL_UART_Init(&huart1) != HAL_OK)
403
+  {
404
+    Error_Handler();
405
+  }
406
+  /* USER CODE BEGIN USART1_Init 2 */
407
+
408
+  /* USER CODE END USART1_Init 2 */
409
+
410
+}
411
+
412
+/**
413
+  * @brief USART3 Initialization Function
414
+  * @param None
415
+  * @retval None
416
+  */
417
+static void MX_USART3_UART_Init(void)
418
+{
419
+
420
+  /* USER CODE BEGIN USART3_Init 0 */
421
+
422
+  /* USER CODE END USART3_Init 0 */
423
+
424
+  /* USER CODE BEGIN USART3_Init 1 */
425
+
426
+  /* USER CODE END USART3_Init 1 */
427
+  huart3.Instance = USART3;
428
+  huart3.Init.BaudRate = 115200;
429
+  huart3.Init.WordLength = UART_WORDLENGTH_8B;
430
+  huart3.Init.StopBits = UART_STOPBITS_1;
431
+  huart3.Init.Parity = UART_PARITY_NONE;
432
+  huart3.Init.Mode = UART_MODE_TX_RX;
433
+  huart3.Init.HwFlowCtl = UART_HWCONTROL_NONE;
434
+  huart3.Init.OverSampling = UART_OVERSAMPLING_16;
435
+  if (HAL_UART_Init(&huart3) != HAL_OK)
436
+  {
437
+    Error_Handler();
438
+  }
439
+  /* USER CODE BEGIN USART3_Init 2 */
440
+
441
+  /* USER CODE END USART3_Init 2 */
442
+
443
+}
444
+
445
+/** 
446
+  * Enable DMA controller clock
447
+  */
448
+static void MX_DMA_Init(void) 
449
+{
450
+
451
+  /* DMA controller clock enable */
452
+  __HAL_RCC_DMA1_CLK_ENABLE();
453
+
454
+}
455
+
456
+/**
457
+  * @brief GPIO Initialization Function
458
+  * @param None
459
+  * @retval None
460
+  */
461
+static void MX_GPIO_Init(void)
462
+{
463
+  GPIO_InitTypeDef GPIO_InitStruct = {0};
464
+
465
+  /* GPIO Ports Clock Enable */
466
+  __HAL_RCC_GPIOC_CLK_ENABLE();
467
+  __HAL_RCC_GPIOA_CLK_ENABLE();
468
+  __HAL_RCC_GPIOB_CLK_ENABLE();
469
+
470
+  /*Configure GPIO pin Output Level */
471
+  HAL_GPIO_WritePin(BOOT_LED_GPIO_Port, BOOT_LED_Pin, GPIO_PIN_RESET);
472
+
473
+  /*Configure GPIO pin Output Level */
474
+  HAL_GPIO_WritePin(GPIOA, PAU_RESERVED0_Pin|PAU_RESERVED1_Pin|AMP_EN_Pin, GPIO_PIN_RESET);
475
+
476
+  /*Configure GPIO pin Output Level */
477
+  HAL_GPIO_WritePin(GPIOB, PAU_RESERVED3_Pin|PAU_RESERVED2_Pin|PAU_RESET_Pin, GPIO_PIN_RESET);
478
+
479
+  /*Configure GPIO pin : BOOT_LED_Pin */
480
+  GPIO_InitStruct.Pin = BOOT_LED_Pin;
481
+  GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
482
+  GPIO_InitStruct.Pull = GPIO_NOPULL;
483
+  GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
484
+  HAL_GPIO_Init(BOOT_LED_GPIO_Port, &GPIO_InitStruct);
485
+
486
+  /*Configure GPIO pins : DC_FAIL_ALARM_Pin OVER_INPUT_ALARM_Pin OVER_TEMP_ALARM_Pin */
487
+  GPIO_InitStruct.Pin = DC_FAIL_ALARM_Pin|OVER_INPUT_ALARM_Pin|OVER_TEMP_ALARM_Pin;
488
+  GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
489
+  GPIO_InitStruct.Pull = GPIO_NOPULL;
490
+  HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
491
+
492
+  /*Configure GPIO pins : PAU_RESERVED0_Pin PAU_RESERVED1_Pin AMP_EN_Pin */
493
+  GPIO_InitStruct.Pin = PAU_RESERVED0_Pin|PAU_RESERVED1_Pin|AMP_EN_Pin;
494
+  GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
495
+  GPIO_InitStruct.Pull = GPIO_NOPULL;
496
+  GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
497
+  HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
498
+
499
+  /*Configure GPIO pins : PAU_RESERVED3_Pin PAU_RESERVED2_Pin PAU_RESET_Pin */
500
+  GPIO_InitStruct.Pin = PAU_RESERVED3_Pin|PAU_RESERVED2_Pin|PAU_RESET_Pin;
501
+  GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
502
+  GPIO_InitStruct.Pull = GPIO_NOPULL;
503
+  GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
504
+  HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
505
+
506
+  /*Configure GPIO pins : OVER_POWER_ALARM_Pin VSWR_ALARM_Pin PAU_EN_Pin ALC_ALARM_Pin */
507
+  GPIO_InitStruct.Pin = OVER_POWER_ALARM_Pin|VSWR_ALARM_Pin|PAU_EN_Pin|ALC_ALARM_Pin;
508
+  GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
509
+  GPIO_InitStruct.Pull = GPIO_NOPULL;
510
+  HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
511
+
512
+}
513
+
514
+/* USER CODE BEGIN 4 */
515
+
516
+/* USER CODE END 4 */
517
+
518
+ /**
519
+  * @brief  Period elapsed callback in non blocking mode
520
+  * @note   This function is called  when TIM2 interrupt took place, inside
521
+  * HAL_TIM_IRQHandler(). It makes a direct call to HAL_IncTick() to increment
522
+  * a global variable "uwTick" used as application time base.
523
+  * @param  htim : TIM handle
524
+  * @retval None
525
+  */
526
+void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
527
+{
528
+  /* USER CODE BEGIN Callback 0 */
529
+
530
+  /* USER CODE END Callback 0 */
531
+  if (htim->Instance == TIM2) {
532
+    HAL_IncTick();
533
+  }
534
+  /* USER CODE BEGIN Callback 1 */
535
+  if(htim->Instance == TIM6){
536
+      UartRxTimerCnt++;
537
+      LED_TimerCnt++;
538
+  }
539
+  /* USER CODE END Callback 1 */
540
+}
541
+
542
+/**
543
+  * @brief  This function is executed in case of error occurrence.
544
+  * @retval None
545
+  */
546
+void Error_Handler(void)
547
+{
548
+  /* USER CODE BEGIN Error_Handler_Debug */
549
+  /* User can add his own implementation to report the HAL error return state */
550
+
551
+  /* USER CODE END Error_Handler_Debug */
552
+}
553
+
554
+#ifdef  USE_FULL_ASSERT
555
+/**
556
+  * @brief  Reports the name of the source file and the source line number
557
+  *         where the assert_param error has occurred.
558
+  * @param  file: pointer to the source file name
559
+  * @param  line: assert_param error line source number
560
+  * @retval None
561
+  */
562
+void assert_failed(uint8_t *file, uint32_t line)
563
+{ 
564
+  /* USER CODE BEGIN 6 */
565
+  /* User can add his own implementation to report the file name and line number,
566
+     tex: printf("Wrong parameters value: file %s on line %d\r\n", file, line) */
567
+  /* USER CODE END 6 */
568
+}
569
+#endif /* USE_FULL_ASSERT */
570
+
571
+/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/

+ 572 - 0
insight/Nesslab_200M_System.si4project/Backup/main(41).c

@@ -0,0 +1,572 @@
1
+/* USER CODE BEGIN Header */
2
+/**
3
+  ******************************************************************************
4
+  * @file           : main.c
5
+  * @brief          : Main program body
6
+  ******************************************************************************
7
+  * @attention
8
+  *
9
+  * <h2><center>&copy; Copyright (c) 2020 STMicroelectronics.
10
+  * All rights reserved.</center></h2>
11
+  *
12
+  * This software component is licensed by ST under Ultimate Liberty license
13
+  * SLA0044, the "License"; You may not use this file except in compliance with
14
+  * the License. You may obtain a copy of the License at:
15
+  *                             www.st.com/SLA0044
16
+  *
17
+  ******************************************************************************
18
+  */
19
+/* USER CODE END Header */
20
+
21
+/* Includes ------------------------------------------------------------------*/
22
+#include "main.h"
23
+
24
+/* Private includes ----------------------------------------------------------*/
25
+/* USER CODE BEGIN Includes */
26
+#include <stdio.h>
27
+#include <string.h>
28
+#include "uart.h"
29
+#include "adc.h"
30
+#include "led.h"
31
+#include "flash.h"
32
+#include "NessLab.h"
33
+/* USER CODE END Includes */
34
+
35
+/* Private typedef -----------------------------------------------------------*/
36
+/* USER CODE BEGIN PTD */
37
+
38
+/* USER CODE END PTD */
39
+
40
+/* Private define ------------------------------------------------------------*/
41
+/* USER CODE BEGIN PD */
42
+/* USER CODE END PD */
43
+
44
+/* Private macro -------------------------------------------------------------*/
45
+/* USER CODE BEGIN PM */
46
+
47
+/* USER CODE END PM */
48
+
49
+/* Private variables ---------------------------------------------------------*/
50
+ADC_HandleTypeDef hadc1;
51
+DMA_HandleTypeDef hdma_adc1;
52
+
53
+TIM_HandleTypeDef htim6;
54
+
55
+UART_HandleTypeDef huart1;
56
+UART_HandleTypeDef huart3;
57
+DMA_HandleTypeDef hdma_usart1_tx;
58
+DMA_HandleTypeDef hdma_usart1_rx;
59
+DMA_HandleTypeDef hdma_usart3_tx;
60
+DMA_HandleTypeDef hdma_usart3_rx;
61
+
62
+/* USER CODE BEGIN PV */
63
+volatile uint32_t UartRxTimerCnt = 0;
64
+
65
+
66
+/* USER CODE END PV */
67
+
68
+/* Private function prototypes -----------------------------------------------*/
69
+void SystemClock_Config(void);
70
+static void MX_GPIO_Init(void);
71
+static void MX_DMA_Init(void);
72
+static void MX_ADC1_Init(void);
73
+static void MX_TIM6_Init(void);
74
+static void MX_USART1_UART_Init(void);
75
+static void MX_USART3_UART_Init(void);
76
+static void MX_NVIC_Init(void);
77
+/* USER CODE BEGIN PFP */
78
+extern void InitUartQueue(pUARTQUEUE pQueue);
79
+extern void Flash_InitRead();
80
+extern uint8_t FLASH_Write_Func(uint8_t* data,uint32_t size);
81
+
82
+
83
+/* USER CODE END PFP */
84
+
85
+/* Private user code ---------------------------------------------------------*/
86
+/* USER CODE BEGIN 0 */
87
+int _write (int file, uint8_t *ptr, uint16_t len)
88
+{
89
+#if 0 // PYJ.2020.06.03_BEGIN --
90
+    HAL_UART_Transmit(&hTest, ptr, len,10);
91
+#else
92
+    HAL_UART_Transmit(&hTerminal, ptr, len,10);
93
+#endif // PYJ.2020.06.03_END --
94
+
95
+    return len;
96
+}
97
+
98
+/* USER CODE END 0 */
99
+
100
+/**
101
+  * @brief  The application entry point.
102
+  * @retval int
103
+  */
104
+uint8_t datatest[50] = {0,};
105
+int main(void)
106
+{
107
+  /* USER CODE BEGIN 1 */
108
+
109
+
110
+  /* USER CODE END 1 */
111
+
112
+  /* MCU Configuration--------------------------------------------------------*/
113
+
114
+  /* Reset of all peripherals, Initializes the Flash interface and the Systick. */
115
+  HAL_Init();
116
+
117
+  /* USER CODE BEGIN Init */
118
+
119
+  /* USER CODE END Init */
120
+
121
+  /* Configure the system clock */
122
+  SystemClock_Config();
123
+
124
+  /* USER CODE BEGIN SysInit */
125
+
126
+  /* USER CODE END SysInit */
127
+
128
+  /* Initialize all configured peripherals */
129
+  MX_GPIO_Init();
130
+  MX_DMA_Init();
131
+  MX_ADC1_Init();
132
+  MX_TIM6_Init();
133
+  MX_USART1_UART_Init();
134
+  MX_USART3_UART_Init();
135
+
136
+  /* Initialize interrupts */
137
+  MX_NVIC_Init();
138
+  /* USER CODE BEGIN 2 */
139
+  HAL_TIM_Base_Start_IT(&htim6);
140
+
141
+  setbuf(stdout, NULL);
142
+  InitUartQueue(&MainQueue);
143
+  ADC_Initialize();
144
+#if 1 // PYJ.2020.05.06_BEGIN --
145
+    printf("****************************************\r\n");
146
+    printf("NESSLAB Project\r\n");
147
+    printf("Build at %s %s\r\n", __DATE__, __TIME__);
148
+    printf("Copyright (c) 2020. BLUECELL\r\n");
149
+    printf("****************************************\r\n");
150
+#if 0 // PYJ.2020.08.28_BEGIN -- 
151
+    uint8_t Flash_TestDataArray[200] = {0x33,};
152
+
153
+    Flash_InitRead();
154
+    DataErase_Func(FLASH_USER_USE_START_ADDR,200);
155
+    printf("Ram Data Display \r\n");
156
+    for(int i = 0; i < 200; i++){
157
+        Flash_TestDataArray[i] = 0x33;
158
+//        printf("%x ",Flash_TestDataArray[i]);
159
+    }
160
+    FLASH_Write_Func(&Flash_TestDataArray[0],200);
161
+    Flash_InitRead();    
162
+#endif // PYJ.2020.08.28_END -- 
163
+#endif // PYJ.2020.05.06_END --  
164
+  /* USER CODE END 2 */
165
+
166
+  /* Infinite loop */
167
+  /* USER CODE BEGIN WHILE */
168
+  datatest[2] = 101;
169
+
170
+
171
+    datatest[10] = 1;
172
+    datatest[11] = 0;
173
+    datatest[12] = 1;
174
+    datatest[13] = 0;
175
+    datatest[14] = 1;
176
+    datatest[15] = 0;
177
+    datatest[16] = 1;
178
+    datatest[17] = 0;
179
+
180
+ 
181
+
182
+
183
+  while (1)
184
+  {
185
+#if 0 // PYJ.2020.08.31_BEGIN -- 
186
+    Boot_LED_Toggle(); /*LED Check*/
187
+    Uart_Check();      /*Usart Rx*/
188
+#else
189
+    NessLab_Operate(datatest);
190
+    datatest[4]++;
191
+
192
+    HAL_Delay(3000);
193
+
194
+#endif // PYJ.2020.08.31_END -- 
195
+//    ADC_Check();       /*Det Calc + DL/UL Alarm Check Function*/
196
+    /* USER CODE END WHILE */
197
+
198
+    /* USER CODE BEGIN 3 */
199
+  }
200
+  /* USER CODE END 3 */
201
+}
202
+
203
+/**
204
+  * @brief System Clock Configuration
205
+  * @retval None
206
+  */
207
+void SystemClock_Config(void)
208
+{
209
+  RCC_OscInitTypeDef RCC_OscInitStruct = {0};
210
+  RCC_ClkInitTypeDef RCC_ClkInitStruct = {0};
211
+  RCC_PeriphCLKInitTypeDef PeriphClkInit = {0};
212
+
213
+  /** Initializes the CPU, AHB and APB busses clocks 
214
+  */
215
+  RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSI;
216
+  RCC_OscInitStruct.HSIState = RCC_HSI_ON;
217
+  RCC_OscInitStruct.HSICalibrationValue = RCC_HSICALIBRATION_DEFAULT;
218
+  RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;
219
+  RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSI_DIV2;
220
+  RCC_OscInitStruct.PLL.PLLMUL = RCC_PLL_MUL6;
221
+  if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK)
222
+  {
223
+    Error_Handler();
224
+  }
225
+  /** Initializes the CPU, AHB and APB busses clocks 
226
+  */
227
+  RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK|RCC_CLOCKTYPE_SYSCLK
228
+                              |RCC_CLOCKTYPE_PCLK1|RCC_CLOCKTYPE_PCLK2;
229
+  RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK;
230
+  RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1;
231
+  RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV1;
232
+  RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1;
233
+
234
+  if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_0) != HAL_OK)
235
+  {
236
+    Error_Handler();
237
+  }
238
+  PeriphClkInit.PeriphClockSelection = RCC_PERIPHCLK_ADC;
239
+  PeriphClkInit.AdcClockSelection = RCC_ADCPCLK2_DIV2;
240
+  if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInit) != HAL_OK)
241
+  {
242
+    Error_Handler();
243
+  }
244
+}
245
+
246
+/**
247
+  * @brief NVIC Configuration.
248
+  * @retval None
249
+  */
250
+static void MX_NVIC_Init(void)
251
+{
252
+  /* ADC1_IRQn interrupt configuration */
253
+  HAL_NVIC_SetPriority(ADC1_IRQn, 0, 0);
254
+  HAL_NVIC_EnableIRQ(ADC1_IRQn);
255
+  /* USART1_IRQn interrupt configuration */
256
+  HAL_NVIC_SetPriority(USART1_IRQn, 0, 0);
257
+  HAL_NVIC_EnableIRQ(USART1_IRQn);
258
+  /* USART3_IRQn interrupt configuration */
259
+  HAL_NVIC_SetPriority(USART3_IRQn, 0, 0);
260
+  HAL_NVIC_EnableIRQ(USART3_IRQn);
261
+  /* TIM6_DAC_IRQn interrupt configuration */
262
+  HAL_NVIC_SetPriority(TIM6_DAC_IRQn, 0, 0);
263
+  HAL_NVIC_EnableIRQ(TIM6_DAC_IRQn);
264
+  /* DMA1_Channel2_IRQn interrupt configuration */
265
+  HAL_NVIC_SetPriority(DMA1_Channel2_IRQn, 0, 0);
266
+  HAL_NVIC_EnableIRQ(DMA1_Channel2_IRQn);
267
+  /* DMA1_Channel4_IRQn interrupt configuration */
268
+  HAL_NVIC_SetPriority(DMA1_Channel4_IRQn, 0, 0);
269
+  HAL_NVIC_EnableIRQ(DMA1_Channel4_IRQn);
270
+  /* DMA1_Channel3_IRQn interrupt configuration */
271
+  HAL_NVIC_SetPriority(DMA1_Channel3_IRQn, 0, 0);
272
+  HAL_NVIC_EnableIRQ(DMA1_Channel3_IRQn);
273
+  /* DMA1_Channel1_IRQn interrupt configuration */
274
+  HAL_NVIC_SetPriority(DMA1_Channel1_IRQn, 0, 0);
275
+  HAL_NVIC_EnableIRQ(DMA1_Channel1_IRQn);
276
+  /* DMA1_Channel5_IRQn interrupt configuration */
277
+  HAL_NVIC_SetPriority(DMA1_Channel5_IRQn, 0, 0);
278
+  HAL_NVIC_EnableIRQ(DMA1_Channel5_IRQn);
279
+}
280
+
281
+/**
282
+  * @brief ADC1 Initialization Function
283
+  * @param None
284
+  * @retval None
285
+  */
286
+static void MX_ADC1_Init(void)
287
+{
288
+
289
+  /* USER CODE BEGIN ADC1_Init 0 */
290
+
291
+  /* USER CODE END ADC1_Init 0 */
292
+
293
+  ADC_ChannelConfTypeDef sConfig = {0};
294
+
295
+  /* USER CODE BEGIN ADC1_Init 1 */
296
+
297
+  /* USER CODE END ADC1_Init 1 */
298
+  /** Common config 
299
+  */
300
+  hadc1.Instance = ADC1;
301
+  hadc1.Init.ScanConvMode = ADC_SCAN_ENABLE;
302
+  hadc1.Init.ContinuousConvMode = ENABLE;
303
+  hadc1.Init.DiscontinuousConvMode = DISABLE;
304
+  hadc1.Init.ExternalTrigConv = ADC_SOFTWARE_START;
305
+  hadc1.Init.DataAlign = ADC_DATAALIGN_RIGHT;
306
+  hadc1.Init.NbrOfConversion = 3;
307
+  if (HAL_ADC_Init(&hadc1) != HAL_OK)
308
+  {
309
+    Error_Handler();
310
+  }
311
+  /** Configure Regular Channel 
312
+  */
313
+  sConfig.Channel = ADC_CHANNEL_0;
314
+  sConfig.Rank = ADC_REGULAR_RANK_1;
315
+  sConfig.SamplingTime = ADC_SAMPLETIME_239CYCLES_5;
316
+  if (HAL_ADC_ConfigChannel(&hadc1, &sConfig) != HAL_OK)
317
+  {
318
+    Error_Handler();
319
+  }
320
+  /** Configure Regular Channel 
321
+  */
322
+  sConfig.Channel = ADC_CHANNEL_1;
323
+  sConfig.Rank = ADC_REGULAR_RANK_2;
324
+  if (HAL_ADC_ConfigChannel(&hadc1, &sConfig) != HAL_OK)
325
+  {
326
+    Error_Handler();
327
+  }
328
+  /** Configure Regular Channel 
329
+  */
330
+  sConfig.Channel = ADC_CHANNEL_3;
331
+  sConfig.Rank = ADC_REGULAR_RANK_3;
332
+  if (HAL_ADC_ConfigChannel(&hadc1, &sConfig) != HAL_OK)
333
+  {
334
+    Error_Handler();
335
+  }
336
+  /* USER CODE BEGIN ADC1_Init 2 */
337
+
338
+  /* USER CODE END ADC1_Init 2 */
339
+
340
+}
341
+
342
+/**
343
+  * @brief TIM6 Initialization Function
344
+  * @param None
345
+  * @retval None
346
+  */
347
+static void MX_TIM6_Init(void)
348
+{
349
+
350
+  /* USER CODE BEGIN TIM6_Init 0 */
351
+
352
+  /* USER CODE END TIM6_Init 0 */
353
+
354
+  TIM_MasterConfigTypeDef sMasterConfig = {0};
355
+
356
+  /* USER CODE BEGIN TIM6_Init 1 */
357
+
358
+  /* USER CODE END TIM6_Init 1 */
359
+  htim6.Instance = TIM6;
360
+  htim6.Init.Prescaler = 2400-1;
361
+  htim6.Init.CounterMode = TIM_COUNTERMODE_UP;
362
+  htim6.Init.Period = 10;
363
+  htim6.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE;
364
+  if (HAL_TIM_Base_Init(&htim6) != HAL_OK)
365
+  {
366
+    Error_Handler();
367
+  }
368
+  sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET;
369
+  sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE;
370
+  if (HAL_TIMEx_MasterConfigSynchronization(&htim6, &sMasterConfig) != HAL_OK)
371
+  {
372
+    Error_Handler();
373
+  }
374
+  /* USER CODE BEGIN TIM6_Init 2 */
375
+
376
+  /* USER CODE END TIM6_Init 2 */
377
+
378
+}
379
+
380
+/**
381
+  * @brief USART1 Initialization Function
382
+  * @param None
383
+  * @retval None
384
+  */
385
+static void MX_USART1_UART_Init(void)
386
+{
387
+
388
+  /* USER CODE BEGIN USART1_Init 0 */
389
+
390
+  /* USER CODE END USART1_Init 0 */
391
+
392
+  /* USER CODE BEGIN USART1_Init 1 */
393
+
394
+  /* USER CODE END USART1_Init 1 */
395
+  huart1.Instance = USART1;
396
+  huart1.Init.BaudRate = 115200;
397
+  huart1.Init.WordLength = UART_WORDLENGTH_8B;
398
+  huart1.Init.StopBits = UART_STOPBITS_1;
399
+  huart1.Init.Parity = UART_PARITY_NONE;
400
+  huart1.Init.Mode = UART_MODE_TX_RX;
401
+  huart1.Init.HwFlowCtl = UART_HWCONTROL_NONE;
402
+  huart1.Init.OverSampling = UART_OVERSAMPLING_16;
403
+  if (HAL_UART_Init(&huart1) != HAL_OK)
404
+  {
405
+    Error_Handler();
406
+  }
407
+  /* USER CODE BEGIN USART1_Init 2 */
408
+
409
+  /* USER CODE END USART1_Init 2 */
410
+
411
+}
412
+
413
+/**
414
+  * @brief USART3 Initialization Function
415
+  * @param None
416
+  * @retval None
417
+  */
418
+static void MX_USART3_UART_Init(void)
419
+{
420
+
421
+  /* USER CODE BEGIN USART3_Init 0 */
422
+
423
+  /* USER CODE END USART3_Init 0 */
424
+
425
+  /* USER CODE BEGIN USART3_Init 1 */
426
+
427
+  /* USER CODE END USART3_Init 1 */
428
+  huart3.Instance = USART3;
429
+  huart3.Init.BaudRate = 115200;
430
+  huart3.Init.WordLength = UART_WORDLENGTH_8B;
431
+  huart3.Init.StopBits = UART_STOPBITS_1;
432
+  huart3.Init.Parity = UART_PARITY_NONE;
433
+  huart3.Init.Mode = UART_MODE_TX_RX;
434
+  huart3.Init.HwFlowCtl = UART_HWCONTROL_NONE;
435
+  huart3.Init.OverSampling = UART_OVERSAMPLING_16;
436
+  if (HAL_UART_Init(&huart3) != HAL_OK)
437
+  {
438
+    Error_Handler();
439
+  }
440
+  /* USER CODE BEGIN USART3_Init 2 */
441
+
442
+  /* USER CODE END USART3_Init 2 */
443
+
444
+}
445
+
446
+/** 
447
+  * Enable DMA controller clock
448
+  */
449
+static void MX_DMA_Init(void) 
450
+{
451
+
452
+  /* DMA controller clock enable */
453
+  __HAL_RCC_DMA1_CLK_ENABLE();
454
+
455
+}
456
+
457
+/**
458
+  * @brief GPIO Initialization Function
459
+  * @param None
460
+  * @retval None
461
+  */
462
+static void MX_GPIO_Init(void)
463
+{
464
+  GPIO_InitTypeDef GPIO_InitStruct = {0};
465
+
466
+  /* GPIO Ports Clock Enable */
467
+  __HAL_RCC_GPIOC_CLK_ENABLE();
468
+  __HAL_RCC_GPIOA_CLK_ENABLE();
469
+  __HAL_RCC_GPIOB_CLK_ENABLE();
470
+
471
+  /*Configure GPIO pin Output Level */
472
+  HAL_GPIO_WritePin(BOOT_LED_GPIO_Port, BOOT_LED_Pin, GPIO_PIN_RESET);
473
+
474
+  /*Configure GPIO pin Output Level */
475
+  HAL_GPIO_WritePin(GPIOA, PAU_RESERVED0_Pin|PAU_RESERVED1_Pin|AMP_EN_Pin, GPIO_PIN_RESET);
476
+
477
+  /*Configure GPIO pin Output Level */
478
+  HAL_GPIO_WritePin(GPIOB, PAU_RESERVED3_Pin|PAU_RESERVED2_Pin|PAU_RESET_Pin, GPIO_PIN_RESET);
479
+
480
+  /*Configure GPIO pin : BOOT_LED_Pin */
481
+  GPIO_InitStruct.Pin = BOOT_LED_Pin;
482
+  GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
483
+  GPIO_InitStruct.Pull = GPIO_NOPULL;
484
+  GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
485
+  HAL_GPIO_Init(BOOT_LED_GPIO_Port, &GPIO_InitStruct);
486
+
487
+  /*Configure GPIO pins : DC_FAIL_ALARM_Pin OVER_INPUT_ALARM_Pin OVER_TEMP_ALARM_Pin */
488
+  GPIO_InitStruct.Pin = DC_FAIL_ALARM_Pin|OVER_INPUT_ALARM_Pin|OVER_TEMP_ALARM_Pin;
489
+  GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
490
+  GPIO_InitStruct.Pull = GPIO_NOPULL;
491
+  HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
492
+
493
+  /*Configure GPIO pins : PAU_RESERVED0_Pin PAU_RESERVED1_Pin AMP_EN_Pin */
494
+  GPIO_InitStruct.Pin = PAU_RESERVED0_Pin|PAU_RESERVED1_Pin|AMP_EN_Pin;
495
+  GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
496
+  GPIO_InitStruct.Pull = GPIO_NOPULL;
497
+  GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
498
+  HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
499
+
500
+  /*Configure GPIO pins : PAU_RESERVED3_Pin PAU_RESERVED2_Pin PAU_RESET_Pin */
501
+  GPIO_InitStruct.Pin = PAU_RESERVED3_Pin|PAU_RESERVED2_Pin|PAU_RESET_Pin;
502
+  GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
503
+  GPIO_InitStruct.Pull = GPIO_NOPULL;
504
+  GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
505
+  HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
506
+
507
+  /*Configure GPIO pins : OVER_POWER_ALARM_Pin VSWR_ALARM_Pin PAU_EN_Pin ALC_ALARM_Pin */
508
+  GPIO_InitStruct.Pin = OVER_POWER_ALARM_Pin|VSWR_ALARM_Pin|PAU_EN_Pin|ALC_ALARM_Pin;
509
+  GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
510
+  GPIO_InitStruct.Pull = GPIO_NOPULL;
511
+  HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
512
+
513
+}
514
+
515
+/* USER CODE BEGIN 4 */
516
+
517
+/* USER CODE END 4 */
518
+
519
+ /**
520
+  * @brief  Period elapsed callback in non blocking mode
521
+  * @note   This function is called  when TIM2 interrupt took place, inside
522
+  * HAL_TIM_IRQHandler(). It makes a direct call to HAL_IncTick() to increment
523
+  * a global variable "uwTick" used as application time base.
524
+  * @param  htim : TIM handle
525
+  * @retval None
526
+  */
527
+void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
528
+{
529
+  /* USER CODE BEGIN Callback 0 */
530
+
531
+  /* USER CODE END Callback 0 */
532
+  if (htim->Instance == TIM2) {
533
+    HAL_IncTick();
534
+  }
535
+  /* USER CODE BEGIN Callback 1 */
536
+  if(htim->Instance == TIM6){
537
+      UartRxTimerCnt++;
538
+      LED_TimerCnt++;
539
+  }
540
+  /* USER CODE END Callback 1 */
541
+}
542
+
543
+/**
544
+  * @brief  This function is executed in case of error occurrence.
545
+  * @retval None
546
+  */
547
+void Error_Handler(void)
548
+{
549
+  /* USER CODE BEGIN Error_Handler_Debug */
550
+  /* User can add his own implementation to report the HAL error return state */
551
+
552
+  /* USER CODE END Error_Handler_Debug */
553
+}
554
+
555
+#ifdef  USE_FULL_ASSERT
556
+/**
557
+  * @brief  Reports the name of the source file and the source line number
558
+  *         where the assert_param error has occurred.
559
+  * @param  file: pointer to the source file name
560
+  * @param  line: assert_param error line source number
561
+  * @retval None
562
+  */
563
+void assert_failed(uint8_t *file, uint32_t line)
564
+{ 
565
+  /* USER CODE BEGIN 6 */
566
+  /* User can add his own implementation to report the file name and line number,
567
+     tex: printf("Wrong parameters value: file %s on line %d\r\n", file, line) */
568
+  /* USER CODE END 6 */
569
+}
570
+#endif /* USE_FULL_ASSERT */
571
+
572
+/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/

+ 547 - 0
insight/Nesslab_200M_System.si4project/Backup/main(4910).c

@@ -0,0 +1,547 @@
1
+/* USER CODE BEGIN Header */
2
+/**
3
+  ******************************************************************************
4
+  * @file           : main.c
5
+  * @brief          : Main program body
6
+  ******************************************************************************
7
+  * @attention
8
+  *
9
+  * <h2><center>&copy; Copyright (c) 2020 STMicroelectronics.
10
+  * All rights reserved.</center></h2>
11
+  *
12
+  * This software component is licensed by ST under Ultimate Liberty license
13
+  * SLA0044, the "License"; You may not use this file except in compliance with
14
+  * the License. You may obtain a copy of the License at:
15
+  *                             www.st.com/SLA0044
16
+  *
17
+  ******************************************************************************
18
+  */
19
+/* USER CODE END Header */
20
+
21
+/* Includes ------------------------------------------------------------------*/
22
+#include "main.h"
23
+
24
+/* Private includes ----------------------------------------------------------*/
25
+/* USER CODE BEGIN Includes */
26
+#include <stdio.h>
27
+#include <string.h>
28
+#include "uart.h"
29
+#include "adc.h"
30
+#include "led.h"
31
+#include "flash.h"
32
+/* USER CODE END Includes */
33
+
34
+/* Private typedef -----------------------------------------------------------*/
35
+/* USER CODE BEGIN PTD */
36
+
37
+/* USER CODE END PTD */
38
+
39
+/* Private define ------------------------------------------------------------*/
40
+/* USER CODE BEGIN PD */
41
+/* USER CODE END PD */
42
+
43
+/* Private macro -------------------------------------------------------------*/
44
+/* USER CODE BEGIN PM */
45
+
46
+/* USER CODE END PM */
47
+
48
+/* Private variables ---------------------------------------------------------*/
49
+ADC_HandleTypeDef hadc1;
50
+DMA_HandleTypeDef hdma_adc1;
51
+
52
+TIM_HandleTypeDef htim6;
53
+
54
+UART_HandleTypeDef huart1;
55
+UART_HandleTypeDef huart3;
56
+DMA_HandleTypeDef hdma_usart1_tx;
57
+DMA_HandleTypeDef hdma_usart1_rx;
58
+DMA_HandleTypeDef hdma_usart3_tx;
59
+DMA_HandleTypeDef hdma_usart3_rx;
60
+
61
+/* USER CODE BEGIN PV */
62
+volatile uint32_t UartRxTimerCnt = 0;
63
+
64
+
65
+/* USER CODE END PV */
66
+
67
+/* Private function prototypes -----------------------------------------------*/
68
+void SystemClock_Config(void);
69
+static void MX_GPIO_Init(void);
70
+static void MX_DMA_Init(void);
71
+static void MX_ADC1_Init(void);
72
+static void MX_TIM6_Init(void);
73
+static void MX_USART1_UART_Init(void);
74
+static void MX_USART3_UART_Init(void);
75
+static void MX_NVIC_Init(void);
76
+/* USER CODE BEGIN PFP */
77
+extern void InitUartQueue(pUARTQUEUE pQueue);
78
+extern void Flash_InitRead();
79
+extern uint8_t FLASH_Write_Func(uint8_t* data,uint32_t size);
80
+
81
+
82
+/* USER CODE END PFP */
83
+
84
+/* Private user code ---------------------------------------------------------*/
85
+/* USER CODE BEGIN 0 */
86
+int _write (int file, uint8_t *ptr, uint16_t len)
87
+{
88
+#if 0 // PYJ.2020.06.03_BEGIN --
89
+    HAL_UART_Transmit(&hTest, ptr, len,10);
90
+#else
91
+    HAL_UART_Transmit(&hTerminal, ptr, len,10);
92
+#endif // PYJ.2020.06.03_END --
93
+
94
+    return len;
95
+}
96
+
97
+/* USER CODE END 0 */
98
+
99
+/**
100
+  * @brief  The application entry point.
101
+  * @retval int
102
+  */
103
+int main(void)
104
+{
105
+  /* USER CODE BEGIN 1 */
106
+
107
+
108
+  /* USER CODE END 1 */
109
+
110
+  /* MCU Configuration--------------------------------------------------------*/
111
+
112
+  /* Reset of all peripherals, Initializes the Flash interface and the Systick. */
113
+  HAL_Init();
114
+
115
+  /* USER CODE BEGIN Init */
116
+
117
+  /* USER CODE END Init */
118
+
119
+  /* Configure the system clock */
120
+  SystemClock_Config();
121
+
122
+  /* USER CODE BEGIN SysInit */
123
+
124
+  /* USER CODE END SysInit */
125
+
126
+  /* Initialize all configured peripherals */
127
+  MX_GPIO_Init();
128
+  MX_DMA_Init();
129
+  MX_ADC1_Init();
130
+  MX_TIM6_Init();
131
+  MX_USART1_UART_Init();
132
+  MX_USART3_UART_Init();
133
+
134
+  /* Initialize interrupts */
135
+  MX_NVIC_Init();
136
+  /* USER CODE BEGIN 2 */
137
+  HAL_TIM_Base_Start_IT(&htim6);
138
+
139
+  setbuf(stdout, NULL);
140
+  InitUartQueue(&MainQueue);
141
+  ADC_Initialize();
142
+#if 1 // PYJ.2020.05.06_BEGIN --
143
+    printf("****************************************\r\n");
144
+    printf("NESSLAB Project\r\n");
145
+    printf("Build at %s %s\r\n", __DATE__, __TIME__);
146
+    printf("Copyright (c) 2020. BLUECELL\r\n");
147
+    printf("****************************************\r\n");
148
+#if 0 // PYJ.2020.08.28_BEGIN -- 
149
+    uint8_t Flash_TestDataArray[200] = {0x33,};
150
+
151
+    Flash_InitRead();
152
+    DataErase_Func(FLASH_USER_USE_START_ADDR,200);
153
+    printf("Ram Data Display \r\n");
154
+    for(int i = 0; i < 200; i++){
155
+        Flash_TestDataArray[i] = 0x33;
156
+//        printf("%x ",Flash_TestDataArray[i]);
157
+    }
158
+    FLASH_Write_Func(&Flash_TestDataArray[0],200);
159
+    Flash_InitRead();    
160
+#endif // PYJ.2020.08.28_END -- 
161
+#endif // PYJ.2020.05.06_END --  
162
+  /* USER CODE END 2 */
163
+
164
+  /* Infinite loop */
165
+  /* USER CODE BEGIN WHILE */
166
+  while (1)
167
+  {
168
+    Boot_LED_Toggle(); /*LED Check*/
169
+    Uart_Check();      /*Usart Rx*/
170
+//    ADC_Check();       /*Det Calc + DL/UL Alarm Check Function*/
171
+    /* USER CODE END WHILE */
172
+
173
+    /* USER CODE BEGIN 3 */
174
+  }
175
+  /* USER CODE END 3 */
176
+}
177
+
178
+/**
179
+  * @brief System Clock Configuration
180
+  * @retval None
181
+  */
182
+void SystemClock_Config(void)
183
+{
184
+  RCC_OscInitTypeDef RCC_OscInitStruct = {0};
185
+  RCC_ClkInitTypeDef RCC_ClkInitStruct = {0};
186
+  RCC_PeriphCLKInitTypeDef PeriphClkInit = {0};
187
+
188
+  /** Initializes the CPU, AHB and APB busses clocks 
189
+  */
190
+  RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSI;
191
+  RCC_OscInitStruct.HSIState = RCC_HSI_ON;
192
+  RCC_OscInitStruct.HSICalibrationValue = RCC_HSICALIBRATION_DEFAULT;
193
+  RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;
194
+  RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSI_DIV2;
195
+  RCC_OscInitStruct.PLL.PLLMUL = RCC_PLL_MUL6;
196
+  if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK)
197
+  {
198
+    Error_Handler();
199
+  }
200
+  /** Initializes the CPU, AHB and APB busses clocks 
201
+  */
202
+  RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK|RCC_CLOCKTYPE_SYSCLK
203
+                              |RCC_CLOCKTYPE_PCLK1|RCC_CLOCKTYPE_PCLK2;
204
+  RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK;
205
+  RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1;
206
+  RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV1;
207
+  RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1;
208
+
209
+  if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_0) != HAL_OK)
210
+  {
211
+    Error_Handler();
212
+  }
213
+  PeriphClkInit.PeriphClockSelection = RCC_PERIPHCLK_ADC;
214
+  PeriphClkInit.AdcClockSelection = RCC_ADCPCLK2_DIV2;
215
+  if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInit) != HAL_OK)
216
+  {
217
+    Error_Handler();
218
+  }
219
+}
220
+
221
+/**
222
+  * @brief NVIC Configuration.
223
+  * @retval None
224
+  */
225
+static void MX_NVIC_Init(void)
226
+{
227
+  /* ADC1_IRQn interrupt configuration */
228
+  HAL_NVIC_SetPriority(ADC1_IRQn, 0, 0);
229
+  HAL_NVIC_EnableIRQ(ADC1_IRQn);
230
+  /* USART1_IRQn interrupt configuration */
231
+  HAL_NVIC_SetPriority(USART1_IRQn, 0, 0);
232
+  HAL_NVIC_EnableIRQ(USART1_IRQn);
233
+  /* USART3_IRQn interrupt configuration */
234
+  HAL_NVIC_SetPriority(USART3_IRQn, 0, 0);
235
+  HAL_NVIC_EnableIRQ(USART3_IRQn);
236
+  /* TIM6_DAC_IRQn interrupt configuration */
237
+  HAL_NVIC_SetPriority(TIM6_DAC_IRQn, 0, 0);
238
+  HAL_NVIC_EnableIRQ(TIM6_DAC_IRQn);
239
+  /* DMA1_Channel2_IRQn interrupt configuration */
240
+  HAL_NVIC_SetPriority(DMA1_Channel2_IRQn, 0, 0);
241
+  HAL_NVIC_EnableIRQ(DMA1_Channel2_IRQn);
242
+  /* DMA1_Channel4_IRQn interrupt configuration */
243
+  HAL_NVIC_SetPriority(DMA1_Channel4_IRQn, 0, 0);
244
+  HAL_NVIC_EnableIRQ(DMA1_Channel4_IRQn);
245
+  /* DMA1_Channel3_IRQn interrupt configuration */
246
+  HAL_NVIC_SetPriority(DMA1_Channel3_IRQn, 0, 0);
247
+  HAL_NVIC_EnableIRQ(DMA1_Channel3_IRQn);
248
+  /* DMA1_Channel1_IRQn interrupt configuration */
249
+  HAL_NVIC_SetPriority(DMA1_Channel1_IRQn, 0, 0);
250
+  HAL_NVIC_EnableIRQ(DMA1_Channel1_IRQn);
251
+  /* DMA1_Channel5_IRQn interrupt configuration */
252
+  HAL_NVIC_SetPriority(DMA1_Channel5_IRQn, 0, 0);
253
+  HAL_NVIC_EnableIRQ(DMA1_Channel5_IRQn);
254
+}
255
+
256
+/**
257
+  * @brief ADC1 Initialization Function
258
+  * @param None
259
+  * @retval None
260
+  */
261
+static void MX_ADC1_Init(void)
262
+{
263
+
264
+  /* USER CODE BEGIN ADC1_Init 0 */
265
+
266
+  /* USER CODE END ADC1_Init 0 */
267
+
268
+  ADC_ChannelConfTypeDef sConfig = {0};
269
+
270
+  /* USER CODE BEGIN ADC1_Init 1 */
271
+
272
+  /* USER CODE END ADC1_Init 1 */
273
+  /** Common config 
274
+  */
275
+  hadc1.Instance = ADC1;
276
+  hadc1.Init.ScanConvMode = ADC_SCAN_ENABLE;
277
+  hadc1.Init.ContinuousConvMode = ENABLE;
278
+  hadc1.Init.DiscontinuousConvMode = DISABLE;
279
+  hadc1.Init.ExternalTrigConv = ADC_SOFTWARE_START;
280
+  hadc1.Init.DataAlign = ADC_DATAALIGN_RIGHT;
281
+  hadc1.Init.NbrOfConversion = 3;
282
+  if (HAL_ADC_Init(&hadc1) != HAL_OK)
283
+  {
284
+    Error_Handler();
285
+  }
286
+  /** Configure Regular Channel 
287
+  */
288
+  sConfig.Channel = ADC_CHANNEL_0;
289
+  sConfig.Rank = ADC_REGULAR_RANK_1;
290
+  sConfig.SamplingTime = ADC_SAMPLETIME_239CYCLES_5;
291
+  if (HAL_ADC_ConfigChannel(&hadc1, &sConfig) != HAL_OK)
292
+  {
293
+    Error_Handler();
294
+  }
295
+  /** Configure Regular Channel 
296
+  */
297
+  sConfig.Channel = ADC_CHANNEL_1;
298
+  sConfig.Rank = ADC_REGULAR_RANK_2;
299
+  if (HAL_ADC_ConfigChannel(&hadc1, &sConfig) != HAL_OK)
300
+  {
301
+    Error_Handler();
302
+  }
303
+  /** Configure Regular Channel 
304
+  */
305
+  sConfig.Channel = ADC_CHANNEL_3;
306
+  sConfig.Rank = ADC_REGULAR_RANK_3;
307
+  if (HAL_ADC_ConfigChannel(&hadc1, &sConfig) != HAL_OK)
308
+  {
309
+    Error_Handler();
310
+  }
311
+  /* USER CODE BEGIN ADC1_Init 2 */
312
+
313
+  /* USER CODE END ADC1_Init 2 */
314
+
315
+}
316
+
317
+/**
318
+  * @brief TIM6 Initialization Function
319
+  * @param None
320
+  * @retval None
321
+  */
322
+static void MX_TIM6_Init(void)
323
+{
324
+
325
+  /* USER CODE BEGIN TIM6_Init 0 */
326
+
327
+  /* USER CODE END TIM6_Init 0 */
328
+
329
+  TIM_MasterConfigTypeDef sMasterConfig = {0};
330
+
331
+  /* USER CODE BEGIN TIM6_Init 1 */
332
+
333
+  /* USER CODE END TIM6_Init 1 */
334
+  htim6.Instance = TIM6;
335
+  htim6.Init.Prescaler = 2400-1;
336
+  htim6.Init.CounterMode = TIM_COUNTERMODE_UP;
337
+  htim6.Init.Period = 10;
338
+  htim6.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE;
339
+  if (HAL_TIM_Base_Init(&htim6) != HAL_OK)
340
+  {
341
+    Error_Handler();
342
+  }
343
+  sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET;
344
+  sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE;
345
+  if (HAL_TIMEx_MasterConfigSynchronization(&htim6, &sMasterConfig) != HAL_OK)
346
+  {
347
+    Error_Handler();
348
+  }
349
+  /* USER CODE BEGIN TIM6_Init 2 */
350
+
351
+  /* USER CODE END TIM6_Init 2 */
352
+
353
+}
354
+
355
+/**
356
+  * @brief USART1 Initialization Function
357
+  * @param None
358
+  * @retval None
359
+  */
360
+static void MX_USART1_UART_Init(void)
361
+{
362
+
363
+  /* USER CODE BEGIN USART1_Init 0 */
364
+
365
+  /* USER CODE END USART1_Init 0 */
366
+
367
+  /* USER CODE BEGIN USART1_Init 1 */
368
+
369
+  /* USER CODE END USART1_Init 1 */
370
+  huart1.Instance = USART1;
371
+  huart1.Init.BaudRate = 57600;
372
+  huart1.Init.WordLength = UART_WORDLENGTH_8B;
373
+  huart1.Init.StopBits = UART_STOPBITS_1;
374
+  huart1.Init.Parity = UART_PARITY_NONE;
375
+  huart1.Init.Mode = UART_MODE_TX_RX;
376
+  huart1.Init.HwFlowCtl = UART_HWCONTROL_NONE;
377
+  huart1.Init.OverSampling = UART_OVERSAMPLING_16;
378
+  if (HAL_UART_Init(&huart1) != HAL_OK)
379
+  {
380
+    Error_Handler();
381
+  }
382
+  /* USER CODE BEGIN USART1_Init 2 */
383
+
384
+  /* USER CODE END USART1_Init 2 */
385
+
386
+}
387
+
388
+/**
389
+  * @brief USART3 Initialization Function
390
+  * @param None
391
+  * @retval None
392
+  */
393
+static void MX_USART3_UART_Init(void)
394
+{
395
+
396
+  /* USER CODE BEGIN USART3_Init 0 */
397
+
398
+  /* USER CODE END USART3_Init 0 */
399
+
400
+  /* USER CODE BEGIN USART3_Init 1 */
401
+
402
+  /* USER CODE END USART3_Init 1 */
403
+  huart3.Instance = USART3;
404
+  huart3.Init.BaudRate = 115200;
405
+  huart3.Init.WordLength = UART_WORDLENGTH_8B;
406
+  huart3.Init.StopBits = UART_STOPBITS_1;
407
+  huart3.Init.Parity = UART_PARITY_NONE;
408
+  huart3.Init.Mode = UART_MODE_TX_RX;
409
+  huart3.Init.HwFlowCtl = UART_HWCONTROL_NONE;
410
+  huart3.Init.OverSampling = UART_OVERSAMPLING_16;
411
+  if (HAL_UART_Init(&huart3) != HAL_OK)
412
+  {
413
+    Error_Handler();
414
+  }
415
+  /* USER CODE BEGIN USART3_Init 2 */
416
+
417
+  /* USER CODE END USART3_Init 2 */
418
+
419
+}
420
+
421
+/** 
422
+  * Enable DMA controller clock
423
+  */
424
+static void MX_DMA_Init(void) 
425
+{
426
+
427
+  /* DMA controller clock enable */
428
+  __HAL_RCC_DMA1_CLK_ENABLE();
429
+
430
+}
431
+
432
+/**
433
+  * @brief GPIO Initialization Function
434
+  * @param None
435
+  * @retval None
436
+  */
437
+static void MX_GPIO_Init(void)
438
+{
439
+  GPIO_InitTypeDef GPIO_InitStruct = {0};
440
+
441
+  /* GPIO Ports Clock Enable */
442
+  __HAL_RCC_GPIOC_CLK_ENABLE();
443
+  __HAL_RCC_GPIOA_CLK_ENABLE();
444
+  __HAL_RCC_GPIOB_CLK_ENABLE();
445
+
446
+  /*Configure GPIO pin Output Level */
447
+  HAL_GPIO_WritePin(BOOT_LED_GPIO_Port, BOOT_LED_Pin, GPIO_PIN_RESET);
448
+
449
+  /*Configure GPIO pin Output Level */
450
+  HAL_GPIO_WritePin(GPIOA, PAU_RESERVED0_Pin|PAU_RESERVED1_Pin|AMP_EN_Pin, GPIO_PIN_RESET);
451
+
452
+  /*Configure GPIO pin Output Level */
453
+  HAL_GPIO_WritePin(GPIOB, PAU_RESERVED3_Pin|PAU_RESERVED2_Pin|PAU_RESET_Pin, GPIO_PIN_RESET);
454
+
455
+  /*Configure GPIO pin : BOOT_LED_Pin */
456
+  GPIO_InitStruct.Pin = BOOT_LED_Pin;
457
+  GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
458
+  GPIO_InitStruct.Pull = GPIO_NOPULL;
459
+  GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
460
+  HAL_GPIO_Init(BOOT_LED_GPIO_Port, &GPIO_InitStruct);
461
+
462
+  /*Configure GPIO pins : DC_FAIL_ALARM_Pin OVER_INPUT_ALARM_Pin OVER_TEMP_ALARM_Pin */
463
+  GPIO_InitStruct.Pin = DC_FAIL_ALARM_Pin|OVER_INPUT_ALARM_Pin|OVER_TEMP_ALARM_Pin;
464
+  GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
465
+  GPIO_InitStruct.Pull = GPIO_NOPULL;
466
+  HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
467
+
468
+  /*Configure GPIO pins : PAU_RESERVED0_Pin PAU_RESERVED1_Pin AMP_EN_Pin */
469
+  GPIO_InitStruct.Pin = PAU_RESERVED0_Pin|PAU_RESERVED1_Pin|AMP_EN_Pin;
470
+  GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
471
+  GPIO_InitStruct.Pull = GPIO_NOPULL;
472
+  GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
473
+  HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
474
+
475
+  /*Configure GPIO pins : PAU_RESERVED3_Pin PAU_RESERVED2_Pin PAU_RESET_Pin */
476
+  GPIO_InitStruct.Pin = PAU_RESERVED3_Pin|PAU_RESERVED2_Pin|PAU_RESET_Pin;
477
+  GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
478
+  GPIO_InitStruct.Pull = GPIO_NOPULL;
479
+  GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
480
+  HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
481
+
482
+  /*Configure GPIO pins : OVER_POWER_ALARM_Pin VSWR_ALARM_Pin PAU_EN_Pin ALC_ALARM_Pin */
483
+  GPIO_InitStruct.Pin = OVER_POWER_ALARM_Pin|VSWR_ALARM_Pin|PAU_EN_Pin|ALC_ALARM_Pin;
484
+  GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
485
+  GPIO_InitStruct.Pull = GPIO_NOPULL;
486
+  HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
487
+
488
+}
489
+
490
+/* USER CODE BEGIN 4 */
491
+
492
+/* USER CODE END 4 */
493
+
494
+ /**
495
+  * @brief  Period elapsed callback in non blocking mode
496
+  * @note   This function is called  when TIM2 interrupt took place, inside
497
+  * HAL_TIM_IRQHandler(). It makes a direct call to HAL_IncTick() to increment
498
+  * a global variable "uwTick" used as application time base.
499
+  * @param  htim : TIM handle
500
+  * @retval None
501
+  */
502
+void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
503
+{
504
+  /* USER CODE BEGIN Callback 0 */
505
+
506
+  /* USER CODE END Callback 0 */
507
+  if (htim->Instance == TIM2) {
508
+    HAL_IncTick();
509
+  }
510
+  /* USER CODE BEGIN Callback 1 */
511
+  if(htim->Instance == TIM6){
512
+      UartRxTimerCnt++;
513
+      LED_TimerCnt++;
514
+  }
515
+  /* USER CODE END Callback 1 */
516
+}
517
+
518
+/**
519
+  * @brief  This function is executed in case of error occurrence.
520
+  * @retval None
521
+  */
522
+void Error_Handler(void)
523
+{
524
+  /* USER CODE BEGIN Error_Handler_Debug */
525
+  /* User can add his own implementation to report the HAL error return state */
526
+
527
+  /* USER CODE END Error_Handler_Debug */
528
+}
529
+
530
+#ifdef  USE_FULL_ASSERT
531
+/**
532
+  * @brief  Reports the name of the source file and the source line number
533
+  *         where the assert_param error has occurred.
534
+  * @param  file: pointer to the source file name
535
+  * @param  line: assert_param error line source number
536
+  * @retval None
537
+  */
538
+void assert_failed(uint8_t *file, uint32_t line)
539
+{ 
540
+  /* USER CODE BEGIN 6 */
541
+  /* User can add his own implementation to report the file name and line number,
542
+     tex: printf("Wrong parameters value: file %s on line %d\r\n", file, line) */
543
+  /* USER CODE END 6 */
544
+}
545
+#endif /* USE_FULL_ASSERT */
546
+
547
+/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/

+ 560 - 0
insight/Nesslab_200M_System.si4project/Backup/main(8119).c

@@ -0,0 +1,560 @@
1
+/* USER CODE BEGIN Header */
2
+/**
3
+  ******************************************************************************
4
+  * @file           : main.c
5
+  * @brief          : Main program body
6
+  ******************************************************************************
7
+  * @attention
8
+  *
9
+  * <h2><center>&copy; Copyright (c) 2020 STMicroelectronics.
10
+  * All rights reserved.</center></h2>
11
+  *
12
+  * This software component is licensed by ST under Ultimate Liberty license
13
+  * SLA0044, the "License"; You may not use this file except in compliance with
14
+  * the License. You may obtain a copy of the License at:
15
+  *                             www.st.com/SLA0044
16
+  *
17
+  ******************************************************************************
18
+  */
19
+/* USER CODE END Header */
20
+
21
+/* Includes ------------------------------------------------------------------*/
22
+#include "main.h"
23
+
24
+/* Private includes ----------------------------------------------------------*/
25
+/* USER CODE BEGIN Includes */
26
+#include <stdio.h>
27
+#include <string.h>
28
+#include "uart.h"
29
+#include "adc.h"
30
+#include "led.h"
31
+#include "flash.h"
32
+#include "NessLab.h"
33
+/* USER CODE END Includes */
34
+
35
+/* Private typedef -----------------------------------------------------------*/
36
+/* USER CODE BEGIN PTD */
37
+
38
+/* USER CODE END PTD */
39
+
40
+/* Private define ------------------------------------------------------------*/
41
+/* USER CODE BEGIN PD */
42
+/* USER CODE END PD */
43
+
44
+/* Private macro -------------------------------------------------------------*/
45
+/* USER CODE BEGIN PM */
46
+
47
+/* USER CODE END PM */
48
+
49
+/* Private variables ---------------------------------------------------------*/
50
+ADC_HandleTypeDef hadc1;
51
+DMA_HandleTypeDef hdma_adc1;
52
+
53
+TIM_HandleTypeDef htim6;
54
+
55
+UART_HandleTypeDef huart1;
56
+UART_HandleTypeDef huart3;
57
+DMA_HandleTypeDef hdma_usart1_tx;
58
+DMA_HandleTypeDef hdma_usart1_rx;
59
+DMA_HandleTypeDef hdma_usart3_tx;
60
+DMA_HandleTypeDef hdma_usart3_rx;
61
+
62
+/* USER CODE BEGIN PV */
63
+volatile uint32_t UartRxTimerCnt = 0;
64
+
65
+
66
+/* USER CODE END PV */
67
+
68
+/* Private function prototypes -----------------------------------------------*/
69
+void SystemClock_Config(void);
70
+static void MX_GPIO_Init(void);
71
+static void MX_DMA_Init(void);
72
+static void MX_ADC1_Init(void);
73
+static void MX_TIM6_Init(void);
74
+static void MX_USART1_UART_Init(void);
75
+static void MX_USART3_UART_Init(void);
76
+static void MX_NVIC_Init(void);
77
+/* USER CODE BEGIN PFP */
78
+extern void InitUartQueue(pUARTQUEUE pQueue);
79
+extern void Flash_InitRead();
80
+extern uint8_t FLASH_Write_Func(uint8_t* data,uint32_t size);
81
+
82
+
83
+/* USER CODE END PFP */
84
+
85
+/* Private user code ---------------------------------------------------------*/
86
+/* USER CODE BEGIN 0 */
87
+int _write (int file, uint8_t *ptr, uint16_t len)
88
+{
89
+#if 0 // PYJ.2020.06.03_BEGIN --
90
+    HAL_UART_Transmit(&hTest, ptr, len,10);
91
+#else
92
+    HAL_UART_Transmit(&hTerminal, ptr, len,10);
93
+#endif // PYJ.2020.06.03_END --
94
+
95
+    return len;
96
+}
97
+
98
+/* USER CODE END 0 */
99
+
100
+/**
101
+  * @brief  The application entry point.
102
+  * @retval int
103
+  */
104
+int main(void)
105
+{
106
+  /* USER CODE BEGIN 1 */
107
+
108
+
109
+  /* USER CODE END 1 */
110
+
111
+  /* MCU Configuration--------------------------------------------------------*/
112
+
113
+  /* Reset of all peripherals, Initializes the Flash interface and the Systick. */
114
+  HAL_Init();
115
+
116
+  /* USER CODE BEGIN Init */
117
+
118
+  /* USER CODE END Init */
119
+
120
+  /* Configure the system clock */
121
+  SystemClock_Config();
122
+
123
+  /* USER CODE BEGIN SysInit */
124
+
125
+  /* USER CODE END SysInit */
126
+
127
+  /* Initialize all configured peripherals */
128
+  MX_GPIO_Init();
129
+  MX_DMA_Init();
130
+  MX_ADC1_Init();
131
+  MX_TIM6_Init();
132
+  MX_USART1_UART_Init();
133
+  MX_USART3_UART_Init();
134
+
135
+  /* Initialize interrupts */
136
+  MX_NVIC_Init();
137
+  /* USER CODE BEGIN 2 */
138
+  HAL_TIM_Base_Start_IT(&htim6);
139
+
140
+  setbuf(stdout, NULL);
141
+  InitUartQueue(&MainQueue);
142
+  ADC_Initialize();
143
+#if 1 // PYJ.2020.05.06_BEGIN --
144
+    printf("****************************************\r\n");
145
+    printf("NESSLAB Project\r\n");
146
+    printf("Build at %s %s\r\n", __DATE__, __TIME__);
147
+    printf("Copyright (c) 2020. BLUECELL\r\n");
148
+    printf("****************************************\r\n");
149
+#if 0 // PYJ.2020.08.28_BEGIN -- 
150
+    uint8_t Flash_TestDataArray[200] = {0x33,};
151
+
152
+    Flash_InitRead();
153
+    DataErase_Func(FLASH_USER_USE_START_ADDR,200);
154
+    printf("Ram Data Display \r\n");
155
+    for(int i = 0; i < 200; i++){
156
+        Flash_TestDataArray[i] = 0x33;
157
+//        printf("%x ",Flash_TestDataArray[i]);
158
+    }
159
+    FLASH_Write_Func(&Flash_TestDataArray[0],200);
160
+    Flash_InitRead();    
161
+#endif // PYJ.2020.08.28_END -- 
162
+#endif // PYJ.2020.05.06_END --  
163
+  /* USER CODE END 2 */
164
+
165
+  /* Infinite loop */
166
+  /* USER CODE BEGIN WHILE */
167
+
168
+ 
169
+
170
+
171
+  while (1)
172
+  {
173
+#if 0 // PYJ.2020.08.31_BEGIN -- 
174
+    Boot_LED_Toggle(); /*LED Check*/
175
+    Uart_Check();      /*Usart Rx*/
176
+#else
177
+    NessLab_Operate(datatest);
178
+    datatest[4]++;
179
+
180
+    HAL_Delay(3000);
181
+
182
+#endif // PYJ.2020.08.31_END -- 
183
+//    ADC_Check();       /*Det Calc + DL/UL Alarm Check Function*/
184
+    /* USER CODE END WHILE */
185
+
186
+    /* USER CODE BEGIN 3 */
187
+  }
188
+  /* USER CODE END 3 */
189
+}
190
+
191
+/**
192
+  * @brief System Clock Configuration
193
+  * @retval None
194
+  */
195
+void SystemClock_Config(void)
196
+{
197
+  RCC_OscInitTypeDef RCC_OscInitStruct = {0};
198
+  RCC_ClkInitTypeDef RCC_ClkInitStruct = {0};
199
+  RCC_PeriphCLKInitTypeDef PeriphClkInit = {0};
200
+
201
+  /** Initializes the CPU, AHB and APB busses clocks 
202
+  */
203
+  RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSI;
204
+  RCC_OscInitStruct.HSIState = RCC_HSI_ON;
205
+  RCC_OscInitStruct.HSICalibrationValue = RCC_HSICALIBRATION_DEFAULT;
206
+  RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;
207
+  RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSI_DIV2;
208
+  RCC_OscInitStruct.PLL.PLLMUL = RCC_PLL_MUL6;
209
+  if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK)
210
+  {
211
+    Error_Handler();
212
+  }
213
+  /** Initializes the CPU, AHB and APB busses clocks 
214
+  */
215
+  RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK|RCC_CLOCKTYPE_SYSCLK
216
+                              |RCC_CLOCKTYPE_PCLK1|RCC_CLOCKTYPE_PCLK2;
217
+  RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK;
218
+  RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1;
219
+  RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV1;
220
+  RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1;
221
+
222
+  if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_0) != HAL_OK)
223
+  {
224
+    Error_Handler();
225
+  }
226
+  PeriphClkInit.PeriphClockSelection = RCC_PERIPHCLK_ADC;
227
+  PeriphClkInit.AdcClockSelection = RCC_ADCPCLK2_DIV2;
228
+  if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInit) != HAL_OK)
229
+  {
230
+    Error_Handler();
231
+  }
232
+}
233
+
234
+/**
235
+  * @brief NVIC Configuration.
236
+  * @retval None
237
+  */
238
+static void MX_NVIC_Init(void)
239
+{
240
+  /* ADC1_IRQn interrupt configuration */
241
+  HAL_NVIC_SetPriority(ADC1_IRQn, 0, 0);
242
+  HAL_NVIC_EnableIRQ(ADC1_IRQn);
243
+  /* USART1_IRQn interrupt configuration */
244
+  HAL_NVIC_SetPriority(USART1_IRQn, 0, 0);
245
+  HAL_NVIC_EnableIRQ(USART1_IRQn);
246
+  /* USART3_IRQn interrupt configuration */
247
+  HAL_NVIC_SetPriority(USART3_IRQn, 0, 0);
248
+  HAL_NVIC_EnableIRQ(USART3_IRQn);
249
+  /* TIM6_DAC_IRQn interrupt configuration */
250
+  HAL_NVIC_SetPriority(TIM6_DAC_IRQn, 0, 0);
251
+  HAL_NVIC_EnableIRQ(TIM6_DAC_IRQn);
252
+  /* DMA1_Channel2_IRQn interrupt configuration */
253
+  HAL_NVIC_SetPriority(DMA1_Channel2_IRQn, 0, 0);
254
+  HAL_NVIC_EnableIRQ(DMA1_Channel2_IRQn);
255
+  /* DMA1_Channel4_IRQn interrupt configuration */
256
+  HAL_NVIC_SetPriority(DMA1_Channel4_IRQn, 0, 0);
257
+  HAL_NVIC_EnableIRQ(DMA1_Channel4_IRQn);
258
+  /* DMA1_Channel3_IRQn interrupt configuration */
259
+  HAL_NVIC_SetPriority(DMA1_Channel3_IRQn, 0, 0);
260
+  HAL_NVIC_EnableIRQ(DMA1_Channel3_IRQn);
261
+  /* DMA1_Channel1_IRQn interrupt configuration */
262
+  HAL_NVIC_SetPriority(DMA1_Channel1_IRQn, 0, 0);
263
+  HAL_NVIC_EnableIRQ(DMA1_Channel1_IRQn);
264
+  /* DMA1_Channel5_IRQn interrupt configuration */
265
+  HAL_NVIC_SetPriority(DMA1_Channel5_IRQn, 0, 0);
266
+  HAL_NVIC_EnableIRQ(DMA1_Channel5_IRQn);
267
+}
268
+
269
+/**
270
+  * @brief ADC1 Initialization Function
271
+  * @param None
272
+  * @retval None
273
+  */
274
+static void MX_ADC1_Init(void)
275
+{
276
+
277
+  /* USER CODE BEGIN ADC1_Init 0 */
278
+
279
+  /* USER CODE END ADC1_Init 0 */
280
+
281
+  ADC_ChannelConfTypeDef sConfig = {0};
282
+
283
+  /* USER CODE BEGIN ADC1_Init 1 */
284
+
285
+  /* USER CODE END ADC1_Init 1 */
286
+  /** Common config 
287
+  */
288
+  hadc1.Instance = ADC1;
289
+  hadc1.Init.ScanConvMode = ADC_SCAN_ENABLE;
290
+  hadc1.Init.ContinuousConvMode = ENABLE;
291
+  hadc1.Init.DiscontinuousConvMode = DISABLE;
292
+  hadc1.Init.ExternalTrigConv = ADC_SOFTWARE_START;
293
+  hadc1.Init.DataAlign = ADC_DATAALIGN_RIGHT;
294
+  hadc1.Init.NbrOfConversion = 3;
295
+  if (HAL_ADC_Init(&hadc1) != HAL_OK)
296
+  {
297
+    Error_Handler();
298
+  }
299
+  /** Configure Regular Channel 
300
+  */
301
+  sConfig.Channel = ADC_CHANNEL_0;
302
+  sConfig.Rank = ADC_REGULAR_RANK_1;
303
+  sConfig.SamplingTime = ADC_SAMPLETIME_239CYCLES_5;
304
+  if (HAL_ADC_ConfigChannel(&hadc1, &sConfig) != HAL_OK)
305
+  {
306
+    Error_Handler();
307
+  }
308
+  /** Configure Regular Channel 
309
+  */
310
+  sConfig.Channel = ADC_CHANNEL_1;
311
+  sConfig.Rank = ADC_REGULAR_RANK_2;
312
+  if (HAL_ADC_ConfigChannel(&hadc1, &sConfig) != HAL_OK)
313
+  {
314
+    Error_Handler();
315
+  }
316
+  /** Configure Regular Channel 
317
+  */
318
+  sConfig.Channel = ADC_CHANNEL_3;
319
+  sConfig.Rank = ADC_REGULAR_RANK_3;
320
+  if (HAL_ADC_ConfigChannel(&hadc1, &sConfig) != HAL_OK)
321
+  {
322
+    Error_Handler();
323
+  }
324
+  /* USER CODE BEGIN ADC1_Init 2 */
325
+
326
+  /* USER CODE END ADC1_Init 2 */
327
+
328
+}
329
+
330
+/**
331
+  * @brief TIM6 Initialization Function
332
+  * @param None
333
+  * @retval None
334
+  */
335
+static void MX_TIM6_Init(void)
336
+{
337
+
338
+  /* USER CODE BEGIN TIM6_Init 0 */
339
+
340
+  /* USER CODE END TIM6_Init 0 */
341
+
342
+  TIM_MasterConfigTypeDef sMasterConfig = {0};
343
+
344
+  /* USER CODE BEGIN TIM6_Init 1 */
345
+
346
+  /* USER CODE END TIM6_Init 1 */
347
+  htim6.Instance = TIM6;
348
+  htim6.Init.Prescaler = 2400-1;
349
+  htim6.Init.CounterMode = TIM_COUNTERMODE_UP;
350
+  htim6.Init.Period = 10;
351
+  htim6.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE;
352
+  if (HAL_TIM_Base_Init(&htim6) != HAL_OK)
353
+  {
354
+    Error_Handler();
355
+  }
356
+  sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET;
357
+  sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE;
358
+  if (HAL_TIMEx_MasterConfigSynchronization(&htim6, &sMasterConfig) != HAL_OK)
359
+  {
360
+    Error_Handler();
361
+  }
362
+  /* USER CODE BEGIN TIM6_Init 2 */
363
+
364
+  /* USER CODE END TIM6_Init 2 */
365
+
366
+}
367
+
368
+/**
369
+  * @brief USART1 Initialization Function
370
+  * @param None
371
+  * @retval None
372
+  */
373
+static void MX_USART1_UART_Init(void)
374
+{
375
+
376
+  /* USER CODE BEGIN USART1_Init 0 */
377
+
378
+  /* USER CODE END USART1_Init 0 */
379
+
380
+  /* USER CODE BEGIN USART1_Init 1 */
381
+
382
+  /* USER CODE END USART1_Init 1 */
383
+  huart1.Instance = USART1;
384
+  huart1.Init.BaudRate = 115200;
385
+  huart1.Init.WordLength = UART_WORDLENGTH_8B;
386
+  huart1.Init.StopBits = UART_STOPBITS_1;
387
+  huart1.Init.Parity = UART_PARITY_NONE;
388
+  huart1.Init.Mode = UART_MODE_TX_RX;
389
+  huart1.Init.HwFlowCtl = UART_HWCONTROL_NONE;
390
+  huart1.Init.OverSampling = UART_OVERSAMPLING_16;
391
+  if (HAL_UART_Init(&huart1) != HAL_OK)
392
+  {
393
+    Error_Handler();
394
+  }
395
+  /* USER CODE BEGIN USART1_Init 2 */
396
+
397
+  /* USER CODE END USART1_Init 2 */
398
+
399
+}
400
+
401
+/**
402
+  * @brief USART3 Initialization Function
403
+  * @param None
404
+  * @retval None
405
+  */
406
+static void MX_USART3_UART_Init(void)
407
+{
408
+
409
+  /* USER CODE BEGIN USART3_Init 0 */
410
+
411
+  /* USER CODE END USART3_Init 0 */
412
+
413
+  /* USER CODE BEGIN USART3_Init 1 */
414
+
415
+  /* USER CODE END USART3_Init 1 */
416
+  huart3.Instance = USART3;
417
+  huart3.Init.BaudRate = 115200;
418
+  huart3.Init.WordLength = UART_WORDLENGTH_8B;
419
+  huart3.Init.StopBits = UART_STOPBITS_1;
420
+  huart3.Init.Parity = UART_PARITY_NONE;
421
+  huart3.Init.Mode = UART_MODE_TX_RX;
422
+  huart3.Init.HwFlowCtl = UART_HWCONTROL_NONE;
423
+  huart3.Init.OverSampling = UART_OVERSAMPLING_16;
424
+  if (HAL_UART_Init(&huart3) != HAL_OK)
425
+  {
426
+    Error_Handler();
427
+  }
428
+  /* USER CODE BEGIN USART3_Init 2 */
429
+
430
+  /* USER CODE END USART3_Init 2 */
431
+
432
+}
433
+
434
+/** 
435
+  * Enable DMA controller clock
436
+  */
437
+static void MX_DMA_Init(void) 
438
+{
439
+
440
+  /* DMA controller clock enable */
441
+  __HAL_RCC_DMA1_CLK_ENABLE();
442
+
443
+}
444
+
445
+/**
446
+  * @brief GPIO Initialization Function
447
+  * @param None
448
+  * @retval None
449
+  */
450
+static void MX_GPIO_Init(void)
451
+{
452
+  GPIO_InitTypeDef GPIO_InitStruct = {0};
453
+
454
+  /* GPIO Ports Clock Enable */
455
+  __HAL_RCC_GPIOC_CLK_ENABLE();
456
+  __HAL_RCC_GPIOA_CLK_ENABLE();
457
+  __HAL_RCC_GPIOB_CLK_ENABLE();
458
+
459
+  /*Configure GPIO pin Output Level */
460
+  HAL_GPIO_WritePin(BOOT_LED_GPIO_Port, BOOT_LED_Pin, GPIO_PIN_RESET);
461
+
462
+  /*Configure GPIO pin Output Level */
463
+  HAL_GPIO_WritePin(GPIOA, PAU_RESERVED0_Pin|PAU_RESERVED1_Pin|AMP_EN_Pin, GPIO_PIN_RESET);
464
+
465
+  /*Configure GPIO pin Output Level */
466
+  HAL_GPIO_WritePin(GPIOB, PAU_RESERVED3_Pin|PAU_RESERVED2_Pin|PAU_RESET_Pin, GPIO_PIN_RESET);
467
+
468
+  /*Configure GPIO pin : BOOT_LED_Pin */
469
+  GPIO_InitStruct.Pin = BOOT_LED_Pin;
470
+  GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
471
+  GPIO_InitStruct.Pull = GPIO_NOPULL;
472
+  GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
473
+  HAL_GPIO_Init(BOOT_LED_GPIO_Port, &GPIO_InitStruct);
474
+
475
+  /*Configure GPIO pins : DC_FAIL_ALARM_Pin OVER_INPUT_ALARM_Pin OVER_TEMP_ALARM_Pin */
476
+  GPIO_InitStruct.Pin = DC_FAIL_ALARM_Pin|OVER_INPUT_ALARM_Pin|OVER_TEMP_ALARM_Pin;
477
+  GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
478
+  GPIO_InitStruct.Pull = GPIO_NOPULL;
479
+  HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
480
+
481
+  /*Configure GPIO pins : PAU_RESERVED0_Pin PAU_RESERVED1_Pin AMP_EN_Pin */
482
+  GPIO_InitStruct.Pin = PAU_RESERVED0_Pin|PAU_RESERVED1_Pin|AMP_EN_Pin;
483
+  GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
484
+  GPIO_InitStruct.Pull = GPIO_NOPULL;
485
+  GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
486
+  HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
487
+
488
+  /*Configure GPIO pins : PAU_RESERVED3_Pin PAU_RESERVED2_Pin PAU_RESET_Pin */
489
+  GPIO_InitStruct.Pin = PAU_RESERVED3_Pin|PAU_RESERVED2_Pin|PAU_RESET_Pin;
490
+  GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
491
+  GPIO_InitStruct.Pull = GPIO_NOPULL;
492
+  GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
493
+  HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
494
+
495
+  /*Configure GPIO pins : OVER_POWER_ALARM_Pin VSWR_ALARM_Pin PAU_EN_Pin ALC_ALARM_Pin */
496
+  GPIO_InitStruct.Pin = OVER_POWER_ALARM_Pin|VSWR_ALARM_Pin|PAU_EN_Pin|ALC_ALARM_Pin;
497
+  GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
498
+  GPIO_InitStruct.Pull = GPIO_NOPULL;
499
+  HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
500
+
501
+}
502
+
503
+/* USER CODE BEGIN 4 */
504
+
505
+/* USER CODE END 4 */
506
+
507
+ /**
508
+  * @brief  Period elapsed callback in non blocking mode
509
+  * @note   This function is called  when TIM2 interrupt took place, inside
510
+  * HAL_TIM_IRQHandler(). It makes a direct call to HAL_IncTick() to increment
511
+  * a global variable "uwTick" used as application time base.
512
+  * @param  htim : TIM handle
513
+  * @retval None
514
+  */
515
+void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
516
+{
517
+  /* USER CODE BEGIN Callback 0 */
518
+
519
+  /* USER CODE END Callback 0 */
520
+  if (htim->Instance == TIM2) {
521
+    HAL_IncTick();
522
+  }
523
+  /* USER CODE BEGIN Callback 1 */
524
+  if(htim->Instance == TIM6){
525
+      UartRxTimerCnt++;
526
+      LED_TimerCnt++;
527
+  }
528
+  /* USER CODE END Callback 1 */
529
+}
530
+
531
+/**
532
+  * @brief  This function is executed in case of error occurrence.
533
+  * @retval None
534
+  */
535
+void Error_Handler(void)
536
+{
537
+  /* USER CODE BEGIN Error_Handler_Debug */
538
+  /* User can add his own implementation to report the HAL error return state */
539
+
540
+  /* USER CODE END Error_Handler_Debug */
541
+}
542
+
543
+#ifdef  USE_FULL_ASSERT
544
+/**
545
+  * @brief  Reports the name of the source file and the source line number
546
+  *         where the assert_param error has occurred.
547
+  * @param  file: pointer to the source file name
548
+  * @param  line: assert_param error line source number
549
+  * @retval None
550
+  */
551
+void assert_failed(uint8_t *file, uint32_t line)
552
+{ 
553
+  /* USER CODE BEGIN 6 */
554
+  /* User can add his own implementation to report the file name and line number,
555
+     tex: printf("Wrong parameters value: file %s on line %d\r\n", file, line) */
556
+  /* USER CODE END 6 */
557
+}
558
+#endif /* USE_FULL_ASSERT */
559
+
560
+/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/

+ 161 - 0
insight/Nesslab_200M_System.si4project/Backup/uart(3730).c

@@ -0,0 +1,161 @@
1
+/*
2
+ * uart.c
3
+ *
4
+ *  Created on: 2020. 8. 3.
5
+ *      Author: parkyj
6
+ */
7
+#include <stdio.h>
8
+#include <stdint.h>
9
+#include "main.h"
10
+#include "string.h"
11
+
12
+
13
+#include "crc.h"
14
+#include "uart.h"
15
+#include "NessLab.h"
16
+
17
+
18
+
19
+
20
+extern void NessLab_Operate(uint8_t* data);
21
+
22
+UARTQUEUE TerminalQueue;
23
+UARTQUEUE MainQueue;
24
+uart_hal_tx_type uart_hal_tx;
25
+extern volatile uint32_t UartRxTimerCnt;
26
+volatile uint8_t uart_buf[QUEUE_BUFFER_LENGTH];
27
+
28
+extern bool Bluecell_Operate(uint8_t* data);
29
+extern void MBIC_Operate(uint8_t * data);
30
+extern bool NessLab_CheckSum_Check(uint8_t* data,uint8_t size,uint8_t checksum);
31
+
32
+void InitUartQueue(pUARTQUEUE pQueue)
33
+{
34
+  pQueue->data = pQueue->head = pQueue->tail = 0;
35
+  uart_hal_tx.output_p = uart_hal_tx.input_p = 0;
36
+//  HAL_UART_Receive_IT(&huart2,rxBuf,5);
37
+
38
+
39
+
40
+  if (HAL_UART_Receive_DMA(&hMain, MainQueue.Buffer, 1) != HAL_OK)
41
+  //if (HAL_UART_Receive_IT(&hTerminal, TerminalQueue.Buffer, 1) != HAL_OK)
42
+  {
43
+//    _Error_Handler(__FILE__, __LINE__);
44
+  }  
45
+//  if (HAL_UART_Receive_DMA(&hTest, TerminalQueue.Buffer, 1) != HAL_OK)
46
+//  {
47
+////    _Error_Handler(__FILE__, __LINE__);
48
+//  }
49
+  //HAL_UART_Receive_DMA(&hTerminal,  TerminalQueue.Buffer, 1);
50
+  //HAL_UART_Receive_IT(hTerminal, pQueue->Buffer + pQueue->head, 1);
51
+}
52
+
53
+void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)
54
+{
55
+//    UART_HandleTypeDef *dst = (huart->Instance == USART2 ? &hTest:&hTerminal);
56
+    pUARTQUEUE pQueue;
57
+   // printf("Function : %s : \r\n",__func__);
58
+    //printf("%02x ",uart_buf[i]);
59
+    UartRxTimerCnt = 0;
60
+    pQueue = &MainQueue;
61
+    pQueue->head++;
62
+    if (pQueue->head >= QUEUE_BUFFER_LENGTH) pQueue->head = 0;
63
+    pQueue->data++;
64
+    if (pQueue->data >= QUEUE_BUFFER_LENGTH)
65
+        GetDataFromUartQueue(huart);
66
+    HAL_UART_Receive_IT(&hMain, pQueue->Buffer + pQueue->head, 1);
67
+//    HAL_UART_Receive_DMA(&hTest, pQueue->Buffer + pQueue->head, 1);
68
+   // Set_UartRcv(true);
69
+}
70
+
71
+
72
+void PutDataToUartQueue(UART_HandleTypeDef *huart, uint8_t data)
73
+{
74
+    pUARTQUEUE pQueue = &MainQueue;
75
+    if (pQueue->data >= QUEUE_BUFFER_LENGTH)
76
+        GetDataFromUartQueue(huart);
77
+    pQueue->Buffer[pQueue->head++] = data;
78
+    if (pQueue->head == QUEUE_BUFFER_LENGTH) pQueue->head = 0;
79
+    pQueue->data++;
80
+   // HAL_UART_Receive_DMA(&hTerminal,  pQueue->Buffer + pQueue->head, 10);
81
+}
82
+
83
+
84
+void GetDataFromUartQueue(UART_HandleTypeDef *huart)
85
+{
86
+    volatile static int cnt;
87
+    bool ret = 0;
88
+ /*   bool chksumret = 0;
89
+    uint16_t Length = 0;
90
+    uint16_t CrcChk = 0;
91
+    UART_HandleTypeDef *dst = (huart->Instance == USART2 ? &hTest:&hTerminal);*/
92
+//    UART_HandleTypeDef *dst = &hTerminal;
93
+    pUARTQUEUE pQueue = &MainQueue;
94
+//    if (HAL_UART_Transmit(dst, pQueue->Buffer + pQueue->tail, 1, 3000) != HAL_OK)
95
+//    {
96
+//       _Error_Handler(__FILE__, __LINE__);
97
+//    }
98
+    uart_buf[cnt++] = *(pQueue->Buffer + pQueue->tail); 
99
+//#ifdef DEBUG_PRINT
100
+//    printf("%02x ",*(pQueue->Buffer + pQueue->tail)) ;
101
+//#endif /* DEBUG_PRINT */
102
+
103
+    pQueue->tail++;
104
+    if (pQueue->tail >= QUEUE_BUFFER_LENGTH) pQueue->tail = 0;
105
+    pQueue->data--;
106
+    
107
+    if(pQueue->data == 0){
108
+
109
+//        printf("data cnt zero !!!  \r\n");
110
+        //RF_Ctrl_Main(&uart_buf[Header]);
111
+//        HAL_UART_Transmit(dst, &temp_buf[BLUECELL_HEADER00], 11, 3000);
112
+#if 1// PYJ.2019.07.15_BEGIN --
113
+            printf("\r\n[RX]");
114
+            for(int i = 0; i < cnt; i++){
115
+                printf("%02x ",uart_buf[i]);
116
+            }
117
+//            printf("Checksum Index : %d   %x\r\n",uart_buf[NessLab_Req_DataLength] + NessLab_Req_DataLength + 1,uart_buf[uart_buf[NessLab_Req_DataLength] + NessLab_Req_DataLength + 1]);
118
+//            printf(ANSI_COLOR_GREEN"\r\n CNT : %d \r\n"ANSI_COLOR_RESET,cnt);
119
+#endif // PYJ.2019.07.15_END --
120
+        ret = NessLab_CheckSum_Check(&uart_buf[NessLab_Req_MsgID0],uart_buf[NessLab_DataLength] + 5 ,uart_buf[uart_buf[NessLab_Req_DataLength] + NessLab_Req_DataLength + 1]);
121
+        if(ret == true){
122
+			NessLab_Operate(&uart_buf[0]);
123
+            printf("Checksum OK \r\n");
124
+        }else{
125
+            printf("Checksum Error \r\n");
126
+            printf("uart_buf[NessLab_Req_DataLength] : %x \r\n",uart_buf[NessLab_Req_DataLength]);
127
+            printf("NessLab_Req_DataLength : %d \r\n",NessLab_Req_DataLength);
128
+            printf("Checksum Index : %d   %x\r\n",uart_buf[NessLab_Req_DataLength] + NessLab_Req_DataLength + 1,uart_buf[uart_buf[NessLab_Req_DataLength] + NessLab_Req_DataLength + 1]);            
129
+        }
130
+		cnt = 0;
131
+    }
132
+}
133
+
134
+void Uart_Check(void){
135
+  while (MainQueue.data > 0 && UartRxTimerCnt > 50) GetDataFromUartQueue(&hMain);
136
+}
137
+
138
+
139
+void Uart1_Data_Send(uint8_t* data,uint16_t size){
140
+
141
+      HAL_UART_Transmit_DMA(&hMain, &data[0],size);
142
+  //HAL_UART_Transmit_IT(&hTerminal, &data[0],size);
143
+//    printf("data[278] : %x \r\n",data[278]);
144
+////    HAL_Delay(1);   
145
+#if 1 // PYJ.2020.07.19_BEGIN -- 
146
+    printf("\r\n [TX] : ");
147
+    for(int i = 0; i< size; i++)
148
+        printf("%02x ",data[i]);
149
+//    printf("};\r\n\tCOUNT : %d \r\n",size);
150
+    printf("\r\n");
151
+#endif // PYJ.2020.07.19_END -- 
152
+//    printf("\r\n [TX] : {");
153
+//    for(int i = 0; i< size; i++){
154
+//        printf(",%02x ",data[i]);
155
+//        data[i] = 0;
156
+//    }
157
+//    printf("};\r\n\tCOUNT : %d \r\n",size);
158
+//    printf("\r\n");
159
+    
160
+}
161
+

BIN
insight/Nesslab_200M_System.si4project/Nesslab_200M_System.sip_xm


BIN
insight/Nesslab_200M_System.si4project/Nesslab_200M_System.siwork


BIN
insight/Nesslab_200M_System.si4project/cache/parse/.._Bluecell_Inc_NessLab.h.sisc


BIN
insight/Nesslab_200M_System.si4project/cache/parse/.._Bluecell_Inc_adc.h.sisc


BIN
insight/Nesslab_200M_System.si4project/cache/parse/.._Bluecell_Inc_crc.h.sisc


BIN
insight/Nesslab_200M_System.si4project/cache/parse/.._Bluecell_Inc_flash.h.sisc


BIN
insight/Nesslab_200M_System.si4project/cache/parse/.._Bluecell_Inc_uart.h.sisc


BIN
insight/Nesslab_200M_System.si4project/cache/parse/.._Bluecell_Src_NessLab.c.sisc


BIN
insight/Nesslab_200M_System.si4project/cache/parse/.._Bluecell_Src_adc.c.sisc


BIN
insight/Nesslab_200M_System.si4project/cache/parse/.._Bluecell_Src_crc.c.sisc


BIN
insight/Nesslab_200M_System.si4project/cache/parse/.._Bluecell_Src_flash.c.sisc


BIN
insight/Nesslab_200M_System.si4project/cache/parse/.._Bluecell_Src_led.c.sisc


BIN
insight/Nesslab_200M_System.si4project/cache/parse/.._Bluecell_Src_uart.c.sisc


BIN
insight/Nesslab_200M_System.si4project/cache/parse/.._Drivers_STM32F1xx_HAL_Driver_Inc_stm32f1xx_hal_flash_ex.h.sisc


BIN
insight/Nesslab_200M_System.si4project/cache/parse/.._Inc_main.h.sisc


BIN
insight/Nesslab_200M_System.si4project/cache/parse/.._Inc_stm32f1xx_hal_conf.h.sisc


BIN
insight/Nesslab_200M_System.si4project/cache/parse/.._Inc_stm32f1xx_it.h.sisc


BIN
insight/Nesslab_200M_System.si4project/cache/parse/.._Src_main.c.sisc


BIN
insight/Nesslab_200M_System.si4project/cache/parse/.._Src_stm32f1xx_hal_msp.c.sisc


BIN
insight/Nesslab_200M_System.si4project/cache/parse/.._Src_stm32f1xx_hal_timebase_tim.c.sisc


BIN
insight/Nesslab_200M_System.si4project/cache/parse/.._Src_stm32f1xx_it.c.sisc