在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

關于STM32的 I/O 復用功能

Q4MP_gh_c472c21 ? 來源:strongerHuang ? 作者:strongerHuang ? 2022-10-20 14:19 ? 次閱讀

今天給大家分享兩點內容: 一是,為什么我們要先開啟STM32外設時鐘;二是,關于STM32的 I/O 復用功能及什么時候開啟AFIO時鐘。

STM32為什么要先開啟外設時鐘?

相信很多朋友都曾遇到過這種坑,我最初學習STM32的時候同樣也遇到過。下面,我就來說說為什么我們要先開啟STM32外設模塊時鐘,再對其外設模塊初始化配置?

1、系統架構

不同類型的STM32,它的系統架構各有不同,但原理都類似,由多條主控總線和多條被控總線組成(請參看【參考手冊】存儲器和總線架構章節)。

以STM32F4為例:

八條主控總線:

— Cortex-M4F 內核 I 總線、 D 總線和 S 總線 — DMA1 存儲器總線 — DMA2 存儲器總線 — DMA2 外設總線 — 以太網 DMA 總線 — USB OTG HS DMA 總線 ● 七條被控總線: — 內部 Flash ICode 總線 — 內部 Flash DCode 總線 — 主要內部 SRAM1 (112 KB) — 輔助內部 SRAM2 (16 KB) — 輔助內部 SRAM3 (64 KB)(僅適用于 STM32F42xxx 和 STM32F43xxx 器件) — AHB1 外設(包括 AHB-APB 總線橋和 APB 外設) — AHB2 外設 — FSMC 67bffb8c-5034-11ed-a3b6-dac502259ad0.jpg ? 借助總線矩陣,可以實現主控總線到被控總線的訪問,這樣即使在多個高速外設同時運行期間,系統也可以實現并發訪問和高效運行。 2、關于AHB和APB總線 AHBAdvanced High-performance Bus,即先進的高性能總線。 APB:Advanced Peripheral Bus,即先進的外圍(外設)總線。 上面說了系統總線的架構引伸出來的就是AHB和APB總線,那為什么要講述AHB和APB總線呢? 我們操作的外圍設備一般都是位于AHB和APB總線上,而AHB可以引伸出AHB1、AHB2,甚至AHB3。同樣APB也存在APB1、APB2等。 比如,USART1外設位于APB1總線上,GPIOA位于AHB1高速總線上。 請注意參考手冊中“AHB/APB 總線橋”這一小節,有一條重要的內容:每次芯片復位后,所有外設時鐘都被關閉( SRAM 和 Flash 接口除外)。使用外設前,必須在 RCC_AHBxENR 或 RCC_APBxENR 寄存器中使能其時鐘3、STM32時鐘控制 請參看STM32參考手冊關于【復位與時鐘控制RCC】章節。 67e695a8-5034-11ed-a3b6-dac502259ad0.jpg ? STM32的時鐘控制模塊因MCU芯片不同,各有差異,但原理都類似,功能也相當豐富。主要的目的就是給相對獨立的外設模塊提供時鐘,也是為了降低整個芯片的功能。 降低功耗是主要原因,還有一個原因,就是為了兼容不同速度的設備,有些高速,有些低速,如果都用高速時鐘,勢必造成浪費。 RCC給外設提供時鐘是一個主要目的,那么為什么要提供時鐘呢?原因在于外圍設備的寄存器需要時鐘才能工作。你可以把外設當做一個設備,而這個設備需要給它提供電源(時鐘)才能工作。 你在STM32參考手冊的“RCC”章節可能會看到這么一句話:當外設時鐘沒有啟用時,軟件不能讀出外設寄存器的數值,返回的數值始終是0x04、總結 看到這里,相信聰明的你已經明白了為什么我們要先開啟STM32外設模塊時鐘,再配置其外設模塊了。 簡單來說,就是操作外設是通過外設總線來實現,只有外設總線有時鐘了才能操作外設。 坑: A.先使能外設時鐘,再對其進行配置 6843b698-5034-11ed-a3b6-dac502259ad0.jpg ? B.時鐘配置需對應總線 6873d6de-5034-11ed-a3b6-dac502259ad0.png ? 這種基于標準外設庫的低級錯誤,相信肯定有不少人遇到過,希望提高警惕。 ?

AFIO復用時鐘

有朋友問:“什么時候開啟AFIO時鐘”。寫了上面章節,就順便再講述一下關于STM32的I/O復用功能及什么時候開啟AFIO時鐘。

1、什么是I/O 復用功能?

簡單來說,就是把普通I/O用作其它的功能。如:將PA9引腳用作USART1的Tx引腳,那么我們就把這個Tx引腳稱為PA9的復用功能。

打開數據手冊,會發現類似如下的列表:

68868482-5034-11ed-a3b6-dac502259ad0.jpg

2、什么時候開啟AFIO時鐘?

為了優化芯片引腳封裝的外設數目,可以把一些復用功能重新映射到其他引腳上。設置復用重映射和調試I/O配置寄存器實現引腳的重新映射。這時,復用功能不再映射到它們的原始分配上,而是映射到“重定義功能”上(見上圖)。

這種將引腳重定義到其它引腳上的功能在幾乎所有STM32芯片中都有這個功能,但是實現的方法可能有所不同,其中STM32F1就是通過事件控制的方式將特定功能引腳連接到對應PORT和PIN上。

簡單來說,如果需要使用重定義功能,那么就需要開啟AFIO時鐘。

最后,如果你覺得你的程序可能是因為時鐘配置的問題,不妨上電第一步使能所有時鐘試試。

審核編輯:彭靜
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 存儲器
    +關注

    關注

    38

    文章

    7637

    瀏覽量

    166499
  • STM32
    +關注

    關注

    2290

    文章

    11017

    瀏覽量

    362570
  • 時鐘
    +關注

    關注

    11

    文章

    1886

    瀏覽量

    132878

原文標題:STM32為什么要先開啟外設時鐘?

文章出處:【微信號:gh_c472c2199c88,微信公眾號:嵌入式微處理器】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦
    熱點推薦

    求助,STM32復用功能功能問題

    我使用的上STM32F103R8,它的PB3跟PA15的復用功能分別是:JTDO跟JTDI ,請問怎樣設置才能把它當作普通的I/O口來用啊?
    發表于 05-14 14:45

    STM32-IO-AFIO(復用功能IO和調試配置)

    管腳的復用功能。但是STM32還有一特別之處就是:很多復用內置的外設的I/O引腳可以通過重映射功能
    發表于 07-06 00:27

    請問STM32F0x的復用功能映射表在哪里

    注: 有關系統和外設復用功能 I/O 引腳映射的詳細信息,請參見 STM32F0x 數據手冊中的“復用功能映射”表下載了英文手冊,瀏覽了一遍
    發表于 02-28 06:59

    請問I/O復用功能有什么作用?

    在回頭復習GPIO的模式設置時,看到以前自己忽略掉的端口復用功能。現在想以前自己做串口 CAN總線實驗是都沒有打開端口的復用功能,但實驗卻也做成功了。現在想想端口復用功能到底有什么作用?難道就是在端口的重映射時才需要打開
    發表于 04-27 23:26

    stm32時鐘配置“隱藏”了哪些坑?

    今天分享以下兩點內容:1.為什么我們要先開啟STM32外設模塊時鐘;2.關于STM32I/O 復用功
    發表于 05-29 08:53

    為什么我們要先開啟STM32外設模塊時鐘

    置頂公眾號,不錯過每一條消息!今天分享以下兩點內容:1.為什么我們要先開啟STM32外設模塊時鐘;2.關于STM32I/O
    發表于 08-18 07:46

    什么是STM32I/O 復用功能呢?什么時候開啟AFIO時鐘

    為什么我們要先開啟STM32外設模塊時鐘呢?什么是STM32I/O 復用功能呢?什么時候開啟AFIO時鐘?
    發表于 11-22 06:23

    如何去設置STM32 GPIO的復用功能

    STM32GPIO有多少種復用功能呢?如何去設置STM32 GPIO的復用功能呢?
    發表于 12-15 07:55

    怎樣去配置STM32F10x系列I/O端口的復用功能

    STM32F10x系列具有哪些I/O端口呢?怎樣去配置STM32F10x系列I/O端口的
    發表于 01-27 07:11

    怎樣選擇STM32I/O口的模式呢

    手冊即可。2.STM32上有很多I/O口,也有很多的內置外設像I2C,ADC,ISP,USART等 ,為了節省引出管腳,這些內置外設基本上是與I
    發表于 03-02 07:28

    STM32功能引腳重映射和復用功能

    STM32功能引腳重映射和復用功能
    發表于 09-29 08:02 ?12次下載

    使用STM32開發為什么要先開啟外設模塊?什么時候開啟AFIO時鐘?

    1.為什么我們要先開啟STM32外設模塊時鐘; 2.關于STM32I/O 復用功能及什么時
    的頭像 發表于 09-24 12:35 ?8794次閱讀
    使用<b class='flag-5'>STM32</b>開發為什么要先開啟外設模塊?什么時候開啟AFIO時鐘?

    關于STM32通用和復用I/O

    關于STM32通用和復用I/O口一,概述? STM32F10x系列具有豐富的端口可供使用包括2
    發表于 12-03 09:51 ?9次下載
    <b class='flag-5'>關于</b><b class='flag-5'>STM32</b>通用和<b class='flag-5'>復用</b><b class='flag-5'>I</b>/<b class='flag-5'>O</b>口

    STM32單片機---I/O應用

    STM32F10x系列最多有7個16位并行I/O口:PA、PB、PC、PD、PE、PF、PG每個I/O都是
    發表于 12-17 18:33 ?18次下載
    <b class='flag-5'>STM32</b>單片機---<b class='flag-5'>I</b>/<b class='flag-5'>O</b>應用

    STM32單片機端口復用和端口重映射

    /O管腳的復用功能。也就是說,一個GPIO如果可以復用為內置外設的功能引腳,那么當這個GPIO作為內置外設使用的時候,就叫做復用。除了
    發表于 12-28 19:23 ?8次下載
    <b class='flag-5'>STM32</b>單片機端口<b class='flag-5'>復用</b>和端口重映射
    主站蜘蛛池模板: 欧美黄页网 | japan日韩xxxx69hd jdav视频在线观看 | 国产午夜在线视频 | 成人黄色在线 | 日a在线 | 日韩一卡 二卡 三卡 四卡 免费视频 | 婷婷了五月色香综合缴情 | 白嫩少妇激情无码 | 亚洲一区二区三区免费观看 | 色中涩| 亚洲色图偷窥自拍 | 日本一区二区三区四区视频 | 久久夜色精品国产亚洲 | 女性私密部位扒开的视频 | 91在线免费看 | 狠狠色噜噜狠狠狠狠97不卡 | 国产黄色片网站 | 奇米影视亚洲狠狠色777不卡 | 一级片免费在线观看 | 久久天天操 | 人人添人人澡人人澡人人人爽 | 色一情一乱一乱91av | 亚洲专区一路线二 | 精品午夜久久福利大片免费 | 国产欧美日韩va | 天天综合天天干 | 一级片免费在线观看视频 | 高颜值美女啪啪 | 99久久无色码中文字幕 | 奇米影色777四色在线首页 | 欧美性色综合网 | 六月丁香婷婷天天在线 | 日本番囗 | 1024手机免费看 | 日韩欧美高清一区 | www.天天射.com| 亚洲成在人线中文字幕 | 欧洲精品码一区二区三区免费看 | 四虎中文 | 午夜影音 | 国产黄网站在线观看 |