| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081 |
- /**
- ******************************************************************************
- * @file uart_protocol.h
- * @brief UART 通讯协议模块公共接口
- *
- * 协议帧格式 (5字节):
- * AA CMD ITEM VALUE CRC
- * CRC = CMD ^ ITEM ^ VALUE
- *
- * 命令类型:
- * 0x01 面板→主板: 读查询
- * 0x02 面板→主板: 写设置
- * 0x81 主板→面板: 上报
- * 0xAA 主板→面板: 写成功 ACK (单字节, 注意与帧头冲突待后续修复)
- ******************************************************************************
- */
- #ifndef __UART_PROTOCOL_H
- #define __UART_PROTOCOL_H
- #ifdef __cplusplus
- extern "C" {
- #endif
- #include <stdint.h>
- /* ========== 通讯协议常量 (V2.0) ========== */
- #define ITEM_QUERY_ALL 0x00u
- #define ITEM_INPUT_SRC 0x01u
- #define ITEM_BT_CONN 0x02u
- #define ITEM_BT_AUDIO 0x03u
- #define ITEM_DAC_MUTE 0x04u
- #define ITEM_AUTO_RECONN 0x05u
- #define ITEM_BATTERY 0x09u
- #define ITEM_CHG_FULL 0x0Au
- #define ITEM_CHG_ING 0x0Bu
- #define ITEM_VOL_LR 0x0Cu
- #define ITEM_VOL_BASS 0x0Du
- #define ITEM_SOFT_RESET 0x12u
- #define ITEM_BASS_MUTE 0x13u
- /* ========== 接收缓冲 (供 HAL_UART_RxCpltCallback 传入缓冲指针) ========== */
- extern uint8_t g_rxByte; /* 单字节接收缓冲, 定义于 uart_protocol.c */
- /* ========== UART 接收回调 (在 HAL_UART_RxCpltCallback 中调用) ========== */
- void UART_RxByteCallback(uint8_t data);
- /* ========== 帧处理 (在主循环中调用) ========== */
- /**
- * @brief 查询是否有完整协议帧待处理
- * @retval 1=有待处理帧, 0=无
- */
- uint8_t UART_IsFrameReady(void);
- /**
- * @brief 清除帧就绪标志 (在主循环中处理前调用)
- */
- void UART_ClearFrameReady(void);
- /**
- * @brief 处理收到的完整协议帧
- * 须先调用 UART_ClearFrameReady() 再调用此函数
- */
- void ProcessReceivedFrame(void);
- /* ========== 发送函数 ========== */
- void SendSetInputSrc(uint8_t src);
- void SendSetVolLR(uint8_t pct);
- void SendSetVolBass(uint8_t pct);
- void SendSetDacMute(uint8_t unmute);
- void SendBTDisconnect(void);
- void SendSoftReset(void);
- void SendBassMute(void);
- void SendQueryAll(void);
- #ifdef __cplusplus
- }
- #endif
- #endif /* __UART_PROTOCOL_H */
|