打印
[其他ST产品]

stm32串口初始化问题

[复制链接]
577|15
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
jcky001|  楼主 | 2023-3-9 14:51 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
/*先初始化uart_tx引脚*/      
        GPIO_Init.Pin          = UART_TX_PIN;      
        GPIO_Init.Mode         = GPIO_MODE_AF_PP;      
        GPIO_Init.Speed        = GPIO_SPEED_FREQ_VERY_HIGH;      
        GPIO_Init.Pull         = GPIO_PULLUP;      
        GPIO_Init.Alternate    = UART_TX_AF;      
        HAL_GPIO_Init(UART_TX_PORT,&GPIO_Init);
      
        /*后初始化uart_rx引脚*/      
        GPIO_Init.Pin          = UART_RX_PIN;
        GPIO_Init.Speed        = GPIO_SPEED_FREQ_VERY_HIGH;      
        GPIO_Init.Pull         = GPIO_PULLUP;      
        GPIO_Init.Alternate    = UART_RX_AF;      
        HAL_GPIO_Init(UART_RX_PORT,&GPIO_Init);      
这样串口能正常收发数据

如果按照下面配置

        /*先初始化uart_rx引脚*/      
        GPIO_Init.Pin          = UART_RX_PIN;
        GPIO_Init.Speed        = GPIO_SPEED_FREQ_VERY_HIGH;      
        GPIO_Init.Pull         = GPIO_PULLUP;      
        GPIO_Init.Alternate    = UART_RX_AF;      
        HAL_GPIO_Init(UART_RX_PORT,&GPIO_Init);      
        /*然后初始化uart_tx引脚*/      
        GPIO_Init.Pin          = UART_TX_PIN;      
        GPIO_Init.Mode         = GPIO_MODE_AF_PP;      
        GPIO_Init.Speed        = GPIO_SPEED_FREQ_VERY_HIGH;      
        GPIO_Init.Pull         = GPIO_PULLUP;      
        GPIO_Init.Alternate    = UART_TX_AF;      
        HAL_GPIO_Init(UART_TX_PORT,&GPIO_Init);
这样就只能发送数据,不能接收数据。
请教这是为什么?这个问题花了我好长时间才找到,但不知道为什么。
而且不管什么顺序,rx初始化都不能设置位输入模式。否则都不能接收数据。

使用特权

评论回复
沙发
两只袜子| | 2023-3-10 14:00 | 只看该作者
你下面这个配置方式都没有RX引脚的输入输出模式

使用特权

评论回复
板凳
cr315| | 2023-3-10 14:00 | 只看该作者
不能设置成输入。。。这个不大对吧,我目前没遇到过,用cubumx自己生成代码试试呢?
至于你代码先后顺序问题,应该是mode未赋值,默认是0,初始化成模拟输入了吧

使用特权

评论回复
地板
stormwind123| | 2024-1-4 14:48 | 只看该作者
查阅硬件手册

使用特权

评论回复
5
laocuo1142| | 2024-1-4 14:48 | 只看该作者
使用HAL库提供的默认初始化函数

使用特权

评论回复
6
probedog| | 2024-1-4 14:49 | 只看该作者
如果可能的话,检查您的硬件连接,并确保TX和RX引脚正确连接,并且没有出现短路或其他问题。

使用特权

评论回复
7
Uriah| | 2024-4-8 07:31 | 只看该作者

钳位二极管最常用于集成电路中

使用特权

评论回复
8
帛灿灿| | 2024-4-8 09:27 | 只看该作者

它迅速由高阻态变为低阻态

使用特权

评论回复
9
Bblythe| | 2024-4-8 10:30 | 只看该作者

减少反射,避免振荡,方便调试

使用特权

评论回复
10
周半梅| | 2024-4-8 12:26 | 只看该作者

得到正常工作状态下的输出电压和电流。

使用特权

评论回复
11
Pulitzer| | 2024-4-8 13:29 | 只看该作者

在电路中有部分电子元器件比较“脆弱”

使用特权

评论回复
12
童雨竹| | 2024-4-8 15:25 | 只看该作者

可能还需要进行一些额外的测试

使用特权

评论回复
13
Wordsworth| | 2024-4-8 16:28 | 只看该作者

产生一个充电放电的过程

使用特权

评论回复
14
Clyde011| | 2024-4-8 17:31 | 只看该作者

齐纳二极管作为ESD保护与单向TVS原理相同

使用特权

评论回复
15
公羊子丹| | 2024-4-8 18:24 | 只看该作者

并在必要时进行去毛刺。

使用特权

评论回复
16
万图| | 2024-4-8 19:27 | 只看该作者

之所以称为ESD静电保护器

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1510

主题

4548

帖子

6

粉丝