文章来源:
刚接触STM32F103,在尝试编写“按键中断”和“PWM呼吸灯”程序的时候,发现例程都用到了管脚复用AFIO:
//打开管脚复用AFIO
RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE);
写到“232USART串口通信”程序时,当我非常自信的写下上面这句代码后,发现例程里面却没有这句话,很让人摸不着头脑……查了很多资料,加上自己的理解,发现AFIO的使用还是有点内容值得总结一下的。
AFIO介绍:
MCU有对外管脚,包括CPU的管脚和内置外设(PWM,TIM,ADC……)的管脚;
他们都需要对外接口IO,但是管脚总数是有限的,有的管脚既作为普通IO,也作为外设IO,有时候甚至好几个内置外设共用一个IO,这就是管脚复用现象。比如随便一个管脚的原理图上:
PA2/USART2_TX/ADC123_IN2/TIM5_CH3/TIM2_CH3
表明这个管脚除了作为普通PA2之外,还作为复用IO,有USART2,ADC,TIM5,TIM2等……总结:
1. 普通管脚就是GPIO,复用管脚(非普通管脚)就是AFIO&#