最近在学STM32,对端口复用现在理解的有点混乱,希望大家给指导一下:首先我需要搞清楚一个概念 AFIO是端口复用的意思吗?串口通信实验,通过USART1发送数据到上位机,上位机收到之后原封不动的发送给USART1,需要将板子上的RXD和TXD用短路帽和PA9和PA10接起来,这里是不是也用到了端口复用啊,是不是需要使能复用时钟啊?RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1|RCC_APB2Periph_GPIOA, ENABLE);这句里面有使能复用端口时钟吗?
外部中断实验,按照库函数开发指南上写的是肯定需要使能复用时钟的,RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE);这句是使能复用时钟吗?
如果串口中断和外部中断都需要使能复用时钟,为什么这两个还不一样啊。我现在特别混乱,希望大家帮我理一理,谢谢。
此帖出自
小平头技术问答
外部中断要用到AFIO模块(外部中断配置寄存器在AFIO里RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE);),所以需要使能AFIO时钟;串口实验要用到USART,所以使能串口时钟(RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1|RCC_APB2Periph_GPIOA, ENABLE);)。也就是说这两个表述都是笼统的讲都是来使能复用时钟的,只是串口通信有串口通信的时钟,而外部中断因为外部中断配置寄存器在AFIO里,所以使能的是AFIO时钟。
我这么理解对吗
也许之前是放在一起的,才会有这样的注释
RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1|RCC_APB2Periph_GPIOA|RCC_APB2Periph_AFIO, ENABLE)
一周热门 更多>