美文网首页
STM32的AFIO时钟什么时候开启?

STM32的AFIO时钟什么时候开启?

作者: 水枂 | 来源:发表于2019-03-13 13:22 被阅读0次

    问题描述


    在使用STM32的USART2时发现AFIO时钟无论打不打开串口都能正常工作


    带着这个问题网上搜集了一些资料,由于我对这块的理解并不是很深,如果有错误欢迎指正

    首先为什么要开启时钟?

    答:因为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的,所以根本就没有什么“复用”之说。

    当我们需要配置这些 AFIO 寄存器(只有当我们用到重映射、事件寄存器、配置寄存器、外部中断时)的时候,就需要打开 RCC_APB2ENR 寄存器的 AFIO 时钟,而不是用到引脚复用功能的时候打开。

    下面给出几个关于这个问题不错的文章:
    STM32之AFIO
    STM32的AFIO时钟什么时候需要开启
    如何理解STM32引脚中的GPIO,AFIO时钟分配策略和管脚复用
    STM32F103:什么时候需要复用IO(AFIO)?
    GPIO USART1 AFIO等疑问

    相关文章

      网友评论

          本文标题:STM32的AFIO时钟什么时候开启?

          本文链接:https://www.haomeiwen.com/subject/vovzpqtx.html