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

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

[复制链接]
STMCU小助手 发布时间:2021-1-28 10:18
两个STM32开发中基于MDK IDE的调试输出技巧

我们在STM32开发调试过程中,常常需要做些直观的输出,如果手头没有相关的设备或仪器,我们可以使用 IDE自带的工具。这里分享两个基于MDK  IDE的调试输出技巧。

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

比方我们需要查看STM32定时器的PWM输出,手头又没有示波器或逻辑分析仪, 尤其学生族。我们可以用MDK自带的逻辑分析仪来察看结果。
假设基于某一款STM32F4芯片,输出一个脉宽为100us,占空比为40%的波形。使用TIM3的通道1输出PWM波形,用到GPIOA_6,即PA6.
STM32定时器的参数配置我这里就省略了。我开启定时器的比较中断和更新中断,在中断里将PA口的IDR值读到一个全局变量TIM3_CH1_OUT里。

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

1、
4.1.jpg

2、
4.2.jpg

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

4、运行看结果:
4.4.jpg
4.5.jpg

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

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

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

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

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

跟MDK有关的配置:

1、
4.7.jpg

2、进入调试状态,点击View/SerialWindows/Debug(printf)Viewer
4.8.jpg

3、用户代码里添加:
  1. #include “stdio.h”

  2. int fputc(int ch, FILE *f)

  3. {

  4. ITM_SendChar(ch);

  5.     return (ch);

  6. }
复制代码

4、运行看结果:
4.9.png

OK,分享上面两个比较实用的调试输出技巧,希望对您有帮助。

文章出处: 茶话MCU

收藏 评论1 发布时间:2021-1-28 10:18

举报

1个回答
goyhuan 回答时间:2021-1-28 11:18:28
实用  

所属标签

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