2017-04-04 71 views
2

当Cortex到达断点或用户暂停执行代码时,它可以停止执行Cortex代码。但是,当皮层停止执行处于暂停状态的代码时,调试器是否冻结其他外设,如DMA,UART和定时器?STM32在暂停调试器时冻结周边设备

+0

根据这个简短的句子“当 程序到达一个断点时,内部外围设备如 定时器可以被冻结在当前状态或可以被保留 运行。”从这[doc](http://www.st.com/content/ccc/resource/training/technical/product_training/16/31/0e/0d/94/11/4f/5e/STM32L4_System_Debug.pdf/files/ STM32L4_System_Debug.pdf/jcr:content/translations/en.STM32L4_System_Debug.pdf),这取决于。我不知道你能告诉调试器冻结某些外设。 –

+0

在这里或谷歌上查找DGBMCU。在STM32上,如果您想在调试器停止时停止外设,通常可以选择。我在快速搜索后发现了很多例子。如果您需要代码示例,STM HAL将提供一个接口。 –

回答

3

您只能保持时间/ r取决于外围设备。

我呼吁进入主要功能如下代码:

DBGMCU->APB1FZ |= DBGMCU_APB1_FZ_DBG_TIM2_STOP | DBGMCU_APB1_FZ_DBG_TIM3_STOP | 
        DBGMCU_APB1_FZ_DBG_TIM4_STOP | DBGMCU_APB1_FZ_DBG_TIM5_STOP); 

    DBGMCU->APB2FZ |= (DBGMCU_APB2_FZ_DBG_TIM19_STOP); 

这将停止几个定时器,如果你的代码打一个断点。如果你的DMA交易取决于指定的计时器(如我的),它也会隐式停止,否则不会。