feat(DLD154Pro): RS485 700BS 从机协议实现
新增 rs485_700bs.c/h: - UART0 9600 8N1 中断接收, PA13 方向控制 - 命令处理: 0xFA(状态)/0x1B(频率)/0x2C(复位)/0x3D(拨码) - 心跳上报: 0xAA 空闲5s/故障1s/事件立即 - XOR 校验, 地址匹配 (g_rs485_id) - 0x2C 复位: loop1_LC_Reset + INI_LOOP 完整初始化 集成 peripheral_main.c: - rs485_init() 替换 GPIO placeholder - rs485_poll() 加入主循环 (cjq_srv 之后)
This commit is contained in:
@@ -29,6 +29,7 @@
|
||||
#include "cmcng.h"
|
||||
#include "dbn_ble_srv.h"
|
||||
#include "CH59x_pwm.h"
|
||||
#include "rs485_700bs.h"
|
||||
|
||||
|
||||
uint8_t g_flag_bt_state = 0; // 0 蓝牙没有连接,1 有蓝牙连接
|
||||
@@ -51,9 +52,9 @@ uint8_t g_rs485_id = 0;
|
||||
* PB22 : LEDA 绿色指示灯 (有车亮/无车灭, 低电平有效)
|
||||
* PB23 : LEDB 红色指示灯 (呼吸灯, 低电平有效)
|
||||
* PA12 : FLEVEL 线圈调频 (一级, 0=33nF, 1=0nF)
|
||||
* PA14 : UART0_Tx RS485发送 (协议待定)
|
||||
* PA15 : UART0_Rx RS485接收 (协议待定)
|
||||
* PA13 : UART0_RE RS485方向控制 (协议待定)
|
||||
* PA14 : UART0_Tx RS485发送 (700BS 协议)
|
||||
* PA15 : UART0_Rx RS485接收 (700BS 协议)
|
||||
* PA13 : UART0_RE RS485方向控制 (700BS 协议)
|
||||
* PB10 : IN_1 光耦输入 (逻辑待定)
|
||||
*===========================================================================*/
|
||||
#define RLY1_ON (R32_PA_OUT |= BV(8))
|
||||
@@ -69,7 +70,7 @@ uint8_t g_rs485_id = 0;
|
||||
#define FLEVEL_LOW (R32_PA_OUT &= ~BV(12))
|
||||
#define FLEVEL_HIGH (R32_PA_OUT |= BV(12))
|
||||
|
||||
/* RS485 预留 (协议待定) */
|
||||
/* RS485 700BS 协议 (2026-07-23) */
|
||||
#define RS485_TX_PIN GPIO_Pin_14
|
||||
#define RS485_RX_PIN GPIO_Pin_15
|
||||
#define RS485_RE_PIN GPIO_Pin_13
|
||||
@@ -391,12 +392,7 @@ void tm_init(void){
|
||||
void gpio_uart_init(void)
|
||||
{
|
||||
/*--- RS485 通信 (PA14=TX, PA15=RX, PA13=RE) ---*/
|
||||
/* 协议待定, 仅初始化引脚, 暂不配置 UART0 */
|
||||
GPIOA_SetBits(GPIO_Pin_14);
|
||||
GPIOA_ModeCfg(GPIO_Pin_14, GPIO_ModeOut_PP_5mA); // RS485 TX
|
||||
GPIOA_ModeCfg(GPIO_Pin_15, GPIO_ModeIN_PU); // RS485 RX
|
||||
GPIOA_SetBits(GPIO_Pin_13);
|
||||
GPIOA_ModeCfg(GPIO_Pin_13, GPIO_ModeOut_PP_5mA); // RS485 RE (默认接收模式)
|
||||
/* 由 rs485_init() 统一初始化 UART0 + GPIO + 中断 */
|
||||
|
||||
/*--- 光耦输入 (PB10=IN_1) ---*/
|
||||
/* 逻辑待定, 仅初始化引脚为输入上拉 */
|
||||
@@ -873,6 +869,8 @@ void Main_Circulation()
|
||||
|
||||
cjq_srv();
|
||||
|
||||
rs485_poll(); // RS485 700BS 协议: 命令处理 + 心跳上报
|
||||
|
||||
if(g_flag_bt_state == 0){
|
||||
// 如果蓝牙断开,主动上报需要禁用
|
||||
if(g_dbn_ble_state_acs_enable.enable){
|
||||
|
||||
Reference in New Issue
Block a user