打印

GD32E2308怎么才能在调试时停止Timer13计数?

[复制链接]
1865|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
huhuhu_1|  楼主 | 2024-5-29 10:57 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
大神好!mcu型号:GD32E2308,ide:iar 9.30.1,仿真器:GD-LINK(cmsis-dap),调试中无法停止Timer13计数。我试了两种方式,一是直接修改寄存器DBGMCU CTL0的位TIMER13_HOLD,二是调用函数dbg_periph_enable(DBG_TIMER13_HOLD);都不成功,CTL0总是全0,请问该如何做才能在调试中停止Timer13计数?谢谢!
搜索
复制

使用特权

评论回复
沙发
huhuhu_1|  楼主 | 2024-5-29 15:13 | 只看该作者
本帖最后由 huhuhu_1 于 2024-5-29 15:15 编辑

找到原因了,是没有开启DBGMCU时钟,改成下面的代码就好了
  rcu_periph_clock_enable(RCU_DBGMCU);
  dbg_periph_enable(DBG_TIMER13_HOLD);




使用特权

评论回复
板凳
rzjvv| | 2024-5-31 23:19 | 只看该作者
本帖最后由 rzjvv 于 2024-6-1 01:26 编辑

在你的代码中,可以添加逻辑以在调试时停止Timer13的计数。你可以通过设置相应的寄存器或调用特定的停止计数函数来实现这一点。

使用特权

评论回复
地板
wangtaohui| | 2024-7-31 22:18 | 只看该作者
DBGMCU_CTL0寄存器需要确保你有足够的权限进行读写操作。在调试过程中,有时寄存器的值可能由于某些调试设置或保护机制而无法正常读取或写入。

使用特权

评论回复
5
wangtaohui| | 2024-7-31 22:20 | 只看该作者
尝试使用不同的库函数或直接操作寄存器的方式。某些函数库可能会有不同的实现方式或可能存在bug。

使用特权

评论回复
6
wangtaohui| | 2024-7-31 22:22 | 只看该作者
你可以尝试使用不同的调试设置来检查是否有其他设置影响寄存器访问:
在Project -> Options -> Debugger中,确保“Debug”设置正确。
检查“Download”选项是否正确设置,确保下载和调试设置没有冲突。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

23

主题

62

帖子

0

粉丝