在特殊情況下使能 MCO 功能的方法
在對(duì)某些不容易復(fù)現(xiàn)的問(wèn)題進(jìn)行代碼調(diào)時(shí),需要觀察內(nèi)部時(shí)鐘的情況,但往往代碼之前并沒有使能 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 口的方法。
具體實(shí)現(xiàn)
MCO 輸出內(nèi)部時(shí)鐘到 GPIO 腳位,可以不通過(guò)運(yùn)行用戶代碼,直接在 PC 端調(diào)試工具中配置寄存器來(lái)實(shí)現(xiàn)。
在程序暫停時(shí),往往已經(jīng)走過(guò)了時(shí)鐘配置,在這種情況下首先需要使能并配置RCC_CFGR 寄存器。MCOSEL[3:0]=0x1,選 SYSCLK 來(lái)輸出(當(dāng)然,也可以根據(jù)實(shí)際情況選擇輸出其他時(shí)鐘源)。
總結(jié)
在調(diào)試軟件時(shí),可以通過(guò) PC 端調(diào)試工具直接修改寄存器配置來(lái)使能某些功能。不過(guò),使用中須注意遵守一定的流程,比如先開啟對(duì)應(yīng)的外設(shè) clock,然后才能配置具體的寄存器去實(shí)現(xiàn)一些具體的功能。