Port command protocol framework from E23x (RS485 data link)

This commit is contained in:
2026-10-09 19:47:49 +08:00
parent cda8f482d2
commit 5771fee576
8 changed files with 694 additions and 26 deletions
+5 -11
View File
@@ -3,7 +3,6 @@
#include "gd32f4xx_rcu.h"
#include "gd32f4xx_gpio.h"
#include "board_config.h"
#include "uart.h"
/* 独立接收环形缓冲区(与 debug 串口的 uart_ring_buffer 隔离),
采用"预留一格"区分空/满,最大可用容量为 RS485_RX_BUFFER_SIZE-1 */
@@ -92,16 +91,11 @@ int rs485_rx_get(void) {
return data;
}
void rs485_process(void) {
while (rs485_rx_available() > 0) {
int b = rs485_rx_get();
if (b < 0) {
break;
}
/* 拉通阶段:原样回发 RS485,同时转发 debug 串口便于观察 */
rs485_send((const uint8_t *)&b, 1);
debug_uart_write((uint8_t)b);
}
void rs485_rx_clear(void) {
uint32_t primask = rs485_irq_save();
rs485_write_index = 0;
rs485_read_index = 0;
rs485_irq_restore(primask);
}
void rs485_irq_handler(void) {