STM32 - AFIO的使用

[复制链接]
1426|6
 楼主| sunmeat 发表于 2015-3-16 15:51 | 显示全部楼层 |阅读模式
1. AFIO的功能

    为了优化64脚或100脚封装的外设数目,可以把一些复用功能重新映射到其他引脚上。设置复用重映射和调试I/O配置寄存器(AFIO_MAPR)实现引脚的重新映射。这时,复用功能不再映射到它们的原始分配上。

    简言之,AFIO实现了复用功能的重新映射。
 楼主| sunmeat 发表于 2015-3-16 15:55 | 显示全部楼层
2. 在什么情况下,需要开启AFIO时钟?
    参考手册中写道:对寄存器AFIO_EVCR, AFIO_MAPR和AFIO_EXTICRX进行读写操作前,应当首先打开AFIO的时钟。
QQ截图20150316155438.png
 楼主| sunmeat 发表于 2015-3-16 15:55 | 显示全部楼层
    在数据手册的引脚定义中(pin definitions),复用功能"Alternate functions"栏下分为两栏:默认"Default"和重映射"Remap"。其中,在默认栏中的功能只需要开启相应外设功能的时钟,无需开启AFIO时钟(注意:一个引脚在一个时间段内只能使用一个外设功能)。而在重映射栏中的功能,则需要开启相应外设功能的时钟,并且开启AFIO时钟。
 楼主| sunmeat 发表于 2015-3-16 15:56 | 显示全部楼层
    简言之,当GPIO口使用了数据表中重映射栏中的外设功能,则需要开启AFIO时钟;只使用默认复用功能时,只开启相应外设时钟无需开启AFIO时钟。
QQ截图20150316155641.png
 楼主| sunmeat 发表于 2015-3-16 16:05 | 显示全部楼层
    AFIO (alternate-function I/O),指 GPIO 端口的复用功能, GPIO 除了用作普通的输入输出(主功能),还可以作为片上外设的复用输入输出,如串口,ADC,这些就是复用功能。大多数 GPIO 都有一个默认复用功能,有的 GPIO 还有重映射功能, 重映射功能是指把原来属于 A 引脚的默认复用功能,转移到了B 引脚进行使用,前提是 B 引脚具有这个重映射功能。
    当把 GPIO 用作 EXTI外部中断或使用重映射功能的时候,必须开启 AFIO时钟,而在使用默认复用功能的时候,就不必开启 AFIO 时钟了。
smilingangel 发表于 2015-3-17 21:53 | 显示全部楼层
设置复用重映射和调试I/O配置寄存器(AFIO_MAPR)实现引脚的重新映射。这时,复用功能不再映射到它们的原始分配上。
mumu3013 发表于 2015-3-18 15:00 | 显示全部楼层
讲的不错,学习了!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

208

主题

2132

帖子

13

粉丝
快速回复 在线客服 返回列表 返回顶部