常用单片机调试方式有仿真器、串口、屏幕显示。

1、仿真器仿真

IAR、keil等集成开发环境配合仿真器调试程序很适合单片机

优点:可设置断点、实时查看内存等

缺点:要有仿真器

2、串口调试

相较于仿真器仿真,串口调试不需要仿真器,在某些没有或者不能使用仿真器的系统上更实用,通用性更强。

一般串口输出我们会使用重定向到串口的printf函数或者自定义的串口输出函数(比如:send_debug_msg(char* msg)),我们在程序中某处输出调试信息

#ifdef DEBUGsend_debug_msg("exec 002");
#endif

像这样每句输出前后都会带上 #ifdef #endif,看起来不是很简洁,我们换一种写法让他只占用一行。

#ifdef DEBUG
#define DEBUGF(fmt) send_debug_msg(fmt)
#else
#define DEBUGF(fmt)
#endifor#ifdef DEBUG
#define DEBUGF(fmt,args...) printf(fmt ,##args)
#else
#define DEBUGF(fmt,args...)
#endif

这样我们在写程序时可以直接写DEBUGF("exec 002");如果DEBUG被定义了这句话就会被替换为send_debug_msg("exec 002");正常输出。否则会被替换为空,用printf函数调试用法也类似。

DEBUGF("exec 002");等价于#ifdef DEBUGsend_debug_msg("exec 002");
#endif

3、屏幕显示

使用屏幕显示调试的信息,这种方式有较大限制,因为很多目标系统并不配有屏幕,不推荐使用

51/stm32单片机软件调试方法与技巧相关推荐

  1. JLINK在线调试——软件调试方法与技巧

    目录 JTAG/SWD调试原理 在实验中讲解调试方法 JTAG/SWD调试原理简析 调试 SWJ调试端口脚 灵活的SWJ-DP引脚分配 JTAG/SWD模式设置库函数 JTAG/SWD接口常见硬件图

  2. STM32工作笔记0049---JLINK在线调试__软件调试方法与技巧

    技术交流QQ群[JAVA,C++,Python,.NET,BigData,AI]:170933152 .

  3. 嵌入式开发<单片机软件调试>

    嵌入式开发<单片机软件调试> 前言 一.交互式调试设计依赖工具 二.交互式调试设计的使用方法 1.普通方法 2.定制方法 三.交互式调试产品设计 1, 全局需要使用的宏定义 2,设计一个功 ...

  4. linux下gdb调试方法和技巧详解

    linux下gdb调试方法和技巧整理 简介 UNIX或者UNIX-like下调试工具 启动gdb # 1. 在可执行程序不需要输入参数时,我们可以使用 gdb + 可执行程序 gdb ./typeid ...

  5. VC++调试方法和技巧

    VC++调试方法和技巧 便于调试的代码风格: 1.       不用全局变量: 2.       所有变量都要初始化,成员变量在构造函数中初始化: 3.       尽量使用const: 4.     ...

  6. 一种通信设备免现场软件调试方法

    一种通信设备免现场软件调试方法 CN 100488119 C 摘要 本发明提供了一种通信设备免现场软件调试的方法:由硬件安装工人在施工现场利用通信设备免现场调试工具,对通信设备进行数据配置工作,使得通 ...

  7. STM32单片机(三).STM32单片机的开发方法

    经过前两章节对STM32的简单介绍,在接下来的几个章节中开始进行STM32单片机的软件开发实践,所使用到的工具有Keil5.STM32CubeMX以及串口软件.对于STM32F1系列的单片机,其存储器 ...

  8. stm32 MDK debug调试方法

    MDK debug调试方法 使用仿真器进行在线调试 ⭐基础调试方法 调试环境的配置 调试界面介绍 执行操纵栏 断点 挂起 调试窗口介绍 call stack windows watch windows ...

  9. 5加载stm32 keil_快速入门STM32单片机-软件篇

    关于这个STM32的编程开发环境Keil,网上有太多相关的资源了,而且大都讲解的非常详细.所以本篇文章无意于深入细节,只会提供我学习时候的一些体会,帮助你更好的掌握相关知识. 1.标准外设库(Stan ...

  10. 【C语言】调试方法和技巧详解

    推荐一个软件,禅定空间,放下手机,珍惜时间,为未来搏一搏,为了未来美好的生活,冲鸭!!!! 文章目录 前言 1. 什么是调试 2. 调试步骤 2.1 发现错误 2.1.1 编译型错误 2.2.2 链接 ...

最新文章

  1. Java SE和Java EE应用的性能调优
  2. 《ASP.NET MVC 4框架揭秘》试读章节
  3. 在ASP.NET MVC使用JavaScriptResult
  4. [Vue warn]: You are using the runtime-only build of Vue where the template compiler is not available
  5. Navicat 10 for SQL Server - 绿色中文版
  6. Collecting Bugs POJ - 2096(基础概率dp+期望模板)
  7. HTML和CSS面试问题总结,html和css面试总结
  8. byteofpython中文gitbook_GitBook 简明教程
  9. 中介者模式php,php设计模式 Mediator (中介者模式)
  10. python和c 的区别-Python与C语言的区别
  11. DirectX修复工具V4.1公测!
  12. java 繁体转简体_如何用java将繁体字转为简体字
  13. 群晖系统ftp服务器,群晖对接云服务器ftp
  14. php红包互助源码_完整的微信红包接口API实现(php版)
  15. 手把手教你怎样用U盘装系统
  16. 高效的敏捷测试第八课 静态测试工具和生成测试报告
  17. web.xml学习随笔
  18. 如何在网页里插入3D模型并进行互动展示?
  19. Blender着色器节点教程 —— AO
  20. led灯串怎么摆造型_彩灯羊造型

热门文章

  1. css直角线_CSS秘密花园:折角效果
  2. dell 服务器启用虚拟化,打开DELL R410服务器BIOS虚拟化步骤(图文教程)
  3. struct template 函数 特化
  4. python 科研作图_Origin科研绘图
  5. 路由器修改html,徒手修改大麦路由器dw33d,变luci中文界面,并开启ssh
  6. MATLAB与STK互联39:动画控制、地面两个点的大圆距离计算
  7. 启动tomcat服务器,struts2报此错:org.apache.catalina.core.StandardContext.filterStart Exception starting filt
  8. 阿里云API调用 OCR python
  9. Android 获取经纬度处理
  10. Win7系统怎么开启远程桌面?Win7远程桌面怎么用