afio时钟何时开启 -凯发k8官方网
首先为什么要开启时钟?
答:因为要对寄存器进行读写!而在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]:
可见,当设置“pa9为gpio_mode_af_pp(只是一个常数0x18)、pa10为gpio_mode_in_floating(只是一个常数0x04)”时pa9、pa10就已经直接跟串口的相应寄存器连接上了,而串口的寄存器不需要afio时钟、pa9/pa10也不许要afio时钟,同时又没有对afio相应的寄存器操作所以根本不用开启afio时钟!
总结
以上是凯发k8官方网为你收集整理的afio时钟何时开启的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇:
- 下一篇: