野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 13480|回复: 1

【转载的】AFIO时钟何时开启【自己的理解】

[复制链接]
发表于 2016-9-24 15:33:06 | 显示全部楼层 |阅读模式
本帖最后由 喵爱小鱼鱼 于 2016-9-24 15:35 编辑

首先为什么要开启时钟?
答:因为要对寄存器进行读写!而在STM32中对寄存器的读写都是要打开寄存器对应的时钟才可以的【就像人一样,有了跳动的脉搏手臂才能有能量才能进行各种动作】。
然后就什么时候AFIO时钟开启(所有时钟都是这样)就清楚了:当需要对“AFIO时钟管理的寄存器”进行读写时AFIO时钟打开!当然不对“AFIO时钟管理的寄存器”读写时也可以打开AFIO时钟,此时只是白白增加能耗、写无用代码(白白浪费程序存储器空间)而已!

接下来:跟AFIO相关的寄存器有哪些呢?
答:根据《STM32中文参考手册_V10》有:事件控制寄存器(AFIO_EVCR)、复用重映射和调试I/O 配置寄存器(AFIO_MAPR)、外部中断配置寄存器1(AFIO_EXTICR1)、外部中断配置寄存器2(AFIO_EXTICR2)、外部中断配置寄存器3(AFIO_EXTICR3)、外部中断配置寄存器4(AFIO_EXTICR4)。

应用:在usart1串口通信没有端口重映射时为什么不打开AFIO时钟?PA9、PA10作为通用I/O口也复用了,为什么不打开为什么不打开复用时钟?
答:AFIO全称:Alternate function I/O  alternate备用的、替代的、交替的,所以AFIO可翻译为“备用功能I/O”,原英文手册上解释很清楚:[《STM32英文手册》P152]
To optimize the number of peripherals available for the 64-pin or the 100-pin or the 144-pin package, it is possible to remap some alternate functions to some other pins. This is
achieved by software, by programming the AF remap and debug I/O configuration register(AFIO_MAPR) on page 159. In this case, the alternate functions are no longer mapped to
their original assignations.
可见AFIO就设计用来remap some alternate functions to some other pins的,所以根本就没有什么“复用”之说,看来都是翻译惹的祸!另外看一下I/O复用时的情况就更清楚了
[STM32中文参考手册_V10》P109]:


可见,当设置“PA9GPIO_Mode_AF_PP(只是一个常数0x18)、PA10GPIO_Mode_IN_FLOATING(只是一个常数0x04)”时PA9PA10就已经直接跟串口的相应寄存器连接上了,而串口的寄存器不需要AFIO时钟、PA9/PA10也不许要AFIO时钟,同时有没有对AFIO相应的寄存器操作所以根本不用开启AFIO时钟!


本文转载自其它论坛,仅供学习,不做他用。


回复

使用道具 举报

发表于 2016-9-24 15:52:34 | 显示全部楼层
总结得很好,谢谢分享
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2025-1-13 03:00 , Processed in 0.048031 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表