我們在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é)果出來了,比較直觀,也具備較好的測量能力。比一般的示波器不會(huì)差。
二、使用調(diào)試工具自帶的SWO功能做printf輸出
我們在調(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é)果:
-
芯片
+關(guān)注
關(guān)注
459文章
52145瀏覽量
435955 -
STM32
+關(guān)注
關(guān)注
2289文章
11011瀏覽量
362278 -
定時(shí)器
+關(guān)注
關(guān)注
23文章
3287瀏覽量
117177
原文標(biāo)題:兩個(gè)STM32開發(fā)中基于MDK IDE的調(diào)試輸出技巧
文章出處:【微信號(hào):stmcu832,微信公眾號(hào):茶話MCU】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評(píng)論請先 登錄
調(diào)試輸出到IDE
基于MDK IDE的STM32開發(fā)調(diào)試輸出有什么技巧?
如何利用keil mdk去做一個(gè)IDE集成開發(fā)環(huán)境呢
如何在MDK中使用openamp?
使用RealView MDK進(jìn)行SW調(diào)試和實(shí)時(shí)跟蹤

兩個(gè)實(shí)用的串口調(diào)試助手
合并兩個(gè)排序的鏈表
STM32的IAR工程使用Visual Studio Code編譯調(diào)試

MDK stm32 AD&串口 軟件仿真

基于KEIL MDK環(huán)境調(diào)試STM32的兩個(gè)誤會(huì)

兩個(gè)LED和兩個(gè)按鈕的使用

評(píng)論