|
|
@@ -23,6 +23,7 @@
|
|
|
/* USER CODE BEGIN Includes */
|
|
|
#include <time.h>
|
|
|
#include <stdlib.h>
|
|
|
+#include "ring_buffer.h"
|
|
|
|
|
|
#include "string.h"
|
|
|
#include "E52.h"
|
|
|
@@ -64,6 +65,10 @@ uint8_t uart2_rx_byte[10] = {0};
|
|
|
uint8_t loraSendNextDataFlag = 0;
|
|
|
uint8_t baseRandomTimer = 3*60;
|
|
|
uint8_t RandomTimer= 3*60;
|
|
|
+
|
|
|
+RingBuffer queue1;
|
|
|
+RingBuffer queue2;
|
|
|
+
|
|
|
// uint8_t loraDataErrorCount = 0;
|
|
|
uint8_t workMode = 0; // 0: 接收蓝牙数据 1: 使用lora发生数据 2:等待间隔时间
|
|
|
uint8_t receiveBlDataCount = 0;
|
|
|
@@ -258,6 +263,29 @@ int main(void)
|
|
|
|
|
|
powerOn();
|
|
|
E52_CtlPowerOn_Fun();
|
|
|
+ uint8_t data;
|
|
|
+ uint8_t testVal = 0x10; // 初始测试值
|
|
|
+
|
|
|
+ while (1)
|
|
|
+ {
|
|
|
+ // ===== 手动往 queue1 添加数据 =====
|
|
|
+ RingBuffer_Enqueue(&queue1, testVal++);
|
|
|
+ if (testVal > 0x1F) testVal = 0x10; // 模拟循环数据
|
|
|
+
|
|
|
+ // 如果 queue1 里有数据,就转存到 queue2
|
|
|
+ if (RingBuffer_Dequeue(&queue1, &data) == 0) {
|
|
|
+ RingBuffer_Enqueue(&queue2, data);
|
|
|
+ }
|
|
|
+
|
|
|
+ // 如果 queue2 有数据,就读出来并打印
|
|
|
+ if (RingBuffer_Dequeue(&queue2, &data) == 0) {
|
|
|
+ printf("Queue2 Data: 0x%02X\r\n", data);
|
|
|
+ }
|
|
|
+
|
|
|
+ HAL_Delay(1000); // 1 秒打印一次
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
|
|
|
// 启动 USART2 DMA 接收
|
|
|
HAL_UART_Receive_DMA(&huart3, rx_buf, sizeof(rx_buf));
|