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/SBUS.c |   36 +++++++++++++++++++++++++++++++++++-
 1 files changed, 35 insertions(+), 1 deletions(-)

diff --git a/STM32H743/FML/SBUS.c b/STM32H743/FML/SBUS.c
index 4841598..da7ffa7 100644
--- a/STM32H743/FML/SBUS.c
+++ b/STM32H743/FML/SBUS.c
@@ -15,6 +15,7 @@
 #include "stm32h7xx_hal_dma.h"
 #include <string.h>
 #include "pwm_ctrol.h"
+#include "PythonLink.h"
 
 /*******************************************************************************
  *                                  Macro                                      *
@@ -49,6 +50,9 @@
 // SBUS failsafe active flag
 static volatile HIDO_UINT8 g_bSBUSFailsafeActive = 0;
 
+// 鎺у埗妯″紡鐘舵�� (0=鎵嬪姩閬ユ帶鍣�, 1=鑷姩Python)
+static volatile HIDO_UINT8 g_u8ControlMode = 0;
+
 /*******************************************************************************
  *                             Local Function                                  *
  *******************************************************************************/
@@ -106,13 +110,33 @@
     g_stSBUSData.m_u32LastUpdateTick = HAL_GetTick();
     g_stSBUSData.m_u32FrameCount++;
 
+    // 5. 妫�鏌� CH8 (閫氶亾7, 绱㈠紩7) 鍐冲畾鎺у埗妯″紡
+    // CH8 > 1500: 鑷姩妯″紡 (Python鎺у埗)
+    // CH8 < 1500: 鎵嬪姩妯″紡 (閬ユ帶鍣ㄦ帶鍒�)
+    HIDO_UINT16 ch8_value = g_stSBUSData.m_au16Channels[7];
+    if (ch8_value > 1500)
+    {
+        // 鑷姩妯″紡: 涓嶆洿鏂� PWM, 鐢� Python 鎺у埗
+        g_u8ControlMode = 1;
+    }
+    else
+    {
+        // 鎵嬪姩妯″紡: 浣跨敤閬ユ帶鍣ㄤ俊鍙锋帶鍒�
+        g_u8ControlMode = 0;
+    }
+
     // 瑙f瀽鎴愬姛鍚庣珛鍗宠Е鍙� PWM 鎺у埗锛堟渶灏忓欢杩燂級
     // 鍚屾椂娓呴櫎 failsafe 鏍囧織锛堝鏋滀箣鍓嶈Е鍙戣繃锛�
     if (g_bSBUSFailsafeActive)
     {
         g_bSBUSFailsafeActive = 0;
     }
-    SBUS_Control_PWM();
+    
+    // 鍙湁鍦ㄦ墜鍔ㄦā寮忎笅鎵嶆洿鏂� PWM
+    if (g_u8ControlMode == 0)
+    {
+        SBUS_Control_PWM();
+    }
 
     return HIDO_TRUE;
 }
@@ -430,3 +454,13 @@
     }
     HIDO_Debug2("====================================\r\n\r\n");
 }
+
+/**
+ * @brief 鍒ゆ柇鏄惁澶勪簬鑷姩妯″紡
+ * @return HIDO_TRUE: 鑷姩妯″紡 (CH8 > 1500, Python鎺у埗)
+ *         HIDO_FALSE: 鎵嬪姩妯″紡 (CH8 < 1500, 閬ユ帶鍣ㄦ帶鍒�)
+ */
+HIDO_BOOL SBUS_IsAutoMode(HIDO_VOID)
+{
+    return (g_u8ControlMode == 1) ? HIDO_TRUE : HIDO_FALSE;
+}

--
Gitblit v1.10.0