|
如题,我想把STM32F4的串口1映射到PB6,PB7上,我改了以下配置:
*******************************************************************************
/* 串口1的GPIO PA9, PA10 RS323 DB9接口 */
#define USART1_CLK_ENABLE() __HAL_RCC_USART1_CLK_ENABLE()
#define USART1_TX_GPIO_CLK_ENABLE() __HAL_RCC_GPIOB_CLK_ENABLE()
#define USART1_TX_GPIO_PORT GPIOB
#define USART1_TX_PIN GPIO_PIN_6 /
#define USART1_TX_AF GPIO_AF7_USART1
#define USART1_RX_GPIO_CLK_ENABLE() __HAL_RCC_GPIOB_CLK_ENABLE()
#define USART1_RX_GPIO_PORT GPIOB
#define USART1_RX_PIN GPIO_PIN_7
#define USART1_RX_AF GPIO_AF7_USART1
*******************************************************************************
串口硬件配置如下:
#if UART1_FIFO_EN == 1 /* 串口1 */
/* 使能 GPIO TX/RX 时钟 */
USART1_TX_GPIO_CLK_ENABLE();
USART1_RX_GPIO_CLK_ENABLE();
/* 使能 USARTx 时钟 */
USART1_CLK_ENABLE();
/* 配置TX引脚 */
GPIO_InitStruct.Pin = USART1_TX_PIN;
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
GPIO_InitStruct.Pull = GPIO_PULLUP;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
GPIO_InitStruct.Alternate = USART1_TX_AF;
HAL_GPIO_Init(USART1_TX_GPIO_PORT, &GPIO_InitStruct);
/* 配置RX引脚 */
GPIO_InitStruct.Pin = USART1_RX_PIN;
GPIO_InitStruct.Alternate = USART1_RX_AF;
HAL_GPIO_Init(USART1_RX_GPIO_PORT, &GPIO_InitStruct);
/* 配置NVIC the NVIC for UART */
HAL_NVIC_SetPriority(USART1_IRQn, 0, 1);
HAL_NVIC_EnableIRQ(USART1_IRQn);
/* 配置波特率、奇偶校验 */
bsp_SetUartParam(USART1, UART1_BAUD, UART_PARITY_NONE, UART_MODE_TX_RX);
CLEAR_BIT(USART1->SR, USART_SR_TC); /* 清除TC发送完成标志 */
CLEAR_BIT(USART1->SR, USART_SR_RXNE); /* 清除RXNE接收标志 */
// USART_CR1_PEIE | USART_CR1_RXNEIE
SET_BIT(USART1->CR1, USART_CR1_RXNEIE); /* 使能PE. RX接受中断 */
#endif
串口波特率是115200,按照V5-000程序模板来,
目前问题是打印串口信息出现乱码,
我想请问一下,串口重映射配置是这样配的吗?
我总感觉是不是少了啥,请求大佬指点
|
|