[導(dǎo)讀]我們?cè)赟TM32開發(fā)調(diào)試過程中,常常需要做些直觀的輸出,如果手頭沒有相關(guān)的設(shè)備或儀器,我們可以使用IDE自帶的工具。這里分享兩個(gè)基于MDK?IDE的調(diào)試輸出技巧。一、使用其自帶的邏輯分析儀查看波形。比方我們需要查看STM32定時(shí)器的PWM輸出,手頭又沒有示波器或邏輯分析儀,尤其學(xué)...
我們?cè)?a href="/tags/STM32" target="_blank">STM32開發(fā)調(diào)試過程中,常常需要做些直觀的輸出,如果手頭沒有相關(guān)的設(shè)備或儀器,我們可以使用 IDE自帶的工具。這里分享兩個(gè)基于MDK IDE的調(diào)試輸出技巧。
一、使用其自帶的邏輯分析儀查看波形。
比方我們需要查看STM32定時(shí)器的PWM輸出,手頭又沒有示波器或邏輯分析儀, 尤其學(xué)生族。我們可以用MDK自帶的邏輯分析儀來察看結(jié)果。
假設(shè)基于某一款STM32F4芯片,輸出一個(gè)脈寬為100us,占空比為40%的波形。使用TIM3的通道1輸出PWM波形,用到GPIOA_6,即PA6.
STM32定時(shí)器的參數(shù)配置我這里就省略了。我開啟定時(shí)器的比較中斷和更新中斷,在中斷里將PA口的IDR值讀到一個(gè)全局變量TIM3_CH1_OUT里。
下面主要介紹跟LA[邏輯分析儀縮寫]有關(guān)的配置:
1、
2、
3、聯(lián)機(jī)進(jìn)入調(diào)試狀態(tài),進(jìn)一步配置:
4、運(yùn)行看結(jié)果:
結(jié)果出來了,比較直觀,也具備較好的測(cè)量能力。比一般的示波器不會(huì)差。
二、使用調(diào)試工具自帶的SWO功能做printf輸出
我們?cè)谡{(diào)試過程中往往需要做些printf輸出,通常使用UART實(shí)現(xiàn)。順便用下倒還好,不然得單獨(dú)配置出UART,PC端需裝應(yīng)用軟件和win驅(qū)動(dòng),還得輔以額外的硬件。
其實(shí),我們很多時(shí)候可能通過SWO方式做輸出就好,只要芯片和調(diào)試器支持。
SWO,serial wire output ,一種異步串行通信通道。目前基于Cortex M3,M4,M7內(nèi)核芯片都支持。通過配置寄存器DBGMCU_CR里的TRACE_IOEN和TRACE_MODE來啟用。當(dāng)然用CUBEMX配置生成初始化代碼就更簡單了。像下面這樣:
跟MDK有關(guān)的配置:
1、
2、進(jìn)入調(diào)試狀態(tài),點(diǎn)擊View/Serial Windows/Debug(printf)Viewer
3、用戶代碼里添加:
#include “stdio.h”
int fputc(int ch, FILE *f)
{
ITM_SendChar(ch);
return (ch);
}
4、運(yùn)行看結(jié)果:
OK,分享上面兩個(gè)比較實(shí)用的調(diào)試輸出技巧,希望對(duì)您有幫助。
===================================
欲知詳情,請(qǐng)下載word文檔
下載文檔
本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除( 郵箱:macysun@21ic.com )。