我們在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 ,一種異步串行通信通道。目前基于Cortex M3,M4,M7內核芯片都支持。通過配置寄存器DBGMCU_CR里的TRACE_IOEN和TRACE_MODE來啟用。當然用CUBEMX配置生成初始化代碼就更簡單了。像下面這樣:
跟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、運行看結果:
-
芯片
+關注
關注
456文章
51188瀏覽量
427288 -
STM32
+關注
關注
2272文章
10924瀏覽量
357585 -
定時器
+關注
關注
23文章
3255瀏覽量
115376
原文標題:兩個STM32開發中基于MDK IDE的調試輸出技巧
文章出處:【微信號:stmcu832,微信公眾號:茶話MCU】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
調試輸出到IDE
基于MDK IDE的STM32開發調試輸出有什么技巧?
使用RealView MDK進行SW調試和實時跟蹤
![使用RealView <b class='flag-5'>MDK</b>進行SW<b class='flag-5'>調試</b>和實時跟蹤](https://file1.elecfans.com//web2/M00/A4/60/wKgZomUMM--AZYxsAACaJM0fbrA089.jpg)
合并兩個排序的鏈表
STM32的IAR工程使用Visual Studio Code編譯調試
![STM32的IAR工程使用Visual Studio Code編譯<b class='flag-5'>調試</b>](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
MDK stm32 AD&串口 軟件仿真
![<b class='flag-5'>MDK</b> stm32 AD&串口 軟件仿真](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
基于KEIL MDK環境調試STM32的兩個誤會
![基于KEIL <b class='flag-5'>MDK</b>環境<b class='flag-5'>調試</b>STM32的<b class='flag-5'>兩個</b>誤會](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
評論