|
@@ -68,10 +68,11 @@ TIM_HandleTypeDef htim6;
|
68
|
68
|
|
69
|
69
|
UART_HandleTypeDef huart1;
|
70
|
70
|
UART_HandleTypeDef huart2;
|
|
71
|
+DMA_HandleTypeDef hdma_usart1_rx;
|
71
|
72
|
|
72
|
73
|
/* USER CODE BEGIN PV */
|
73
|
|
-uint8_t rx1_data[1];
|
74
|
|
-uint8_t rx2_data[1];
|
|
74
|
+uint8_t rx1_data[buf_size];
|
|
75
|
+uint8_t rx2_data[buf_size];
|
75
|
76
|
|
76
|
77
|
|
77
|
78
|
uint8_t ring_buf[buf_size];
|
|
@@ -110,6 +111,7 @@ typedef enum{
|
110
|
111
|
/* Private function prototypes -----------------------------------------------*/
|
111
|
112
|
void SystemClock_Config(void);
|
112
|
113
|
static void MX_GPIO_Init(void);
|
|
114
|
+static void MX_DMA_Init(void);
|
113
|
115
|
static void MX_TIM6_Init(void);
|
114
|
116
|
static void MX_USART1_UART_Init(void);
|
115
|
117
|
static void MX_USART2_UART_Init(void);
|
|
@@ -149,9 +151,9 @@ void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)
|
149
|
151
|
count_in1 = 0;
|
150
|
152
|
}
|
151
|
153
|
#endif // PYJ.2019.04.19_END --
|
152
|
|
- HAL_UART_Receive_IT(&huart1,&rx1_data[0],1);
|
|
154
|
+// HAL_UART_Receive_IT(&huart1,&rx1_data[0],1);
|
153
|
155
|
}
|
154
|
|
- if(huart->Instance == USART2) // Lora?? ?†µ?‹ ?•˜?Š� ?�¬?Џ
|
|
156
|
+ if(huart->Instance == USART2) // Lora?? ?? Â???¹Â???¢Ë??Å ?? ?Â�¬?Џ
|
155
|
157
|
{
|
156
|
158
|
buf2[count_in2] = rx2_data[0];//(uint8_t)USART2->DR;
|
157
|
159
|
if(++count_in2>=buf_size){ count_in2 = 0; }
|
|
@@ -168,7 +170,7 @@ void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)
|
168
|
170
|
HAL_UART_Receive_IT(&huart2,&rx2_data[0],1);
|
169
|
171
|
}
|
170
|
172
|
#if 0 // PYJ.2019.04.13_BEGIN --
|
171
|
|
- if(huart->Instance == USART3) //GUI ?? ?†µ?‹ ?•˜?Š� Port
|
|
173
|
+ if(huart->Instance == USART3) //GUI ?? ?? Â???¹Â???¢Ë??Å ?? Port
|
172
|
174
|
{
|
173
|
175
|
buf[count_in3] = rx3_data[0];//(uint8_t)USART2->DR;
|
174
|
176
|
if(buf[count_in3++] == 0xEB)UartDataRecvSet(3);
|
|
@@ -402,10 +404,10 @@ void RGB_Sensor_PowerOnOff(uint8_t id){
|
402
|
404
|
#define END_ADDR FLASH_USER + 262144 // 256K
|
403
|
405
|
//----------------------------------------------------
|
404
|
406
|
#if 0 // PYJ.2019.03.20_BEGIN --
|
405
|
|
-void test_write() // 쓰기함수
|
|
407
|
+void test_write() // ?“°ê¸°í•¨?ˆ˜
|
406
|
408
|
{
|
407
|
409
|
|
408
|
|
- __HAL_RCC_TIM7_CLK_DISABLE(); // 매ì�¸íƒ€ì�´ë¨¸ë¥¼ ì •ì§€í•©ë‹ˆë‹¤
|
|
410
|
+ __HAL_RCC_TIM7_CLK_DISABLE(); // 매ì�¸???�´ë¨¸ë?? ? •ì§??•©?‹ˆ?‹¤
|
409
|
411
|
uint32_t Address = 0;
|
410
|
412
|
Address = StartAddr;
|
411
|
413
|
// printf("================First============ \r\n");
|
|
@@ -416,10 +418,10 @@ void test_write() // 쓰기함수
|
416
|
418
|
// Address += 4;
|
417
|
419
|
// }
|
418
|
420
|
|
419
|
|
-// HAL_FLASH_Unlock(); // lock 풀기
|
|
421
|
+// HAL_FLASH_Unlock(); // lock ??�
|
420
|
422
|
// HAL_FLASH_Program(FLASH_TYPEPROGRAM_WORD, START_ADDR, (uint32_t)0x12345678); //test
|
421
|
|
-// HAL_FLASH_Lock(); // lock ìž ê·¸ê¸°
|
422
|
|
-// __HAL_RCC_TIM7_CLK_ENABLE(); // 매�타�머를 재시작합니다
|
|
423
|
+// HAL_FLASH_Lock(); // lock ?ž 그기
|
|
424
|
+// __HAL_RCC_TIM7_CLK_ENABLE(); // 매ì�¸???�´ë¨¸ë?? ?ž¬?‹œ?ž‘?•©?‹ˆ?‹¤
|
423
|
425
|
Address = StartAddr;
|
424
|
426
|
printf("================Second============ \r\n");
|
425
|
427
|
|
|
@@ -438,7 +440,7 @@ void test_write() // 쓰기함수
|
438
|
440
|
|
439
|
441
|
|
440
|
442
|
#if 1 // PYJ.2019.03.20_BEGIN --
|
441
|
|
-void test_read(void) // 쓰기함수
|
|
443
|
+void test_read(void) // ?“°ê¸°í•¨?ˆ˜
|
442
|
444
|
{
|
443
|
445
|
uint32_t Address = 0x08000000;
|
444
|
446
|
uint8_t aa = 0;
|
|
@@ -470,7 +472,7 @@ void Flash_RGB_Data_Write(uint32_t Addr,uint8_t* data){
|
470
|
472
|
HAL_FLASH_Program(FLASH_TYPEPROGRAM_HALFWORD,Addr + 4 , (uint16_t)temp_Blue);
|
471
|
473
|
|
472
|
474
|
}
|
473
|
|
-void Flash_write(uint8_t* data) // 쓰기함수
|
|
475
|
+void Flash_write(uint8_t* data) // ?“°ê¸°í•¨?ˆ˜
|
474
|
476
|
{
|
475
|
477
|
|
476
|
478
|
/*Variable used for Erase procedure*/
|
|
@@ -483,8 +485,8 @@ void Flash_write(uint8_t* data) // 쓰기함수
|
483
|
485
|
// EraseInitStruct.NbPages = (FLASH_USER_END_ADDR - FLASH_USER_START_ADDR) / FLASH_PAGE_SIZE;
|
484
|
486
|
Address = START_ADDR;
|
485
|
487
|
|
486
|
|
- __HAL_RCC_TIM7_CLK_DISABLE(); // 매ì�¸íƒ€ì�´ë¨¸ë¥¼ ì •ì§€í•©ë‹ˆë‹¤
|
487
|
|
- HAL_FLASH_Unlock(); // lock 풀기
|
|
488
|
+ __HAL_RCC_TIM7_CLK_DISABLE(); // 매ì�¸???�´ë¨¸ë?? ? •ì§??•©?‹ˆ?‹¤
|
|
489
|
+ HAL_FLASH_Unlock(); // lock ??�
|
488
|
490
|
// if (HAL_FLASHEx_Erase(&EraseInitStruct, &PAGEError) != HAL_OK){
|
489
|
491
|
// printf("Erase Failed \r\n");
|
490
|
492
|
// }else{
|
|
@@ -519,11 +521,11 @@ void Flash_write(uint8_t* data) // 쓰기함수
|
519
|
521
|
|
520
|
522
|
}
|
521
|
523
|
Flash_RGB_Data_Write(Address,&data[bluecell_stx]);
|
522
|
|
- HAL_FLASH_Lock(); // lock ìž ê·¸ê¸°
|
523
|
|
- __HAL_RCC_TIM7_CLK_ENABLE(); // 매�타�머를 재시작합니다
|
|
524
|
+ HAL_FLASH_Lock(); // lock ?ž 그기
|
|
525
|
+ __HAL_RCC_TIM7_CLK_ENABLE(); // 매ì�¸???�´ë¨¸ë?? ?ž¬?‹œ?ž‘?•©?‹ˆ?‹¤
|
524
|
526
|
|
525
|
527
|
}
|
526
|
|
-void Flash_InitRead(void) // 쓰기함수
|
|
528
|
+void Flash_InitRead(void) // ?“°ê¸°í•¨?ˆ˜
|
527
|
529
|
{
|
528
|
530
|
uint32_t Address = 0;
|
529
|
531
|
Address = StartAddr;
|
|
@@ -546,6 +548,16 @@ void Flash_InitRead(void) // 쓰기함수
|
546
|
548
|
|
547
|
549
|
SX1276_hw_t SX1276_hw;
|
548
|
550
|
SX1276_t SX1276;
|
|
551
|
+Default_SX1276_t Default_SX1276 =
|
|
552
|
+{
|
|
553
|
+ SX1276_917MHZ,
|
|
554
|
+ SX1276_POWER_17DBM,
|
|
555
|
+ SX1276_LORA_SF_8,
|
|
556
|
+ SX1276_LORA_BW_20_8KHZ,
|
|
557
|
+ 10,
|
|
558
|
+ SX1276_LORA_G1,
|
|
559
|
+};
|
|
560
|
+
|
549
|
561
|
|
550
|
562
|
int master;
|
551
|
563
|
int ret;
|
|
@@ -555,6 +567,12 @@ char buffer[100];
|
555
|
567
|
int message_length;
|
556
|
568
|
int message;
|
557
|
569
|
|
|
570
|
+
|
|
571
|
+
|
|
572
|
+
|
|
573
|
+
|
|
574
|
+
|
|
575
|
+
|
558
|
576
|
/* USER CODE END 0 */
|
559
|
577
|
|
560
|
578
|
/**
|
|
@@ -588,6 +606,7 @@ int main(void)
|
588
|
606
|
|
589
|
607
|
/* Initialize all configured peripherals */
|
590
|
608
|
MX_GPIO_Init();
|
|
609
|
+ MX_DMA_Init();
|
591
|
610
|
MX_TIM6_Init();
|
592
|
611
|
MX_USART1_UART_Init();
|
593
|
612
|
MX_USART2_UART_Init();
|
|
@@ -597,9 +616,9 @@ int main(void)
|
597
|
616
|
MX_NVIC_Init();
|
598
|
617
|
/* USER CODE BEGIN 2 */
|
599
|
618
|
HAL_TIM_Base_Start_IT(&htim6);
|
600
|
|
- HAL_UART_Receive_IT(&huart1, &rx1_data[0],1);
|
|
619
|
+ HAL_UART_Receive_DMA(&huart1, rx1_data, 1);
|
601
|
620
|
HAL_UART_Receive_IT(&huart2, &rx2_data[0],1);
|
602
|
|
- setbuf(stdout, NULL); // \n ì�„ ì �ì�„ ë–„ë§Œ
|
|
621
|
+ setbuf(stdout, NULL); // \n ?�„ ? �?�„ ?–„ë§?
|
603
|
622
|
#if 1 // PYJ.2019.03.04_BEGIN --
|
604
|
623
|
printf("****************************************\r\n");
|
605
|
624
|
printf("RGB Project\r\n");
|
|
@@ -623,9 +642,12 @@ int main(void)
|
623
|
642
|
SX1276_hw.reset.pin = SX1276_RESET_Pin;
|
624
|
643
|
// SX1276_hw.spi = &hspi3;
|
625
|
644
|
SX1276.hw = &SX1276_hw;
|
|
645
|
+
|
|
646
|
+
|
|
647
|
+
|
626
|
648
|
printf("Configuring LoRa module\r\n");
|
627
|
|
- SX1276_begin(&SX1276, SX1276_917MHZ, SX1276_POWER_17DBM, SX1276_LORA_SF_8,
|
628
|
|
- SX1276_LORA_BW_20_8KHZ, 10);
|
|
649
|
+ SX1276_begin(&SX1276, Default_SX1276.frequency, Default_SX1276.power, Default_SX1276.LoRa_Rate,
|
|
650
|
+ Default_SX1276.LoRa_BW, 10,Default_SX1276.LoRa_Lna);
|
629
|
651
|
printf("Done configuring LoRaModule\r\n");
|
630
|
652
|
master = 0;
|
631
|
653
|
if (master == 1) {
|
|
@@ -730,9 +752,8 @@ int main(void)
|
730
|
752
|
SensorID = 0;
|
731
|
753
|
}else{
|
732
|
754
|
RGB_Sensor_PowerOnOff(IDAutoSetRequest_data[4]);
|
733
|
|
- HAL_Delay(450);
|
|
755
|
+ HAL_Delay(75);
|
734
|
756
|
RGB_Controller_Func(&IDAutoSetRequest_data[bluecell_stx]);
|
735
|
|
- HAL_Delay(450);
|
736
|
757
|
}
|
737
|
758
|
}
|
738
|
759
|
else{
|
|
@@ -796,12 +817,15 @@ void SystemClock_Config(void)
|
796
|
817
|
*/
|
797
|
818
|
static void MX_NVIC_Init(void)
|
798
|
819
|
{
|
799
|
|
- /* USART2_IRQn interrupt configuration */
|
800
|
|
- HAL_NVIC_SetPriority(USART2_IRQn, 0, 0);
|
801
|
|
- HAL_NVIC_EnableIRQ(USART2_IRQn);
|
|
820
|
+ /* DMA1_Channel5_IRQn interrupt configuration */
|
|
821
|
+ HAL_NVIC_SetPriority(DMA1_Channel5_IRQn, 0, 0);
|
|
822
|
+ HAL_NVIC_EnableIRQ(DMA1_Channel5_IRQn);
|
802
|
823
|
/* USART1_IRQn interrupt configuration */
|
803
|
824
|
HAL_NVIC_SetPriority(USART1_IRQn, 0, 0);
|
804
|
825
|
HAL_NVIC_EnableIRQ(USART1_IRQn);
|
|
826
|
+ /* USART2_IRQn interrupt configuration */
|
|
827
|
+ HAL_NVIC_SetPriority(USART2_IRQn, 0, 0);
|
|
828
|
+ HAL_NVIC_EnableIRQ(USART2_IRQn);
|
805
|
829
|
/* TIM6_IRQn interrupt configuration */
|
806
|
830
|
HAL_NVIC_SetPriority(TIM6_IRQn, 0, 0);
|
807
|
831
|
HAL_NVIC_EnableIRQ(TIM6_IRQn);
|
|
@@ -945,6 +969,16 @@ static void MX_USART2_UART_Init(void)
|
945
|
969
|
|
946
|
970
|
}
|
947
|
971
|
|
|
972
|
+/**
|
|
973
|
+ * Enable DMA controller clock
|
|
974
|
+ */
|
|
975
|
+static void MX_DMA_Init(void)
|
|
976
|
+{
|
|
977
|
+ /* DMA controller clock enable */
|
|
978
|
+ __HAL_RCC_DMA1_CLK_ENABLE();
|
|
979
|
+
|
|
980
|
+}
|
|
981
|
+
|
948
|
982
|
/**
|
949
|
983
|
* @brief GPIO Initialization Function
|
950
|
984
|
* @param None
|