8.0 标准库printf函数实现

本文介绍了如何在MSP430单片机上利用标准库实现printf函数,该函数作为程序调试助手,能按照用户指定格式将数据输出到屏幕上,便于程序调试和信息展示。
摘要由CSDN通过智能技术生成

实例6---程序调试助手printf-----程序目的:如何利用标准库实现printf函数

printf函数称为格式输出函数,其关键字最末一个字母f即为“格式”(format)之意。其功能是按用户指定的格式,把指定的数据显示到显示器屏幕上。

printf函数是一个标准库函数,它的函数原型在头文件“stdio.h”中,printf函数调用的一般形式为:
printf(“格式控制字符串”, 输出表列)
其中格式控制字符串用于指定输出格式。格式控制串可由格式字符串和非格式字符串两种组成。格式字符串是以%开头的字符串,在%后面跟有各种格式字符,以说明输出数据的类型、形式、长度、小数位数等。如:
%d 十进制有符号整数
%u 十进制无符号整数
%f 浮点数
%s 字符串
%c 单个字符
%p 指针的值
%e 指数形式的浮点数
%x或者%X 无符号以十六进制表示的整数,小写则输出小写,大写则输出大写
%o 无符号以八进制表示的整数
%g 自动选择合适的表示法
%p 输出地址符
如果这个是在VC环境下,printf就可以直接使用。那在MSP430的平台下如何实现,下面我们就来编写程序,首先确定的就是printf我们调用的是IAR环境下的标准库函数,那么我们只要写个底层就可以了,也是就我们写个putchar函数即可,不了解putchar函数的同学自己问下度娘,putchar函数如下:

//向终端输出一个字符
int putchar(int c)
{
        if(c == '\n') 
        { 
                  UCA0TXBUF = '\r';
                  while(!(IFG2 & UCA0TXIFG));
        }
        UCA0TXBUF = c;
        while(!(IFG2 & UCA0TXIFG));
        
        return c;
}
注意形式参数与函数类型都是int型,不要更改这个数据类型,否则不兼容。这个我们可以看下printf的声明
__EFF_NW1    __PRINTFPR __ATTRIBUTES  int  printf(const char *_Restrict, ...);
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值