|
|
@@ -55,9 +55,11 @@ DMA_HandleTypeDef hdma_usart3_rx;
|
|
|
/* USER CODE BEGIN PV */
|
|
|
uint8_t rx_buf[100] = {0};
|
|
|
uint8_t rx_buf_uart2[100] = {0};
|
|
|
-uint8_t totalData[30][100] = {0};
|
|
|
+uint8_t totalData[120][50] = {0};
|
|
|
uint8_t uart2_rx_byte[10] = {0};
|
|
|
uint8_t loraSendNextDataFlag = 0;
|
|
|
+uint8_t baseRandomTimer = 60;
|
|
|
+uint8_t RandomTimer= 120;
|
|
|
// uint8_t loraDataErrorCount = 0;
|
|
|
uint8_t workMode = 0; // 0: 接收蓝牙数据 1: 使用lora发生数据 2:等待间隔时间
|
|
|
uint8_t receiveBlDataCount = 0;
|
|
|
@@ -104,7 +106,7 @@ void sentLoraData(uint8_t sendDataNum) {
|
|
|
}
|
|
|
|
|
|
uint8_t randomFun() {
|
|
|
- return rand() % 60 + 40; //随机时间1分钟到3分钟之间随机数
|
|
|
+ return rand() % RandomTimer + baseRandomTimer; //随机时间1分钟到3分钟之间随机数
|
|
|
}
|
|
|
/* USER CODE END 0 */
|
|
|
|
|
|
@@ -154,12 +156,17 @@ int main(void)
|
|
|
|
|
|
E104_BT5005A_ROLE_Fun();
|
|
|
E104_BT5005A_SCANINTV_Fun();
|
|
|
+ E104_BT5005A_SCANWND_Fun();
|
|
|
E104_BT5005A_RESET_Fun();
|
|
|
|
|
|
const char *lora_msg = "AT+OPTION=3,0";
|
|
|
HAL_UART_Transmit(&huart2, (uint8_t *)lora_msg, strlen(lora_msg), HAL_MAX_DELAY);
|
|
|
const char *lora_msg1 = "AT+TYPE=1";
|
|
|
HAL_UART_Transmit(&huart2, (uint8_t *)lora_msg1, strlen(lora_msg1), HAL_MAX_DELAY);
|
|
|
+ const char *lora_msg2 = "AT+MAC=?";
|
|
|
+ HAL_UART_Transmit(&huart2, (uint8_t *)lora_msg2, strlen(lora_msg2), HAL_MAX_DELAY);
|
|
|
+
|
|
|
+ // MAC=0x0569a82a
|
|
|
|
|
|
uint8_t count = 0;
|
|
|
uint8_t randomTime = 0;
|
|
|
@@ -174,7 +181,7 @@ int main(void)
|
|
|
/* USER CODE END WHILE */
|
|
|
if (workMode == 0) { // 接收蓝牙数据
|
|
|
printf("接收中第%d秒,接受了%d位数据\r\n", count, receiveBlDataCount);
|
|
|
- if (count > 10) { //搜10秒数据
|
|
|
+ if (count > 30 || receiveBlDataCount >= 115) { //搜10秒数据
|
|
|
E104_BT5005A_SLEEP_Fun();
|
|
|
HAL_Delay(5);//等待蓝牙模块进入睡眠模式
|
|
|
// receiveBlDataCount = 0;
|
|
|
@@ -184,9 +191,9 @@ int main(void)
|
|
|
count++;
|
|
|
}
|
|
|
}else if (workMode == 1) { // 发送数据给Lora
|
|
|
- printf("发送第%d个数据,总数据大小为%d\r\n", count,receiveBlDataCount);
|
|
|
if (count < receiveBlDataCount)
|
|
|
{
|
|
|
+ printf("发送第%d个数据,总数据大小为%d\r\n", count,receiveBlDataCount);
|
|
|
// 启动 USART2 DMA 接收
|
|
|
sentLoraData(count);
|
|
|
if (loraSendNextDataFlag == 0 || loraSendNextDataFlag > 3) {
|
|
|
@@ -198,12 +205,15 @@ int main(void)
|
|
|
printf("send error!\r\n");
|
|
|
}
|
|
|
}else {
|
|
|
+ printf("发送结束,总数据大小为%d\r\n",receiveBlDataCount);
|
|
|
+ const char *end_msg = "SENDEND\r\n";
|
|
|
+ HAL_UART_Transmit(&huart2, (uint8_t *)end_msg, strlen(end_msg), HAL_MAX_DELAY);
|
|
|
receiveBlDataCount = 0;
|
|
|
workMode = 2;
|
|
|
count = 0;
|
|
|
}
|
|
|
}else if (workMode == 2) {
|
|
|
- printf("等待中\r\n");
|
|
|
+ printf("等待进度:%d\r\n", count);
|
|
|
printf("等待时间%d秒\r\n",randomTime);
|
|
|
if (randomTime == 0) {
|
|
|
randomTime = randomFun();
|
|
|
@@ -217,7 +227,12 @@ int main(void)
|
|
|
count++;
|
|
|
}
|
|
|
}
|
|
|
- HAL_Delay(1000);
|
|
|
+ if (workMode == 1) {
|
|
|
+ HAL_Delay(300);
|
|
|
+ }else {
|
|
|
+ HAL_Delay(1000);
|
|
|
+ }
|
|
|
+
|
|
|
/* USER CODE BEGIN 3 */
|
|
|
}
|
|
|
/* USER CODE END 3 */
|