while(1)
{
if(flag==1){
flag = 0;
HAL_UART_Transmit(&huart1, tx, 2, 100);
HAL_Delay(500);
HAL_UART_Receive_IT(&huart1, rx, 2);
}
}
void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart){
if(huart->Instance==USART1){ //RS485接收到从机应答数据信号
flag = 1;
tx[0]=rx[0];
tx[1]=rx[1];
}
}
串口调试助手
[2026-06-15 09:45:12.580]
TX:5689
[2026-06-15 09:45:12.611]
RX:56 89
[2026-06-15 09:45:16.207]
TX:1245
[2026-06-15 09:45:16.233]
RX:56 89
[2026-06-15 09:45:18.217]
TX:1245
[2026-06-15 09:45:18.252]
RX:12 45
[2026-06-15 09:45:25.239]
TX:1245
[2026-06-15 09:45:25.265]
RX:12 45
数据变化时,第一次发送的是旧的值,第二次发送的才是新赋值的数据 |