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

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

[复制链接]
STMCU小助手 发布时间:2023-2-17 13:21
1. 在特殊情况下使能 MCO 功能的方法在对某些不容易复现的问题进行代码调时,需要观察内部时钟的情况,但往往代码之前并没有使能 MCO 功能,在这种情况下就可以使用寄存器直接配置来输出内部时钟到GPIO 脚位上进行观察和测试。
: x7 ?. c8 ]5 i下面的例子就是在调试 STM32G474 很难复现的一个问题,调试暂停时,通过 PC 端调试工具直接更改寄存器配置来使能 MCO 功能输出 SYSCLK 到 GPIO 口的方法。6 W( q& g7 ~7 h7 @# D

4 w0 ]( h. g2 w1 [; E( g( q
( r  I* z. U6 m% F+ E  a
2. 具体实现
2 d+ }3 E! \+ Y8 ~9 q) f0 _9 wMCO 输出内部时钟到 GPIO 脚位,可以不通过运行用户代码,直接在 PC 端调试工具中配置寄存器来实现。
% c; e2 V0 ~1 C" T' C& j8 D在程序暂停时,往往已经走过了时钟配置,在这种情况下首先需要使能并配置RCC_CFGR 寄存器。MCOSEL[3:0]=0x1,选 SYSCLK 来输出(当然,也可以根据实际情况选择输出其他时钟源)。7 z- a; C/ J! U9 `9 |
* a' S; E1 V0 H
( V9 m' [, K  p8 O- `: d
BK$[W7O[Z1EZAKUN%_27U}E.png
8 _# \+ k+ G+ W' ]) p  w6 G0 m- _& f: m

. ~1 K; e/ Q5 o- H3 A- K+ J9 _  E! `% f; J. j! `8 c0 ]  S
! N1 y7 i: W  M6 \+ |6 B
在调试软件中直接手动修改寄存器配置值,如下图:' s) v) V2 f& f+ F5 ~. v" t- x  L
6 r5 Y; C6 J% z- C+ D% s0 ?  f
2 O  W( Z2 h; p: i: _4 X' d
GH5V](UKDH`O%AG5]O@%@B5.png
% C9 K9 a( K6 b8 M) J! I* m- L5 u$ \, ^; C5 n) {

4 V: L5 |+ m9 |其次,需要配置 GPIO 通路:GPIO MCO 选用 PA8 , AF0 功能。 4 H2 y8 I$ Z5 ?/ P

5 W& u" F8 |& p/ I: A/ a
8 X, {' n6 Z3 Y
4]6W$`UJ)RHJLI7QT{VH%SI.png
3 N7 e6 d3 b4 T$ A- D3 Y& h; x+ ^3 x% v
  L0 b( b9 P3 R1 W
GPIO 选择下面黄色的配置:在下面的配置之前代码中需要打开 GPIOA 的 clock。 # v# G4 H- ?! o- o8 `

( `/ ]9 G1 m/ h& t- E% o8 v( `! [; H% w' Z# R1 u
8 I# P, H! b% w. N, l
完整版请查看:附件 直接修改寄存器来输出内部时钟的方法.pdf (830.92 KB, 下载次数: 0)
赞 收藏 评论0 发布时间:2023-2-17 13:21

举报

0个回答

所属标签

相似技术帖

官网相关资源

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