stm32系列包含有很多外设,定时器,gpio,外部中断,adc,usb等。很多gpio引脚承担着很多功能,不止是通用的输入和输出。
为什么复用?因为引脚有限但资源太多,没有让所有的外设资源都有其一 一对应的引脚,通过复用的功能使得用有限的引脚资源完成更多的功能。
AFIO的功能 在使用外部中断和引脚功能重映射起作用 那为什么要重映射?
比如下面这个 如果想同时使用串口1和定时器1的功能,发现二者功能复用在了相同的引脚上,这就发生了冲突,但通过手册可以知道,我们可以把串口1的功能映射到别的引脚上 这里是PA_10,PA_9 -->PB_6,PB_7,这样配置就可以同时使用。
另外 AFIO在配置外部中断时依然使用,可以理解成一个数据选择器,让唯一的引脚号去到外部中断通道,其实也可以理解成"映射",16个当中的1个映射到外部中断通道中。
在使用时依然要对AFIO这个外设进行初始化和进行相应的配置。
下面这个图可以更好的理解外设资源,单片机存在着很多片上外设,都可以进行使用,gpio,adc,dac,usart,定时器等,这些都要和cpu产生联系,比如通过中断,这时候就需要一个通向cpu的大门,也就是NVIC,他本身是内核外设,我的理解是使用这些外设执行一些特殊功能时(中断)需要告诉cpu,这是就用NVIC进行配置。