STM32的AFIO时钟什么时候开启?
問題描述
在使用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时钟什么时候开启?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: win10激活更新后黑屏怎么办 win1
- 下一篇: 2014 网选 5012 Dice(bf