STM32F407单片机UART串口gpio口复用功能配置问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了STM32F407单片机UART串口gpio口复用功能配置问题相关的知识,希望对你有一定的参考价值。

GPIOA->AFR[1] &=~(0XFF<<4);
GPIOA->AFR[1] |= 0X77<<4;
这段代码里面AFR[1]代表AFRH吗,参考手册上只看到有AFRL和AFRH之分,为什么不可以直接写出GPIOA->AFRH

关于STM32的USART配置,需要完成以下几个步骤
1,打开USART时钟
2,配置PA9及PA10
由于USART属于可选功能项
所以TX要设置成GPIO_Mode_AF_PP;,即复用推挽输出
RX用于数据输入,被设置成浮空输入
这是由于STM32的IO口引脚总共只有以下几种模式
GPIO_Mode_AIN = 0x0,
GPIO_Mode_IN_FLOATING = 0x04,
GPIO_Mode_IPD = 0x28,
GPIO_Mode_IPU = 0x48,
GPIO_Mode_Out_OD = 0x14,
GPIO_Mode_Out_PP = 0x10,
GPIO_Mode_AF_OD = 0x1C,
GPIO_Mode_AF_PP = 0x18
对于特殊功能模式,只有一个复用开漏及复用推挽。
这两种都是用于输出的情况。
所以RX只能被设置成浮空输入
这不仅是USART,对于其他的如SPI也是如此。
参考技术A 您好
要实现uart
转rs485功能。用的是ti
6lb184
485芯片,re/de脚是是控制t/r方向,一般是连在一起。请问是用mcu的通用gpio控制,还是用mcu
uart上的管脚rts控制?
如果是前者,还需要改uart程序?
可以选择任意可用io口,实际应用中,可以用tx脚控制

11. ESP32 Micropython编程(Thonny)UART串口通讯

uart串口通讯

一、串口硬件

ESP32-WROOM-32 有(0,1,2)三个串口端

  • UART0: GPIO3(RXD)和GPIO1(TXD) 用于下载调试串口,引脚不可改变
  • UART1: GPIO9(RXD)和GPIO10(TXD) 外接flash,使用时候请设置其他引脚连接
  • UART2: GPIO16(RXD)和GPIO17(TXD) 可以直接使用

使用时候将 UART2 通过USB转TTL芯片 接到计算机

二、基本程序

在shell终端输入依次输入以下代码

>>> import machine
>>> uart = machine.UART(2,115200)
>>> uart
UART(2, baudrate=115201, bits=8, parity=None, stop=1, tx=17, rx=16, rts=-1, cts=-1, txbuf=256, rxbuf=256, timeout=0, timeout_char=1)

UART(串口号,波特率,8位数据,无奇偶校验,1位停止位,TXD引脚号,RXD引脚号,不使用rts和cts,发送和接收缓存区大小, , ,)

三、计算机控制板载led灯

在主编辑器中输入以下代码,并运行此脚本

import machine
led = machine.Pin(2, machine.Pin.OUT)
uart = machine.UART(2, 115200)

strmsg = ''

while True:
    if uart.any() > 0:
        strmsg = uart.read()
        print(strmsg)
        
        if 'on' in strmsg:
            led.on()
            uart.write('Turning ON led')
            print('Turning ON led')
        elif 'off' in strmsg:
            led.off()
            uart.write('Turning OFF led')
            print('Turning OFF led')
        else:
            uart.write('Invalid command.')
            print('Invalid command.')

在计算机上位机(串口调试助手之类的)软件中

  • 输入led_on 则板载led点亮 (字符中带on就会点亮)
  • 输入led_off则板载led熄灭 (字符中带off就会熄灭)

以上是关于STM32F407单片机UART串口gpio口复用功能配置问题的主要内容,如果未能解决你的问题,请参考以下文章

STM32f407定时器用为编码器接口模式采集脉冲,但单片机供电后,复用引脚直接有电压输出

STM32F407: USART 遇到的问题

STM32F407串口调试总结

stm32f407,cubemx配置,USMART组件移植

stm32F407VG JTAG引脚怎么样设为普通IO

STM32F030如何正确配置IO口的复用功能