C语言使用Printf()实现串口打印,方便追踪调试程序

在学习单片机的过程中,学会使用仿真器,用仿真器设置断点、单步调试是一种非常快速和有效的查找问题的方法,但是手边没有仿真器、没有预留仿真接口,要查看变量的变化该怎么办?这时候也是有办法的,通常的做法,把串口引出来,把串口寄存器配置好,通过RS232或者RS485来查看变量的状态和程序的运行方法,这时候只需要将数据发送函数添加到需要查看变量的下发即可,程序执行数据发送函数就可以将变量的值发送到调试助手中,供我们查看。如下所示,就可以通过Data_Send(pllmull)来查看pllmull的值。

除此之外,还有一种非常简便的方法,就是使用Printf()函数,这个函数我们都不陌生。在C语言的第一堂课,我们都学过“Hello world”这个程序,这个程序就是通过Printf()函数来实现的。再来怀旧一下:

使用单片机同样可以使用printf()函数,下面来介绍使用方法。
1. 添加头文件支持
printf()函数位于“stdio.h”文件中,所以第一步就是要添加该头文件;
2. 添加重定向函数
需要添加的重定向函数如下:

重定向函数写法固定,但是根据单片机不同、串口号不同,需要修改,以上函数使用的是片上资源USART1。之所以需要重定向是因为printf()是格式化输出函数,可以按规定格式向标准设备输出打印信息,但是单片机并不是一个标准的输出设备,所以在使用的时候需要借助重定向,将printf()重定向至UART中。所以上面代码的作用就是将重定向指向UART。

3. 配置串口寄存器
这一步就是配置串口通信的参数,所涉及的参数如波特率、数据长度、停止位、校验位等,这一块就是纯单片机的配置方式,大家可以参考下面这篇文章:

STM32单片机串口通信波特率计算方法(点击查看)

4. keil的设置

最后一步,需要对keil做一下设置,

在Target标签中,勾选USE MicroLIB选项.

通过以上三部就可以实现单片机的串口打印了。效果如下:

(0)

相关推荐

  • 干货|单片机的指针怎么学?

    干货福利,第一时间送达! 摘要:大家想过没有我们用keil写单片机的代码,你的函数啊.变量啊最终都放在了哪里?我们一直说的内存五区,到底是哪五区?到底放在芯片的哪个地方呢?还有为什么你学完C语言指针和 ...

  • 短小精悍,最全介绍,C语言输入输出printf、scanf

    https://m.toutiao.com/is/e62BYXh/ 基本输入输出 若需要使用输入输出函数,则需要包含<stdio.h>头文件. 输出 printf printf是最常用的输 ...

  • 替代串口打印,快来围观嵌入式中另一种打印调试的方法

    一.前言 在我们的嵌入式开发中,常常把printf重定向到MCU的串口外设,再配合上位机界面软件,通过打印调试信息的方式来调试我们的嵌入式软件. 此处,我们介绍另一种打印调试的方法--SEGGER 的 ...

  • 串口打印知多少?

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

  • 一文了解串口打印

    之前的文章<STM32 串口详解>介绍了串口驱动,串口在嵌入式领域不仅是一个通讯接口,还是一种调试工具,其好用程度不亚于硬件仿真.有些环境不方便连接Jlink进行硬件仿真,或者并不是必现的 ...

  • pyserial串口实现人脸追踪

    pyserial串口实现人脸追踪

  • C语言printf() 详解之终极无惑

    来源:CSDN - 恋猫大鲤鱼 编译环境:Linux 环境以 g++ 4.4.6 编译成 64 位程序 1.printf() 简介 printf() 是 C 语言标准库函数,用于将格式化后的字符串输出 ...

  • C语言学习之printf()函数特别注意事项

    https://m.toutiao.com/is/eLAopLB/ 做为C语言程序的输出函数printf()在使用时除了其正常的使用之外,还有特别要注意的地方: 1.在函数里面,基本上只有三种字符,一 ...

  • C语言打印乘法口诀

    #include <stdio.h> #include <stdlib.h> /* run this program using the console pauser or a ...

  • 2021高考语文 · 诗词语言鉴赏三大题型分析及答题模板(打印版)

    高考语文诗词语言鉴赏三大题型分析 答题模板 诗歌是语言的艺术.鉴赏诗歌的语言,就是要了解诗歌语言的特点,并在此基础上调动想象.联想.比较等多种方法,领悟诗歌语言的精妙.对诗歌语言的鉴赏主要有两个维度: ...