新手入门
- 积分
- 9
- 金钱
- 9
- 注册时间
- 2023-9-6
- 在线时间
- 2 小时
|

楼主 |
发表于 2023-9-6 21:03:23
|
显示全部楼层
而且如果我只接收一个字符的话,又是可以连续接收的
uint8_t cmd;
uint8_t cmd = '0' ;
uint8_t usart1_tx_buf[]= "measure\r\n" ;
void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)
{
if(huart->Instance == USART1){
if(cmd == 'U')
{
HAL_UART_Transmit(&huart1,usart1_tx_buf, sizeof(usart1_tx_buf),1000);
HAL_UART_Transmit_DMA(&huart1, usart1_tx_buf, sizeof(usart1_tx_buf));
while (1)
{
/* 等待 DMA1_Channel4 传输完成 */
if ( __HAL_DMA_GET_FLAG(&huart1, DMA_FLAG_TC4)) /* 等待 DMA1_Channel4 传输完成 */
{
__HAL_DMA_CLEAR_FLAG(&huart1, DMA_FLAG_TC4); /* 清除 DMA1_Channel4 传输完成标志 */
HAL_UART_DMAStop(&huart1); /* 传输完成以后关闭串口DMA */
break;
}
}
}
HAL_UART_Receive_IT(&huart1, &cmd, 1);
}
} |
|