串口管脚swap交换,通过软件完成管脚交换

 

修改第23行代码huart3.AdvancedInit.AdvFeatureInit = UART_ADVFEATURE_SWAP_INIT;

添加第24行代码huart3.AdvancedInit.Swap = UART_ADVFEATURE_SWAP_ENABLE;

 1 /* USART3 init function */
 2 
 3 void MX_USART3_UART_Init(uint32_t baud)
 4 {
 5 
 6   /* USER CODE BEGIN USART3_Init 0 */
 7 
 8   /* USER CODE END USART3_Init 0 */
 9 
10   /* USER CODE BEGIN USART3_Init 1 */
11 
12   /* USER CODE END USART3_Init 1 */
13   huart3.Instance = USART3;
14   huart3.Init.BaudRate = baud;
15   huart3.Init.WordLength = UART_WORDLENGTH_8B;
16   huart3.Init.StopBits = UART_STOPBITS_1;
17   huart3.Init.Parity = UART_PARITY_NONE;
18   huart3.Init.Mode = UART_MODE_TX_RX;
19   huart3.Init.HwFlowCtl = UART_HWCONTROL_NONE;
20   huart3.Init.OverSampling = UART_OVERSAMPLING_16;
21   huart3.Init.OneBitSampling = UART_ONE_BIT_SAMPLE_DISABLE;
22   huart3.Init.ClockPrescaler = UART_PRESCALER_DIV1;
23   huart3.AdvancedInit.AdvFeatureInit = UART_ADVFEATURE_SWAP_INIT;
24   huart3.AdvancedInit.Swap = UART_ADVFEATURE_SWAP_ENABLE;
25      
26   if (HAL_UART_Init(&huart3) != HAL_OK)
27   {
28     Error_Handler();
29   }
30   if (HAL_UARTEx_SetTxFifoThreshold(&huart3, UART_TXFIFO_THRESHOLD_1_8) != HAL_OK)
31   {
32     Error_Handler();
33   }
34   if (HAL_UARTEx_SetRxFifoThreshold(&huart3, UART_RXFIFO_THRESHOLD_1_8) != HAL_OK)
35   {
36     Error_Handler();
37   }
38   if (HAL_UARTEx_DisableFifoMode(&huart3) != HAL_OK)
39   {
40     Error_Handler();
41   }
42   /* USER CODE BEGIN USART3_Init 2 */
43 
44   /* USER CODE END USART3_Init 2 */
45 
46 }

 

posted @ 2025-07-17 21:26  华夏九州  阅读(20)  评论(0)    收藏  举报