// MAX485: RO→UART_RX, DI→UART_TX, DE/RE→PA1
#define DIR_TX HAL_GPIO_WritePin(GPIOA, GPIO_PIN_1, GPIO_PIN_SET)
#define DIR_RX HAL_GPIO_WritePin(GPIOA, GPIO_PIN_1, GPIO_PIN_RESET)
void rs485_send(uint8_t* buf, uint16_t len){
DIR_TX; // 切发送
HAL_UART_Transmit(&huart2, buf, len, 100);
while(__HAL_UART_GET_FLAG(&huart2, UART_FLAG_TC) == RESET);
delay_us(20); // 等最后一位发出
DIR_RX; // 切回接收
}