在特殊情况下使能 MCO 功能的方法
在对某些不容易复现的问题进行代码调时,需要观察内部时钟的情况,但往往代码之前并没有使能 MCO 功能,在这种情况下就可以使用寄存器直接配置来输出内部时钟到GPIO 脚位上进行观察和测试。
下面的例子就是在调试 STM32G474 很难复现的一个问题,调试暂停时,通过 PC 端调试工具直接更改寄存器配置来使能 MCO 功能输出 SYSCLK 到 GPIO 口的方法。
具体实现
MCO 输出内部时钟到 GPIO 脚位,可以不通过运行用户代码,直接在 PC 端调试工具中配置寄存器来实现。
在程序暂停时,往往已经走过了时钟配置,在这种情况下首先需要使能并配置RCC_CFGR 寄存器。MCOSEL[3:0]=0x1,选 SYSCLK 来输出(当然,也可以根据实际情况选择输出其他时钟源)。
总结
在调试软件时,可以通过 PC 端调试工具直接修改寄存器配置来使能某些功能。不过,使用中须注意遵守一定的流程,比如先开启对应的外设 clock,然后才能配置具体的寄存器去实现一些具体的功能。
阅读全文
442