串口管脚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 }