你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

直接修改寄存器来输出内部时钟的方法

[复制链接]
STMCU小助手 发布时间:2023-2-17 13:21
1. 在特殊情况下使能 MCO 功能的方法在对某些不容易复现的问题进行代码调时,需要观察内部时钟的情况,但往往代码之前并没有使能 MCO 功能,在这种情况下就可以使用寄存器直接配置来输出内部时钟到GPIO 脚位上进行观察和测试。
. L3 k" s/ W& ^) l" m7 _! }# H下面的例子就是在调试 STM32G474 很难复现的一个问题,调试暂停时,通过 PC 端调试工具直接更改寄存器配置来使能 MCO 功能输出 SYSCLK 到 GPIO 口的方法。4 n/ @1 @$ `6 e* i" [1 H: ]9 }- ^' T

- f' k: i4 {* o5 u2 H5 L

; }! ~( S& |' a6 P2. 具体实现
/ A$ M4 A. P9 m: d4 l4 d& u5 [' B* V) HMCO 输出内部时钟到 GPIO 脚位,可以不通过运行用户代码,直接在 PC 端调试工具中配置寄存器来实现。
3 G# J$ ~+ m! j" e6 o2 Q/ {, ]在程序暂停时,往往已经走过了时钟配置,在这种情况下首先需要使能并配置RCC_CFGR 寄存器。MCOSEL[3:0]=0x1,选 SYSCLK 来输出(当然,也可以根据实际情况选择输出其他时钟源)。
2 L. Q4 d6 W$ o2 }: `# D/ X% U5 T. g8 }* G" i) o1 D

6 Z9 n3 A5 o# L7 o5 B' C3 ~ BK$[W7O[Z1EZAKUN%_27U}E.png # u: @7 T& E# t& G
$ a$ `$ m7 I# F+ e
: R5 J, z2 G, V5 v
) j2 @# }$ J3 m8 x4 n0 a
1 H3 a5 ?6 b) n/ G
在调试软件中直接手动修改寄存器配置值,如下图:) K8 Z' M2 o" f, Y  E' P

+ O$ O5 A& l% R& b2 [! P- o8 h) ?- T

% m  c$ b+ l$ `6 N' R/ { GH5V](UKDH`O%AG5]O@%@B5.png
' E- y) q  K7 i
, @8 B3 y; u2 h% Y- u; a5 p
& P) d- d, X! F, I- F* _1 m3 P$ O
其次,需要配置 GPIO 通路:GPIO MCO 选用 PA8 , AF0 功能。
' X4 V) K8 Q. p" L# n# H) V% `/ ^0 [0 e" J( c7 \. W& B
4 Z! p! }9 F6 q: s
4]6W$`UJ)RHJLI7QT{VH%SI.png . w# O8 ~  C! _- O( ^! f0 w) G

) @2 y' |7 a' `, p/ L6 R1 e" e

% |( P3 n" v! a* k+ W" R9 mGPIO 选择下面黄色的配置:在下面的配置之前代码中需要打开 GPIOA 的 clock。 & d; U! l1 M2 x: H. J! o

8 r! H  h8 v9 _  M1 R: y! \- H) I/ a. E
! N0 P3 E  C7 l0 ?: Q
完整版请查看:附件 直接修改寄存器来输出内部时钟的方法.pdf (830.92 KB, 下载次数: 0)
赞 收藏 评论0 发布时间:2023-2-17 13:21

举报

0个回答

所属标签

相似技术帖

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版