问答

汇集网友智慧,解决技术难题

21ic问答首页 - GD32E2308怎么才能在调试时停止Timer13计数?

Timer13 timer 调试 GD32E2308

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

huhuhu_12024-05-29
大神好!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计数?谢谢!
搜索
复制

回答 +关注 10
1861人浏览 8人回答问题 分享 举报
8 个回答
  • 你可以尝试使用不同的调试设置来检查是否有其他设置影响寄存器访问:
    在Project -> Options -> Debugger中,确保“Debug”设置正确。
    检查“Download”选项是否正确设置,确保下载和调试设置没有冲突。
  • 尝试使用不同的库函数或直接操作寄存器的方式。某些函数库可能会有不同的实现方式或可能存在bug。
  • DBGMCU_CTL0寄存器需要确保你有足够的权限进行读写操作。在调试过程中,有时寄存器的值可能由于某些调试设置或保护机制而无法正常读取或写入。
  • 本帖最后由 rzjvv 于 2024-6-1 01:26 编辑

    在你的代码中,可以添加逻辑以在调试时停止Timer13的计数。你可以通过设置相应的寄存器或调用特定的停止计数函数来实现这一点。
  • 本帖最后由 huhuhu_1 于 2024-5-29 15:15 编辑

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





您需要登录后才可以回复 登录 | 注册