你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

基于STM32开发中MDK IDE的调试输出技巧

[复制链接]
yumeii 发布时间:2020-1-6 16:05
我们在STM32开发调试过程中,常常需要做些直观的输出,如果手头没有相关的设备或仪器,我们可以使用 IDE自带的工具。这里分享两个基于MDK  IDE的调试输出技巧。


一、使用其自带的逻辑分析仪查看波形。


比方我们需要查看STM32定时器的PWM输出,手头又没有示波器或逻辑分析仪, 尤其学生族。我们可以用MDK自带的逻辑分析仪来察看结果。


假设基于某一款STM32F4芯片,输出一个脉宽为100us,占空比为40%的波形。使用TIM3的通道1输出PWM波形,用到GPIOA_6,即PA6.


STM32定时器的参数配置我这里就省略了。我开启定时器的比较中断和更新中断,在中断里将PA口的IDR值读到一个全局变量TIM3_CH1_OUT里。


下面主要介绍跟LA[逻辑分析仪缩写]有关的配置:


1、


1.png


2、


2.png


3、联机进入调试状态,进一步配置:


3.png


4、运行看结果:


4.png

5.png


结果出来了,比较直观,也具备较好的测量能力。比一般的示波器不会差。


二、使用调试工具自带的SWO功能做printf输出


我们在调试过程中往往需要做些printf输出,通常使用UART实现。顺便用下倒还好,不然得单独配置出UART,PC端需装应用软件和win驱动,还得辅以额外的硬件。


其实,我们很多时候可能通过SWO方式做输出就好,只要芯片和调试器支持。


SWO,serial wire output ,一种异步串行通信通道。目前基于Cortex M3,M4,M7内核芯片都支持。通过配置寄存器DBGMCU_CR里的TRACE_IOEN和TRACE_MODE来启用。当然用CUBEMX配置生成初始化代码就更简单了。像下面这样:


6.png


跟MDK有关的配置:


1、


7.png


2、进入调试状态,点击View/Serial Windows/Debug(printf)Viewer


8.png


3、用户代码里添加:


#include “stdio.h”


int fputc(int ch, FILE *f)


{


ITM_SendChar(ch);


    return (ch);


}


4、运行看结果:


9.png


收藏 评论0 发布时间:2020-1-6 16:05

举报

0个回答

所属标签

STM32团队

意法半导体微控制器和微处理器拥有广泛的产品线,包含低成本的8位单片机和基于ARM® Cortex®-M0、M0+、M3、M4、M33、M7及A7内核并具备丰富外设选择的32位微控制器及微处理器


最新内容

相似分享

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版