
1. 在特殊情况下使能 MCO 功能的方法 在对某些不容易复现的问题进行代码调时,需要观察内部时钟的情况,但往往代码之前并没有使能 MCO 功能,在这种情况下就可以使用寄存器直接配置来输出内部时钟到 GPIO 脚位上进行观察和测试。 下面的例子就是在调试 STM32G474 很难复现的一个问题,调试暂停时,通过 PC 端调试工具直接更改寄存器配置来使能 MCO 功能输出 SYSCLK 到 GPIO 口的方法。 2. 具体实现 ![]() ![]() 在调试软件中直接手动修改寄存器配置值,如下图: ![]() 其次,需要配置 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 GUI LTDC 最大像素时钟评估方法
【2025·STM32峰会】GUI解决方案实训分享1-对LVGL咖啡机例程的牛刀小试以及问题排查
OpenBLT移植到STM32F405开发板
为什么要先开启STM32外设时钟?
【STM32MP157】从ST官方例程中分析RPMsg-TTY/SDB核间通信的使用方法
【经验分享】STM32实例-RTC实时时钟实验④-获取RTC时间函数与中断服务函数
STM32 以太网 MAC Loopback 的实现
STM32功能安全设计包,助力产品功能安全认证
基于STM32启动过程startup_xxxx.s文件经验分享
HRTIM 指南