转载请注明出处
个人看法,仅供分享

单片机调试手段:

1、在线调试

部分芯片支持该功能,典型的有STM32系列的SWD接口,沁恒的CH32V和CH32F系列、CH56X部分RISC-V的两线调试。

2、串口打印

串口打印功能应该是个单片机都能够支持,在51上是特别常用的手段,STM32上根据使用者习惯可能用在线调试功能会多一点。


实现原理:

1、在线调试

芯片本身具备的一个硬件功能,需要在芯片设计阶段就做进去,并且因为硬件实现的功能,实际使用可能需要特定芯片才能支持,同时需要配套特定的外部工具才能实现,可以实现程序的单步运行、程序任意处的断点,做到变量的监控。

2、串口打印

由软件实现,默认是借助芯片硬件串口输出printf函数的内容,printf函数通过标准C库实现,能够实现字符、变量的格式化输出。当然也可以魔改底层printf回调的输出功能函数,实现任意接口、IO的输出、状态响应。

这个部分可以参考:51单片机标准串口使用教程及常见问题: 点这里


个人分享:

串口打印功能的价值:入门单片机的时候用的STC8051,工作初期包括入坑深了之后,调试单片机代码一直使用的是串口打印。接触到的代码模板,逐步养成的编程思维、编程习惯都适应了串口打印方式。

一直没有用在线调试,主要考虑到调试的一些接口通讯时,实质上是不允许单步和断点的,往往接口停下来的结果就是断连,比如USB口、网口、BLE。这些接口,一是不允许停,二是这些接口通常都有完善的底层,出问题多半是协议层,应用层逻辑的问题,是在通讯过程中产生的错误,CPU停了,通讯断了,也就没问题了。三是大型的、复杂的接口,一般都是函数库形式,即使调试,也看到不什么。

串口打印功能其实是挺方便的,硬件设计的时候预留个插针,最少两根线也能观察芯片的运行状况了(TXD、GND)。用于输出的串口的波特率调高一点,对于程序运行的影响其实也不大,同时底层实现是占用CPU的,也不会影响芯片响应中断。可以在代码任意地方输出变量,CV一下就能增加一个状态输出,也挺快。同时配合一些电脑上的串口接收助手,单片机做好格式输出,能够直接将数据保存CSV,导入excel能够绘制线图,十分方便,在评估ADC性能的时候经常用这个方式,ADC采样正弦波,串口输出,excel绘图,和信号发生仪的正弦波函数做对比,轻轻松松看出误差。可能在线调试也能做到(没有深入用过),但是要是换了一个单片机、开发环境、调试器,到时候实现类似操作又要从头开始。串口打印的通用性是最好的!同时串口还能用来监控实际产品的运行状态,类似留给产品调试人员的后门,串口的通用性,带来的是产品整个生命周期的调试方便。

使用单片机的串口打印功能相关推荐

  1. 51单片机通过串口打印调试信息

    1.实验目的 有时候单片机程序运行的时候我们不知道当前程序行某个变量的数据是多少,我们想像学习C语言的时候,打印出来信息,比如变量的值等等.这里就是起到这个调试作用.但是,要注意变量范围.是全局变量, ...

  2. 关于合泰单片机HT66f2390串口多功能中断的使用

    这篇博客是我第一次使用合泰8位单片机遇到的困难的记录,之前对51,32单片机中断的认识只停留在一个中断对应一个中断函数,但合泰单片机使用了多个中断共用一个中断函数,这种类型的中断统称为多功能中断,包括 ...

  3. STM32软件学习笔记(一)基于HAL库的STM32F429单片机串口打印程序

    |版权声明:本文为博主原创文章,转载请注明出处.https://blog.csdn.net/NeverImagine_/article/details/95517664   目前ST官方有提供两种库文 ...

  4. 串口 单片机 文件_STM32物联网实战项目 HAL裸机开发09 串口打印

    就喜欢你关注我- HAL裸机开发09 - 串口打印 综合信息1.获取开发工具    微信公众号后台发送消息  -  工具2.获取开发板       淘宝搜索店铺  -  硬件家园3.快速了解平台    ...

  5. STM32HAL库-实现USB虚拟串口打印(printf功能)

    目录 概述 一.使用方法 二.STM32CubeMx配置 三.Examples 四.运行结果 五.总结 概述 本篇文章介绍如何使用STM32HAL库,来实现USB虚拟串口打印功能,代替传统中的串口打印 ...

  6. CH552 CH554 51单片机标准串口使用教程及常见问题

    转载著名出处. 一.目标: 在使用CH552串口的过程中遇到了一些问题,分享一下心得.CH552芯片带有两路UART:UART0和UART1.这两个串口都是标准51类型的串口,网上有一大堆相关的教程, ...

  7. STM32 KEIL 串口打印printf使用详解

    常规打印方法 在STM32的应用中,我们常常对printf进行重定向的方式来把打印信息printf到我们的串口助手. 在MDK环境中,我们常常使用MicroLIB+fputc的方式实现串口打印功能,即 ...

  8. stm32f103zet6开发板的串口打印实现

    基于我的上一篇文章配置完led灯后,在此基础上添加串口打印功能,不涉及硬件方面的操作 回到CubeMX,查看原理图,选择串口1 在CubeMX选择USART1 选择模式为异步模式, 波特率,字长等其它 ...

  9. 51单片机 DHT11温湿度传感器LCD显示+串口打印显示

    第一部分:DHT11详解: DHT11是一款有已校准数字信号输出的温湿度传感器. 精度湿度±5%RH, 温度±2℃,量程湿度20-90%RH, 温度0~50℃. **一.电路连接分析 1.引脚图** ...

最新文章

  1. 第十一届全国大学生智能汽车竞赛获奖名单
  2. python【力扣LeetCode算法题库】面试题62- 圆圈中最后剩下的数字(约瑟夫环)
  3. 最新黑链代码expression:隐藏链接代码
  4. adb connect 出现timeout的处理方式
  5. 1494: 连续子串和续
  6. 基于mondrian的多维分析系统
  7. Battery historian安装及使用
  8. PHP秒杀截流原理,流量新大陆:巧借PC、移动端评论截流,让精准流量“爆起来”...
  9. 2021年三月中旬推荐阅读文章
  10. 2021,新手初学写作的几个温馨建议
  11. 韩国韩亚航空数万份乘客身份信息被泄露
  12. 循环爬取图片_Python爬虫爬取小姐姐照片!
  13. 在 Mac OS X 下启用超级帐户(root)
  14. FisherYates费雪耶兹随机置乱算法
  15. 学生党蓝牙耳机避雷指南,五款比漫步者还实惠的蓝牙耳机推荐
  16. VS用c#创建记事本
  17. 计算机文件夹无法排序,win7系统怎么无法排序磁盘文件夹?手动排序方法
  18. android视频录制旋转,android – 录制的视频在上传到互联网后旋转90度
  19. 第九天:操作符详解(一)与扫雷游戏
  20. 用 js 开启本地服务器,实现短信发送

热门文章

  1. 菱形问号乱码怎么解决
  2. 如何下载到纯净的Google Chrome或者Chromium浏览器
  3. 数据挖掘——航空公司客户价值分析(代码完整)
  4. 【前端UI框架推荐】六个前端[web端]精致UI框架
  5. MYSQL DATA_FORMAT函数
  6. SONY VISCA协议及其简单认识
  7. 抛弃WinSCPnbsp;教你使用CuteFTP传输文件
  8. Couchbase Client Java
  9. 【小5聊】jQuery基础之获取指定时间月份的最后一天
  10. android-x86编译