32 中断发送的一个问题,这是我写的一个中断接收,HAL_UART_Transmit(&huart3,rx_buffer3,data_length,0x200);我用来把我接收到的数据打印到串口上的, 使用HAL_UART_Transmit(&huart3,rx_buffer3,data_length,0x200)是没有问题的,串口助手上打印了我发过去的数据,但是我把函数改成了 HAL_UART_Transmit_IT(&huart3,rx_buffer3,data_length);串口助手就不打印我发过去的数据了,这是为什么呢?
void UART3_IDLECallBcak(UART_HandleTypeDef *huart)
{
if(huart == &huart3)
{
HAL_UART_DMAStop(&huart3);
__HAL_UART_CLEAR_IDLEFLAG(&huart3);
uint8_t data_length = BUFFER_SIZE_3 - __HAL_DMA_GET_COUNTER(&hdma_usart3_rx);
printf("Receive Data(length = %d): ",data_length);
HAL_UART_Transmit(&huart3,rx_buffer3,data_length,0x200);
// printf("\r\n");
memcpy(rc_buffer, rx_buffer3, data_length);
memset(rx_buffer3,0,data_length);
data_length = 0;
HAL_UART_Receive_DMA(&huart3, (uint8_t*)rx_buffer3, BUFFER_SIZE_3);
}
}