在KEIL中使用printf(),防止卡死的方法

一、在KEIL中通過 usart + printf 輸出調試信息

  • 方法1:使用  use MicroLIB(微庫),在魔術棒 / Targer 選項頁中勾選use MicroLIB(下面代碼的358~369行不用寫)
  • 方法2:不使用use MicroLIB(微庫),就要加入以下全部代碼, 以支持printf函數  


二、使用注意問題

圖中的代碼是寫在USART的初始化文件中,並修改圖中的紅色下劃線部分,換成你要輸出的USART

如果調用printf前,沒USART初始化並重定義fputc,  會出現程序卡死的情況,處理辦法:

  • 定義一個變量標誌,變量名稱隨意,
  • 在完成USART初始化後,置位標誌,如: char USART_IS_OK= 1; 
  • 然後在fputc函數中,首行加入判斷語句: if(USART_IS_OK==0) return;, // 如果未完成初始化,就退出

三、關於微庫

微庫適合場景:程序快要撐爆芯片資源的情況。

個人建議:儘量不用。

use MicroLIB(微庫)詳解:如何在KEIL中使用MicroLIB

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章