關鍵字:MCO,手動修改寄存器
目錄預覽
1 在特殊情況下使能 MCO 功能的方法2 具體實現3 總結
1. 在特殊情況下使能 MCO 功能的方法
在對某些不容易復現的問題進行代碼調時,需要觀察內部時鐘的情況,但往往代碼之前并沒有使能 MCO 功能,在這種情況下就可以使用寄存器直接配置來輸出內部時鐘到 GPIO 腳位上進行觀察和測試。
下面的例子就是在調試 STM32G474 很難復現的一個問題,調試暫停時,通過 PC 端調試工具直接更改寄存器配置來使能 MCO 功能輸出 SYSCLK 到 GPIO 口的方法。
2.具體實現
MCO 輸出內部時鐘到 GPIO 腳位,可以不通過運行用戶代碼,直接在 PC 端調試工具中配置寄存器來實現。在程序暫停時,往往已經走過了時鐘配置,在這種情況下首先需要使能并配置RCC_CFGR 寄存器MCOSEL[3:0]=0x1,選 SYSCLK 來輸出(當然,也可以根據實際情況選擇輸出其他時鐘源)。 在調試軟件中直接手動修改寄存器配置值,如下圖: 其次,需要配置 GPIO 通路:GPIO MCO 選用 PA8 , AF0 功能。
GPIO 選擇下面黃色的配置:在下面的配置之前代碼中需要打開 GPIOA 的 clock。
GPIOA_MODER.MODE8[1:0] 在寄存器窗口中手動修改為 0x2:
GPIOA_OTYPER.OT8 配置為 0,在上電默認的情況下,不用修改,已經是 0 了。
GPIOA_OSPEEDR.OSPEED8[1:0] 配置成 0x2 或 0x3。
GPIOA_PUPDR.PUPD8[1:0] 在寄存器窗口中手動配置為 0x1。
GPIOA_AFRH.AFSEL8[3:0] 配置為 0x0,上電默認已經為 0 了,不用修改,如果不 是,請手動修改為 0。
手動修改后的 GPIOA 寄存器值為如下圖 18 所示:
3. 總結
在調試軟件時,可以通過 PC 端調試工具直接修改寄存器配置來使能某些功能。不過,使用中須注意遵守一定的流程,比如先開啟對應的外設 clock,然后才能配置具體的寄存器去實現一些相應的功能。
完整內容請點擊“閱讀原文”下載原文檔。
長按掃碼關注公眾號
更多資訊,盡在STM32
▽點擊“閱讀原文”,可下載原文檔
原文標題:應用筆記|直接修改寄存器來輸出內部時鐘的方法
文章出處:【微信公眾號:STM32單片機】歡迎添加關注!文章轉載請注明出處。
-
單片機
+關注
關注
6039文章
44574瀏覽量
636333 -
STM32
+關注
關注
2270文章
10906瀏覽量
356533
發布評論請先 登錄
相關推薦
評論