美文网首页嵌牛IT观察
C语言使用Printf实现串口打印,方便追踪调试程序

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

作者: 遇晓 | 来源:发表于2017-12-19 20:51 被阅读0次

    姓名:杨虎成

    学号:16020311003

    转载自:https://kuaibao.qq.com/s/20171208A0T9AV00?,有删节

    【嵌牛导读】:在学习单片机的过程中,学会使用仿真器,用仿真器设置断点、单步调试是一种非常快速和有效的查找问题的方法,但是手边没有仿真器、没有预留仿真接口,要查看变量的变化该怎么办?

    【嵌牛鼻子】:仿真器、Data_Send(pllmull)、Printf()、寄存器、keil

    【嵌牛提问】:怎样用C语言使用Printf实现串口打印?

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

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

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

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

    使用单片机同样可以使用printf()函数,下面来介绍使用方法。

    1. 添加头文件支持

    printf()函数位于“stdio.h”文件中,所以第一步就是要添加该头文件;

    2. 添加重定向函数

    需要添加的重定向函数如下:

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

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

    3. 配置串口寄存器

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

    4. keil的设置

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

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

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

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

    作者:大周公子

    链接:http://www.jianshu.com/p/5fa970b1dffd

    來源:简书

    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

    相关文章

      网友评论

        本文标题:C语言使用Printf实现串口打印,方便追踪调试程序

        本文链接:https://www.haomeiwen.com/subject/vcgiwxtx.html