我们在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、运行看结果:

来源

【转】分享两个基于MDK IDE的调试输出技巧的更多相关文章

  1. [工具开发] 分享两个基于Heapster 和 Influxdb 的 Grafana 监控仪表盘模板

    Info Collector: Heapster - /heapster- --metric-resolution=30s- --sink=influxdb:http://influxdb.defau ...

  2. 分享两个实用的shell脚本

    各位,早上好啊~ 发现许久没有分享过技术文章了,今天分享两个部署项目时候比较实用的shell脚本 一键部署shell脚本 由于个人部署,会习惯把jar放到lib目录下面,如果你没有这个习惯,可以适当做 ...

  3. 分享两个你可能不知道的Java小秘密

    引言 最近LZ的工作发生了重大变化,以后博文的更新速度可能会再度回温,希望猿友们可以继续关注. 近期LZ辞掉了项目经理的工作,不过并未离开公司,是转到了基础研发部做更基础的研发,为广大技术人员服务.这 ...

  4. 优分享VR开源啦,优分享VR是基于Google VR开发的一款手机VR视频资源的聚合软件

    欢迎来到优分享VR开源项目 优分享VR 开源中国Git地址: http://git.oschina.net/xumingwang/youkes_vr 优分享VR是 优分享安卓APP VR视频播放开源部 ...

  5. 基于MDK的ARM-GCC开发环境建立及新唐M0的HID类设备的C++开发

    一,下载安装测试arm-none-eabi-gcc编译工具链 1,查看arm-none-eabi-gcc编译工具版本        打开网页:https://sourcery.mentor.com/G ...

  6. 基于Eclipse IDE的Ardupilot飞控源码阅读环境搭建

    基于Eclipse IDE的Ardupilot飞控源码阅读环境搭建 作者:Awesome 日期:2017-10-21 需准备的软件工具 Ardupilot飞控源码 PX4 toolchain JAVA ...

  7. 分享两个提高效率的AndroidStudio小技巧

    这次分享两个 Android Studio 的小技巧,能够有效提高效率和减少犯错,尤其是在团队协作开发中. Getter 模板修改--自动处理 null 判断 格式化代码自动整理方法位置--广度 or ...

  8. DCOS实践分享(3):基于Mesos 和 Docker 企业级移动应用实践分享

    2016年1月24日 8:00—19:00 北京万豪酒店(东城区建国门南大街7号) @Container大会是由国内容器社区DockOne组织的专为一线开发者和运维工程师设计的顶级容器技术会议,会议强 ...

  9. DCOS实践分享(2):基于Docker Compose和Swarm的Docker化之路

    2016 年1 月 23 日,北京史上气温最低的一天. 在下午 1 点半的时候,由 DaoCloud 赞助的 2016 年度首次 Docker Meetup 准时开始. 在这次Meetup中,我分享了 ...

随机推荐

  1. rest-framework解析器,url控制,分页,响应器,渲染器,版本控制

    解析器 1.json解析器 发一个json格式的post请求.后台打印: request_data---> {'title': '北京折叠'} request.POST---> <Q ...

  2. Python3练习题 006 冒泡排序

    import random a = [random.randint(1,100) for i in range(10)]def bu(target): length = len(target) whi ...

  3. 查找文献的BibTex

    BibTex可以通过Google Scholar来查找. 注意,默认情况下,Google scholar 关闭了显示BibTex链接. 打开Google Scholar 选择右上角菜单按钮 选择set ...

  4. 20181114教学sql

    --精确查找:查询水表编号为30408的业主记录 ' --模糊查询:查询业主名称包含'刘'的业主记录 SELECT * FROM T_OWNERS WHERE NAME LIKE '%刘%' --AN ...

  5. git遇到的问题 .Git: There is no tracking information for the current branch.

    1.Git: There is no tracking information for the current branch. 在执行git pull的时候,提示当前branch没有跟踪信息: git ...

  6. 报错:ch.qos.logback.core.joran.spi.JoranException

    项目中使用了maven. 1.找到本地仓库,删除ch文件夹 2.对项目执行maven install 3.在更新下项目maven update

  7. python之路--递归, 二分法

    一 . 递归 自己调用自己, 递归的入口(参数)  和  出口(return),  树形结构的遍历. def func(): print("我是递归") func() func() ...

  8. MySQL磁盘写入策略以及数据安全性的相关参数

     转载自:http://blog.itpub.net/22664653/viewspace-1063134/   innodb_flush_log_at_trx_commit和sync_binlog ...

  9. 关于IWMS中遇到的问题及解决方法

    1.生成的文章上传到外网上,但是没一会儿又变成原来的样子? 解决方案:把上传页面对应的template中的.aspx页面也要上传到外网去.

  10. PHP爬虫框架Beanbun使用

    第一 下载安装Beanbun框架 例如: mkdir -p BeanbunTest composer require kiddyu/beanbun 如图所示: 第二 简单下载网页的例子 <?ph ...