|
在調(diào)試的過程中,使用調(diào)試軟件的寄存器或存儲器顯示窗口,可以很方便地查看外設(shè)寄存器的狀態(tài)。 很多朋友都碰到過這樣的問題:在單步調(diào)試時始終不能在顯示窗口看到某些標(biāo)志位的變化,應(yīng)該設(shè)置這些標(biāo)志位的時候,窗口中卻顯示為0,不少人都錯誤地認(rèn)為這是芯片的問題。 我們知道,不少STM32外設(shè)的狀態(tài)寄存器位,可以通過對某些寄存器的讀操作而清除(例如I2C的I2C_SR1中的很多標(biāo)志位),在調(diào)試過程中,每當(dāng)程序停止在設(shè)置的斷點或單步停止時,調(diào)試軟件都會自動地讀出所有指定的寄存器和存儲器中的內(nèi)容,并刷新窗口的顯示,調(diào)試軟件的這個讀操作恰好清除了那些標(biāo)志位,造成了上面描述的現(xiàn)象。 有幾個簡單的辦法解決這個問題: 1)關(guān)閉寄存器或存儲器顯示窗口 2)在寄存器或存儲器顯示窗口中不顯示這些敏感的寄存器 3)不要把斷點放在對這些敏感的寄存器位操作的前面,以保證這些寄存器位不被調(diào)試軟件意外地操作。 4)看官自己添加~~~~~ 發(fā)表于 2009/3/16 |