㈠ 單片機串口調試的方法(在keil中) 有人知道嗎 求指點
需要你寫程序的支持,想看哪個變數的變化,在程序的不同位置將這個變數放到串口中發出來,通過計算機接收,就能知道這個變數在程序中間的變化過程。也就是說在沒有專用的調試器的時候,利用單片機自身的串口,通過對單片機的編程,將單片機程序運行的情況發送出來。
㈡ 單片機程序怎麼在電腦上調試用什麼軟體好
單片機可以實現在線調試程序,通過軟體設置斷點,進行單步調試,這樣可以看到單片機是如何一步步執行程序的,從而快速找到問題,解決問題。以Keil和IAR為例介紹一下單片機的在線調試。
1.keil
的在線調試功能
以STM32單片機為例,所需要的軟體為Keil MDK,模擬工具為J-link,當程序編寫完成後,編譯通過,通過J-link模擬工具連接電腦和單片機板子,一定要安裝好J-link的驅動,在Debug界面選擇J-Link,並正確設置Setting界面的下的器件型號,如下圖所示。
設置好後,點擊工具欄的Debug按鈕,就進入在線調試模式了,這時候會出現調試工具欄,如下圖所示。
在懷疑有問題的地方設置斷點後,運行單步調試,單片機就可以一步步的執行了,在watch窗口可以選擇查看單片機的GPIO等寄存器,實時了解各埠和變數的變化情況。
2.IAR
的在線調試功能
以STM8單片機為例,以IAR for STM8為例,工具為ST-Link,正確安裝好ST-Link的驅動,程序編譯通過後,執行Debug and download按鈕可以開啟在線模擬模式,如下圖所示。
在有問題的地方設置斷點,執行全速運行後,會在斷點處停下,可以執行單步調試功能進入函數,再一步步執行。
這樣也可以很容易的找到程序bug。
3.使用串口列印進行調試
如果單片機不支持在線模擬功能,可以通過串口列印的形式輸出調試信息。首先要把串口列印程序調試通,在有問題的地方通過給變數設置不同的值然後列印,這樣也可以很直觀的判斷程序的運行情況。所需要的工具為USB/TTL。
由於篇幅有限,無法詳細描述,大家可以根據以上信息搜具體的教程。
以上就是這個問題的回答,感謝留言、評論、轉發。
更多精彩內容請關注本頭條號:玩轉嵌入式。感謝大家。
㈢ 單片機調試的時候出錯了 求大神
就這個程序而言,就純在這幾個錯誤,只要是有錯誤就無法編譯成功
錯誤一、按鍵檢測函數內,賦值語句被你寫成判斷語句了,如下圖這里
解決辦法是,將temp的變數聲明語句移到函數外,使其成為全局變數
錯誤三、既然程序的前端有各個函數的定義部分,那就要吧主函數放在最上端,不需要經常修改的函數放在最下端,雖然這不是強制性的,但這是一個良好的編程習慣
先改正以上錯誤吧!
㈣ 單片機項目中使用新IC晶元調試方法
前兩天,一位小夥伴咨詢我一款新IC晶元怎麼使用,藉此機會我順便把我日常工作中經常用到的一種調試方法介紹給小夥伴們,希望對對大家有所幫助。准備倉促,文中難免有技術性錯誤,歡迎大家給予指正,並給出好的建議...🤝🤝
我們在單片機的項目開發過程中經常會遇到使用新IC晶元的情況,某寶賣家有個時候也提供不了對應開發程序,到網上找資料也找不到;很多初學者面對這樣的問題往往束手無策,這里我給大家介紹我經常用的其中一種新IC調試的方法。
因為這個晶元比較簡單我這里採用下面步驟進行:
第一步: 先用arino+麵包板快速搭建電路驗證晶元功能
第二步: 使用STM32CubeIDE快速搭建工程驗證在STM32上工作是否正常
Tips: 由於我手頭沒有 萬用表 ,這里我使用 arino的模擬電壓採集 功能通過串口列印出來作為電位計的 電壓監控 用。
晶元模塊的快速製作
在晶元商城上買了兩片回來調試,晶元購買的費用小夥伴給付了
准備好晶元+轉接板
焊接兩塊是為了防止在使用過程中意外弄壞另一塊可以立馬補上,確保調試正常進行而不耽誤太多時間
這樣我們的模塊就製作完成了
說明: STM32使用的供電電壓和數字電位計參考電壓都是3V3,相應的輸出結果也是在0~3V3范圍
1、這里介紹了眾多新IC晶元調試方式中的一種,後期有機會再陸續介紹其他IC或新模塊的調試方法。
2、文中只是簡單的對晶元進行功能測試,實際項目中還會有移植、驅動的可靠性、穩定性等測試工作 。
3、我們要善於運用手頭的工具、arino等快速驗證開發環境;模塊的快速驗證,特別是在項目開發過程中,時間就是金錢,對每一種工具的熟練掌握也是單片機開發過程中不可或缺的重要技能。
4、硬體調試與軟體調試有很大的區別,很多時候是一次性,不可逆轉的,不像軟體Ctl+Z可以撤銷;硬體在使用過程中出現意外損壞情況很正常:焊接不當、意外插錯,靜電防護不到位等等;我們要善於運用一些項目技巧,權衡時間或花費;這里之所以選擇焊接兩個晶元模塊也是為了防止這種意外的發生而對調試造成不必要的時間耽擱。
㈤ 單片機調試 2K
1. 使用匯編語言,編寫程序,2K的空間,編寫個小程序,足夠。
2. V2版的,網上能夠搜到系列號,正確輸入後,就變成了正版軟體。
3. V3版的,網上能夠搜到破解軟體。
㈥ 單片機程序跑飛怎麼去查找原因呢
對於簡單的錯誤,如果能初步猜測到執行哪個函數後跑飛的,那就可以直接單步調試,看看什麼原因,不外乎指針非法操作,數組越界之類的。
還有一種笨方法,注釋函數,如果注釋函數後bug不再現,那麼就可以按照剛剛說的單步進去這個函數,看看有什麼問題。
更有效的但是也對水平要求更高的方法可以看一下別人的方法。
下面是幾個鏈接,可以看看,學習一下。
記一次STM32中HardFault問題的調試解決
如何找到導致程序出現HardFault
STM32硬體錯誤HardFault_Handler的處理方
定位產生HARD FAULT之前的代碼
㈦ 單片機定時器不工作,以下是我寫的。各位大蝦請看下哪裡出錯誤了 調試的時候定時器就一直不運行。
樓主你的程序在Keil U3和U4里執行是可以正常進入中斷的。程序沒問題。估計是KEIL的BUG。U2確實太古董了,換新版本的吧!
㈧ 51單片機串口接受字元串程序有bug,高手幫看看
看不出問題,不過建議你把程序先改成收到1234燈亮,5678燈滅,這樣就便於查找原因了另外,我覺得應該把連續取數據放在主程序中
中斷程序中用for循環不太好
中斷程序中只計數和清標志位
RI=0;
table[i]=SBUF;
i++;
if (i==4)i=0;