回覆列表
  • 1 # 散居獵人

    KEIL C. 最好用串列埠當做除錯資料通道,電腦上串列埠助手或自編軟體。模擬那些看著高大上,其實不實用,因為微控制器程式都很短,且都與硬體介面打交道,模擬真不了。

  • 2 # 哎波吶

    用KEIL程式設計,在需要觀察資料的地方用串列埠傳送資料。觀察是否符你的邏輯需要。不過有些快速連續過程中間不能插入串列埠傳送指令,否則過程被中斷。那麼就將資料存入陣列,過程結束後再輸出。

  • 3 # 玩轉嵌入式

    微控制器可以實現線上除錯程式,透過軟體設定斷點,進行單步除錯,這樣可以看到微控制器是如何一步步執行程式的,從而快速找到問題,解決問題。以Keil和IAR為例介紹一下微控制器的線上除錯。

    1.keil

    的線上除錯功能

    以STM32微控制器為例,所需要的軟體為Keil MDK,模擬工具為J-link,當程式編寫完成後,編譯透過,透過J-link模擬工具連線電腦和單片機板子,一定要安裝好J-link的驅動,在Debug介面選擇J-Link,並正確設定Setting介面的下的器件型號,如下圖所示。

    在懷疑有問題的地方設定斷點後,執行單步除錯,微控制器就可以一步步的執行了,在watch視窗可以選擇檢視微控制器的GPIO等暫存器,實時瞭解各埠和變數的變化情況。

    2.IAR

    在有問題的地方設定斷點,執行全速執行後,會在斷點處停下,可以執行單步除錯功能進入函式,再一步步執行。

    這樣也可以很容易的找到程式bug。

    3.使用串列埠列印進行除錯

    如果微控制器不支援線上模擬功能,可以透過串列埠列印的形式輸出除錯資訊。首先要把串列埠列印程式除錯通,在有問題的地方透過給變數設定不同的值然後列印,這樣也可以很直觀的判斷程式的執行情況。所需要的工具為USB/TTL。

    由於篇幅有限,無法詳細描述,大家可以根據以上資訊搜具體的教程。

  • 4 # 小武哥程式設計

    微控制器程式常用的幾種除錯方法,這些除錯方法都需要結合電腦上位機,以下我羅列一些除錯方法:

    1,串列埠除錯助手。在沒有模擬器或者沒有微控制器廠商模擬上位機時候最適合,微控制器需要開啟串列埠,然後呼叫內部庫printf()函式,將除錯資訊透過串列埠打印出來。

    2,模擬器+廠商模擬上位機。上位機模擬一般可以打斷電,執行程式,查變數。進而分析微控制器程式執行機制。

    3,Proteus模擬軟體。Proteus裡面有許多微控制器和外圍供你學習程式設計模擬使用。

    4,Visual c++6.0編譯軟體。一般微控制器程式在VC++都是可以跑的,不過這款軟體他沒有微控制器中的IO管腳,但可以用printf來代替IO管腳。

  • 中秋節和大豐收的關聯?
  • 為什麼有些養殖龍蝦的人會失敗呢?