基于STM32Cube IDEF427两个串口同时运行的问题

问题遇到的现象和发生背景

想在STM32CubeIDE,的STM32F427VIT6的板子上实验两个串口同时工作,单独设置时没啥问题,但是一起的时候一个串口就不能用。而且,在单独测试的时候 不知道为啥把USART3换成USART1就不行了,调整波特率和优先级也好像没有用,我自己刚开始学习,没有报错也不知道问题在哪里

问题相关代码,请勿粘贴截图

void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
{
uint8_t pData[]="hello world";
if (htim == (&htim1))

 HAL_UART_Transmit(&huart3,(uint8_t*)pData,sizeof(pData),100);
 UNUSED(htim);

}
void HAL_UART_RxCpltCallback(UART_HandleTypeDef huart)
{
if(huart == (&huart1))
HAL_UART_Receive_IT(&huart1, Rxbuf,sizeof(Rxbuf));
HAL_UART_Transmit(&huart1,(uint8_t
)ACKbuf ,sizeof(ACKbuf),100);

}

img

img

可能是你程序对2个串口的初始化问题,要不把初始化也贴出来

static void MX_USART1_UART_Init(void)
{

/* USER CODE BEGIN USART1_Init 0 */

/* USER CODE END USART1_Init 0 */

/* USER CODE BEGIN USART1_Init 1 */

/* USER CODE END USART1_Init 1 /
huart1.Instance = USART1;
huart1.Init.BaudRate = 9600;
huart1.Init.WordLength = UART_WORDLENGTH_8B;
huart1.Init.StopBits = UART_STOPBITS_1;
huart1.Init.Parity = UART_PARITY_NONE;
huart1.Init.Mode = UART_MODE_TX_RX;
huart1.Init.HwFlowCtl = UART_HWCONTROL_RTS_CTS;
huart1.Init.OverSampling = UART_OVERSAMPLING_16;
if (HAL_UART_Init(&huart1) != HAL_OK)
{
Error_Handler();
}
/
USER CODE BEGIN USART1_Init 2 */

/* USER CODE END USART1_Init 2 */

}

/**

/* USER CODE BEGIN USART3_Init 0 */

/* USER CODE END USART3_Init 0 */

/* USER CODE BEGIN USART3_Init 1 */

/* USER CODE END USART3_Init 1 /
huart3.Instance = USART3;
huart3.Init.BaudRate = 115200;
huart3.Init.WordLength = UART_WORDLENGTH_8B;
huart3.Init.StopBits = UART_STOPBITS_1;
huart3.Init.Parity = UART_PARITY_NONE;
huart3.Init.Mode = UART_MODE_TX_RX;
huart3.Init.HwFlowCtl = UART_HWCONTROL_RTS_CTS;
huart3.Init.OverSampling = UART_OVERSAMPLING_16;
if (HAL_UART_Init(&huart3) != HAL_OK)
{
Error_Handler();
}
/
USER CODE BEGIN USART3_Init 2 */

/* USER CODE END USART3_Init 2 */

}

硬件流控使能了,硬件上面有接上了没?

另外要别人帮你看的时候尽量把相关的代码贴全一点,要不然都只能靠猜