2017-04-04 75 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交易取決於指定的計時器(如我的),它也會隱式停止,否則不會。