新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 關于調試STM32程序時,某些標志位被調試軟件意外清除的問題

        關于調試STM32程序時,某些標志位被調試軟件意外清除的問題

        作者: 時間:2016-12-02 來源:網絡 收藏
        在調試的過程中,使用調試軟件的寄存器或存儲器顯示窗口,可以很方便地查看外設寄存器的狀態。

        很多朋友都碰到過這樣的問題:在單步調試時始終不能在顯示窗口看到某些標志位的變化,應該設置這些標志位的時候,窗口中卻顯示為0,不少人都錯誤地認為這是芯片的問題。

        我們知道,不少STM32外設的狀態寄存器位,可以通過對某些寄存器的讀操作而清除(例如I2C的I2C_SR1中的很多標志位),在調試過程中,每當程序停止在設置的斷點或單步停止時,調試軟件都會自動地讀出所有指定的寄存器和存儲器中的內容,并刷新窗口的顯示,調試軟件的這個讀操作恰好清除了那些標志位,造成了上面描述的現象。

        有幾個簡單的辦法解決這個問題:

        1)關閉寄存器或存儲器顯示窗口
        2)在寄存器或存儲器顯示窗口中不顯示這些敏感的寄存器
        3)不要把斷點放在對這些敏感的寄存器位操作的前面,以保證這些寄存器位不被調試軟件意外地操作。
        4)看官自己添加~~~~~


        評論


        技術專區

        關閉
        主站蜘蛛池模板: 秭归县| 凤冈县| 杂多县| 浠水县| 霍邱县| 叶城县| 祁东县| 浙江省| 普洱| 桐城市| 安义县| 墨玉县| 临城县| 巢湖市| 鄂尔多斯市| 蚌埠市| 岱山县| 固阳县| 西和县| 黔西县| 老河口市| 揭阳市| 大庆市| 濉溪县| 互助| 无棣县| 乌什县| 湖口县| 喀喇| 商河县| 林芝县| 武乡县| 双流县| 普兰县| 定兴县| 南陵县| 临沂市| 大埔县| 清镇市| 丰都县| 新宁县|