STC单片机不同数据类型串口打印输出示例程序
Posted perseverance52
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了STC单片机不同数据类型串口打印输出示例程序相关的知识,希望对你有一定的参考价值。
STC单片机不同数据类型串口打印输出示例程序
- 串口监视器打印
程序代码
#include "STC15W4K.H"
#include <stdio.h> // 为使用KEIL自带的库函数printf而加入
void printf_char_int_long(void)
char a=-100;
int b=-2000;
long c=6553600;
printf ("char %bd int %d long %ld\\n",a,b,c); // 10进制输出
// 输出带符号10进制整数(正数不输出符号)
// 实际输出:char -100 int -2000 long 6553600
printf ("char_0x%bx int_0x%x long_0x%lx\\n",a,b,c); // 16进制输出
// 输出无符号16进制整数,x表示按小写输出,X表示按大写输出
// 实际输出:char_0x9c int_0xf830 long_0x640000
printf ("a_int %d\\n",(int)(a)); // 不用宽度标识符
// 实际输出:a_int -100
printf ("char %bd,int %d,long %ld\\n",a,b,c); // %bd后也可以有其它普通字符
// 输出带符号10进制整数(正数不输出符号)
// 实际输出:char -100,int -2000,long 6553600
void printf_float(void)
float a= 3.14159265798932;
float f = 10.0,g = 22.95;
printf("Max is %f\\n",a); // Max is 3.141593, 默认小数点后6位
printf("%.4f\\n",a); // 3.1416
printf("%.12f\\n",a); // 3.140593000000
//%.4f 表示按小数点后4 位数据输出,%.12f表示按小数点后12位数据输出
printf ("%f , %g\\n", f, g); //输出:10.000000 , 22.95
void printf_String(void)
char buf [] = "Test String";
char *p = buf;
printf ("String %s is at address %p\\n",buf,p);
//输出:String Test String is at address i:0022
void UART_init(void)
//下面代码设置定时器1
TMOD = 0x20; // 0010 0000 定时器1工作于方式2(8位自动重装方式)
TH1 = 0xFD; // 波特率:9600 /11.0592MHZ
TL1 = 0xFD; // 波特率:9600 /11.0592MHZ
TR1 = 1;
//下面代码设置定串口
AUXR = 0x00; // 很关键,使用定时器1作为波特率发生器,S1ST2=0
SCON = 0x50; // 0101 0000 SM0.SM1=01(最普遍的8位通信),REN=1(允许接受)
TI=1; // 很关键,使用printf函数时必须有此命令
void main()
UART_init(); // 初始化串口
printf_char_int_long();
printf_float() ;
printf_String() ;
while(1) ; // 停在这里
以上是关于STC单片机不同数据类型串口打印输出示例程序的主要内容,如果未能解决你的问题,请参考以下文章
STC单片机通过ADC外部输入调节PWM占空比输出并串口打印当前脉冲值
STC单片机STC15单片机读取MPU6050模块数据并串口输出