2013-04-10 48 views
1

我一直在使用ST F4-Discovery板一段時間,就像很多其他朋友一樣。我們都有同樣的問題。我們使用Keil IDE(使用4.3至4.7版本的不同版本)。每當我們使用斷點和秒錶計時時,在模擬模式下它都能很好地工作。但是,當我們在板上進行調試並運行相同的代碼時,秒錶從不報告正確的時間。它實際上是隨機的。有誰知道問題是什麼?Keil IDE秒錶不能在調試模式下工作

感謝

回答

1

我在很晚的時候找到了答案。它與內部調試電路有關。默認情況下,當我們在調試模式下打斷點但是繼續計數時,定時器外設不會停止。這就是爲什麼我們使用秒錶持續獲得定時器中斷實例之間的隨機測量間隔。爲了獲得準確的時序,我們需要調試電路來強制定時器外設在我們到達斷點時停止計數,並且一旦我們跨過斷點就恢復。這可以通過編寫以下代碼來完成:

SET_BIT(DBGMCU->APB1FZ, DBGMCU_APB1_FZ_DBG_TIM3_STOP); 

它指示APB1總線上的定時器3在斷點處停止計數。

1

爲了解決秒錶的問題,請訪問:Tarjet選項 - 調試 - 設置 - 跟蹤 - 核心時鐘和頻率調整爲你的處理器的時鐘頻率72MHz或核心。

+0

它已正確設置。同樣的問題。只是隨機數字。這不是一個孤立的問題。我認識的所有人(超過一打)都有同樣的問題。 – 2013-04-11 13:42:34

1

秒錶是基於SEC的內部寄存器。似乎有一個錯誤,如果註冊窗口不顯示,那麼秒錶值不會更新。調試運行時,選擇查看|註冊窗口,並確保您可以看到SEC寄存器值的更新。狀態欄中的秒錶現在也應該更新。

+0

令人驚訝的是,這爲我工作。多奇怪的錯誤... – 2017-08-23 09:44:02

相關問題