From 4adc78553c8d48ff122506195fa33641134bd7b1 Mon Sep 17 00:00:00 2001
From: yincheng.zhong <634916154@qq.com>
Date: 星期六, 13 十二月 2025 18:55:14 +0800
Subject: [PATCH] 路径点不重复的控制算法测试通了,但是好像不如之前路径点重复的版本好。增加了蓝牙接口部分。准备移植外包的MQTT。

---
 STM32H743/FML/bluetooth.h |  105 +++++++++++++++++++++++++++++-----------------------
 1 files changed, 59 insertions(+), 46 deletions(-)

diff --git a/STM32H743/FML/bluetooth.h b/STM32H743/FML/bluetooth.h
index afbf56e..7ea8daf 100644
--- a/STM32H743/FML/bluetooth.h
+++ b/STM32H743/FML/bluetooth.h
@@ -1,12 +1,13 @@
 /*******************************************************************************
  * File Name         : bluetooth.h
- * Description       :
- * Created on        : 
- * Author            : 
+ * Description       : Bluetooth Communication Protocol (New V2)
+ * Created on        : 2025-12-04
+ * Author            : HIDO
  *******************************************************************************/
 
 #ifndef FML_BLUETOOTH_H_
 #define FML_BLUETOOTH_H_
+
 /*******************************************************************************
  *                              Include Files                                  *
  *******************************************************************************/
@@ -16,60 +17,72 @@
 /*******************************************************************************
  *                                  Macro                                      *
  *******************************************************************************/
-#define OUTPUT_BUF_SIZE                         512
-#define BT_UART_RX_BUF_SIZE                    256
-#define BT_UART_TX_BUF_SIZE                    (1024*2)
-#define BT_UART_TX_QUEUE_MEMBER_CNT            64
+#define BT_UART_RX_BUF_SIZE                    1024
+#define UART6_DMA_RX_BUF_SIZE                  BT_UART_RX_BUF_SIZE
+#define BT_UART_TX_BUF_SIZE                    1024
+#define BT_UART_TX_QUEUE_MEMBER_CNT            16
 
-// 定义最大重试次数
-#define MAX_RETRY 5
-#define RESPONSE_TIMEOUT 1000  // 1秒超时
-#define UART6_DMA_RX_BUF_SIZE  50
+// Protocol Constants
+#define BT_FRAME_HEADER1                       0xAA
+#define BT_FRAME_HEADER2                       0x55
+#define BT_FRAME_TAIL                          0x0D
 
-
-// 定义状态枚举
-typedef enum {
-    BT_STATE_IDLE = 0,          // 空闲状态
-    BT_STATE_RECEIVING = 1,     // 接收数据中
-    BT_STATE_COMPLETE = 2       // 数据接收完成
-} BT_RevState;
-
-// 定义状态枚举
-typedef enum {
-    BT_CONFIG_FAIL= 0,          // 失败
-    BT_CONFIG_SUCCESS = 1,     // 成功
-} BT_Config;
-
-// 摇杆输入结构体
-typedef struct {
-    int16_t x1;
-    int16_t y1;
-    int16_t x2;
-    int16_t y2;
-} Joystick_t;
-
-
-/*******************************************************************************
- *                        Local Function Declaration                           *
- *******************************************************************************/
-extern HIDO_UINT8 uart6_dma_recv_end_flag;
-extern HIDO_UINT8 uart6_dma_recv_len;
-extern HIDO_UINT8 uart6_dma_rxbuf[UART6_DMA_RX_BUF_SIZE];
+// Command Types
+#define BT_CMD_PATH_COORDS                     0x01
+#define BT_CMD_REF_POINT                       0x02
+#define BT_CMD_CONTROL                         0x03
 
 /*******************************************************************************
  *                             Type Definition                                 *
  *******************************************************************************/
 
+#pragma pack(push, 1)
+
+typedef struct
+{
+    HIDO_UINT8  m_u8Header1;
+    HIDO_UINT8  m_u8Header2;
+    HIDO_UINT8  m_u8CmdType;
+    HIDO_UINT16 m_u16DataLen;
+    HIDO_UINT16 m_u16SeqNum;
+} ST_BT_FrameHeader;
+
+typedef struct
+{
+    HIDO_DOUBLE m_dX;
+    HIDO_DOUBLE m_dY;
+} ST_BT_PathPoint;
+
+typedef struct
+{
+    HIDO_DOUBLE m_dLat;
+    HIDO_DOUBLE m_dLon;
+    HIDO_CHAR   m_cLatDir;
+    HIDO_CHAR   m_cLonDir;
+    HIDO_UINT8  m_au8Reserved[14];
+} ST_BT_RefPointData;
+
+typedef struct
+{
+    HIDO_INT8   m_i8SteerSpeed;  // -100 to 100 (Negative Left)
+    HIDO_INT8   m_i8TravelSpeed; // -100 to 100 (Negative Reverse)
+    HIDO_UINT8  m_au8Reserved[2];
+} ST_BT_ControlData;
+
+#pragma pack(pop)
+
 /*******************************************************************************
  *                             Global Function                                 *
  *******************************************************************************/
 
-HIDO_VOID BT_Poll(void);
-void  BT_DisConnect(void);
 HIDO_VOID BT_Init(void);
-// 函数声明
-void Joystick_Process(Joystick_t *joy);
-void Parse_Joystick_Data(char *data);
+HIDO_VOID BT_Poll(void);
+HIDO_VOID UART6_StartReceive(void);
 
+// Exposed for ISR
+extern HIDO_UINT8 uart6_dma_rxbuf[BT_UART_RX_BUF_SIZE];
+extern HIDO_UINT8 uart6_dma_recv_end_flag;
+extern HIDO_UINT16 uart6_dma_recv_len;
+extern volatile HIDO_UINT32 g_u32BtIdleIntCount;
 
-#endif
+#endif /* FML_BLUETOOTH_H_ */

--
Gitblit v1.10.0