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也是如此。
温馨提示:内容为网友见解,仅供参考
第1个回答  2020-04-12
您好
要实现uart
转rs485功能。用的是ti
6lb184
485芯片,re/de脚是是控制t/r方向,一般是连在一起。请问是用mcu的通用gpio控制,还是用mcu
uart上的管脚rts控制?
如果是前者,还需要改uart程序?
可以选择任意可用io口,实际应用中,可以用tx脚控制
相似回答