硬汉嵌入式论坛

 找回密码
 立即注册
查看: 1116|回复: 3
收起左侧

[有问必答] 串口1 PA9,PA10重映射到PB6,PB7的问题

[复制链接]

2

主题

5

回帖

11

积分

新手上路

积分
11
发表于 2023-2-9 15:30:39 | 显示全部楼层 |阅读模式
如题,我想把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程序模板来,
目前问题是打印串口信息出现乱码,
我想请问一下,串口重映射配置是这样配的吗?
我总感觉是不是少了啥,请求大佬指点

回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107077
QQ
发表于 2023-2-9 16:38:54 | 显示全部楼层
HSE_VALUE数值和你板子的实际晶振大小是否一致。
回复

使用道具 举报

2

主题

5

回帖

11

积分

新手上路

积分
11
 楼主| 发表于 2023-2-9 17:02:03 | 显示全部楼层
eric2013 发表于 2023-2-9 16:38
HSE_VALUE数值和你板子的实际晶振大小是否一致。

还真的是这个问题!谢谢,
V5开发板是25M,我的板子是8M
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107077
QQ
发表于 2023-2-10 09:01:24 | 显示全部楼层
LSHY 发表于 2023-2-9 17:02
还真的是这个问题!谢谢,
V5开发板是25M,我的板子是8M

串口一般配置正常后,主要就是波特率问题

HSE_VALUE大小容易被忽略。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-5-17 01:21 , Processed in 0.151222 second(s), 25 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表