我們?cè)?a href="http://www.wenjunhu.com/v/tag/751/" 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配置生成初始化代碼就更簡(jiǎn)單了。像下面這樣:
跟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é)果:
-
芯片
+關(guān)注
關(guān)注
456文章
51055瀏覽量
425585 -
STM32
+關(guān)注
關(guān)注
2270文章
10918瀏覽量
356791 -
定時(shí)器
+關(guān)注
關(guān)注
23文章
3254瀏覽量
115099
原文標(biāo)題:兩個(gè)STM32開發(fā)中基于MDK IDE的調(diào)試輸出技巧
文章出處:【微信號(hào):stmcu832,微信公眾號(hào):茶話MCU】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論