51单片机使用sprintf和printf

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


sprintf

srpintf()函数的功能非常强大:效率比一些字符串操作函数要高;而且更具灵活性;可以将想要的结果输出到指定的字符串中,也可作为缓冲区,而printf只能输出到命令行上~
头文件:stdio.h
函数功能:格式化字符串,将格式化的数据写入字符串中。
函数原型:int sprintf(char *buffer, const char *format, [argument]…)
函数返回值:buffer指向的字符串的长度;

在51单片机中使用sprintf

sprintf(BUFF_HC,"Soke:%d,Someone ",(int)Value);

注意:这里一定要强转为int类型
原因:可能是8位的系统和32位的系统存储方式不一样,对其方式也不一样

printf

printf() 是 C 语言标准库函数,用于将格式化后的字符串输出到标准输出。标准输出,即标准输出文件,对应终端的屏幕。printf() 申明于头文件 stdio.h。

在51单片机中使用printf作为串口输出

查看了keil的帮助文件里面的printf函数说明,原来printf函数最终是调用putchar函数来实现打印输出字符的。

 //UART1 发送串口数据
 void UART1_SendData(char dat)
 {
    
    
     ES=0;           //关串口中断
     SBUF=dat;           
     while(TI!=1);   //等待发送成功
     TI=0;           //清除发送中断标志
     ES=1;           //开串口中断
 }
 
 //UART1 发送字符串
 void UART1_SendString(char *s)
 {
    
    
     while(*s)//检测字符串结束符
     {
    
    
         UART1_SendData(*s++);//发送当前字符
     }
 }
 
 //重写putchar函数
 char putchar(char c)
 {
    
    
     UART1_SendData(c);
     return c;
 }

注:一定要关闭串口中断

猜你喜欢

转载自blog.csdn.net/mayuxin1314/article/details/125156485