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 f7fa625..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 100
+// 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);
HIDO_VOID BT_Init(void);
-// 函数声明
-void Joystick_Process(Joystick_t *joy);
-void Parse_Joystick_Data(char *data);
-void UART6_StartReceive(void);
+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