<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 關(guān)于調(diào)試STM32程序時(shí),某些標(biāo)志位被調(diào)試軟件意外清除的問題

          關(guān)于調(diào)試STM32程序時(shí),某些標(biāo)志位被調(diào)試軟件意外清除的問題

          作者: 時(shí)間:2016-12-02 來源:網(wǎng)絡(luò) 收藏
          在調(diào)試的過程中,使用調(diào)試軟件的寄存器或存儲(chǔ)器顯示窗口,可以很方便地查看外設(shè)寄存器的狀態(tài)。

          很多朋友都碰到過這樣的問題:在單步調(diào)試時(shí)始終不能在顯示窗口看到某些標(biāo)志位的變化,應(yīng)該設(shè)置這些標(biāo)志位的時(shí)候,窗口中卻顯示為0,不少人都錯(cuò)誤地認(rèn)為這是芯片的問題。

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

          有幾個(gè)簡(jiǎn)單的辦法解決這個(gè)問題:

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


          評(píng)論


          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();