
目錄預(yù)覽
1. 在特殊情況下使能 MCO 功能的方法
在對(duì)某些不容易復(fù)現(xiàn)的問(wèn)題進(jìn)行代碼調(diào)時(shí),需要觀察內(nèi)部時(shí)鐘的情況,但往往代碼之前并沒(méi)有使能 MCO 功能,在這種情況下就可以使用寄存器直接配置來(lái)輸出內(nèi)部時(shí)鐘到 GPIO 腳位上進(jìn)行觀察和測(cè)試。
下面的例子就是在調(diào)試 STM32G474 很難復(fù)現(xiàn)的一個(gè)問(wèn)題,調(diào)試暫停時(shí),通過(guò) PC 端調(diào)試工具直接更改寄存器配置來(lái)使能 MCO 功能輸出 SYSCLK 到 GPIO 口的方法。
2.?具體實(shí)現(xiàn)




GPIO 選擇下面黃色的配置:在下面的配置之前代碼中需要打開(kāi) GPIOA 的 clock。

GPIOA_MODER.MODE8[1:0] 在寄存器窗口中手動(dòng)修改為 0x2:


GPIOA_OTYPER.OT8 配置為 0,在上電默認(rèn)的情況下,不用修改,已經(jīng)是 0 了。

GPIOA_OSPEEDR.OSPEED8[1:0] 配置成 0x2 或 0x3。


GPIOA_PUPDR.PUPD8[1:0] 在寄存器窗口中手動(dòng)配置為 0x1。


GPIOA_AFRH.AFSEL8[3:0] 配置為 0x0,上電默認(rèn)已經(jīng)為 0 了,不用修改,如果不 是,請(qǐng)手動(dòng)修改為 0。


手動(dòng)修改后的 GPIOA 寄存器值為如下圖 18 所示:

3. 總結(jié)
在調(diào)試軟件時(shí),可以通過(guò) PC 端調(diào)試工具直接修改寄存器配置來(lái)使能某些功能。不過(guò),使用中須注意遵守一定的流程,比如先開(kāi)啟對(duì)應(yīng)的外設(shè) clock,然后才能配置具體的寄存器去實(shí)現(xiàn)一些相應(yīng)的功能。

長(zhǎng)按掃碼關(guān)注公眾號(hào)?
更多資訊,盡在STM32
▽點(diǎn)擊“閱讀原文”,可下載原文檔