【轉】分享兩個基於MDK IDE的除錯輸出技巧
我們在STM32開發除錯過程中,常常需要做些直觀的輸出,如果手頭沒有相關的裝置或儀器,我們可以使用 IDE自帶的工具。這裡分享兩個基於MDK IDE的除錯輸出技巧。
一、使用其自帶的邏輯分析儀檢視波形。
比方我們需要檢視STM32定時器的PWM輸出,手頭又沒有示波器或邏輯分析儀, 尤其學生族。我們可以用MDK自帶的邏輯分析儀來察看結果。
假設基於某一款STM32F4晶片,輸出一個脈寬為100us,佔空比為40%的波形。使用TIM3的通道1輸出PWM波形,用到GPIOA_6,即PA6.
STM32定時器的引數配置我這裡就省略了。我開啟定時器的比較中斷和更新中斷,在中斷裡將PA口的IDR值讀到一個全域性變數TIM3_CH1_OUT裡。
下面主要介紹跟LA[邏輯分析儀縮寫]有關的配置:
1、
2、
3、聯機進入除錯狀態,進一步配置:
4、執行看結果:
結果出來了,比較直觀,也具備較好的測量能力。比一般的示波器不會差。
二、使用除錯工具自帶的SWO功能做printf輸出
我們在除錯過程中往往需要做些printf輸出,通常使用UART實現。順便用下倒還好,不然得單獨配置出UART,PC端需裝應用軟體和win驅動,還得輔以額外的硬體。
其實,我們很多時候可能通過SWO方式做輸出就好,只要晶片和偵錯程式支援。
SWO,serial wire output ,一種非同步序列通訊通道。目前基於Cor
跟MDK有關的配置:
1、
2、進入除錯狀態,點選View/Serial Windows/Debug(printf)Viewer
3、使用者程式碼裡新增:
#include“stdio.h”
int fputc(int ch, FILE *f)
{
ITM_SendChar(ch);
return (ch);
}
4、執行看結果:
【來源】