求助 关于AFIO和端口复用

2019-03-23 18:24发布

最近在学STM32,对端口复用现在理解的有点混乱,希望大家给指导一下:首先我需要搞清楚一个概念 AFIO是端口复用的意思吗?串口通信实验,通过USART1发送数据到上位机,上位机收到之后原封不动的发送给USART1,需要将板子上的RXD和TXD用短路帽和PA9和PA10接起来,这里是不是也用到了端口复用啊,是不是需要使能复用时钟啊?RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1|RCC_APB2Periph_GPIOA, ENABLE);这句里面有使能复用端口时钟吗?
外部中断实验,按照库函数开发指南上写的是肯定需要使能复用时钟的,RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE);这句是使能复用时钟吗?

如果串口中断和外部中断都需要使能复用时钟,为什么这两个还不一样啊。我现在特别混乱,希望大家帮我理一理,谢谢。

此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
7条回答
cclccl941123
2019-03-23 23:00
曾经in 发表于 2015-11-7 00:13
1,复用就是一个IO脚同时具有多个功能,相当于内部有多路开关切换,具体哪种功能由端口配置高寄存器、端口 ...

外部中断要用到AFIO模块(外部中断配置寄存器在AFIO里RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE);),所以需要使能AFIO时钟;串口实验要用到USART,所以使能串口时钟(RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1|RCC_APB2Periph_GPIOA, ENABLE);)。也就是说这两个表述都是笼统的讲都是来使能复用时钟的,只是串口通信有串口通信的时钟,而外部中断因为外部中断配置寄存器在AFIO里,所以使能的是AFIO时钟。
我这么理解对吗

一周热门 更多>