[开发工具] 在C51单片机上使用printf函数

[复制链接]
 楼主| hudi008 发表于 2023-5-18 21:03 | 显示全部楼层 |阅读模式

在Keil C51中这里的b表示byte,即1个字符,%bd就是输出一个byte宽度的整型数(char)。
  1. #include <stdio.h>

  2. void tst_printf (void) {
  3.   char a = 1;
  4.   int b  = 12365;
  5.   long c = 0x7FFFFFFF;

  6.   unsigned char x = 'A';
  7.   unsigned int y  = 54321;
  8.   unsigned long z = 0x4A6F6E00;

  9.   float f = 10.0;
  10.   float g = 22.95;

  11.   char buf [] = "Test String";//不定长数组
  12.   char *p = buf;

  13.   printf ("char %bd int %d long %ld\n",a,b,c);
  14.   printf ("Uchar %bu Uint %u Ulong %lu\n",x,y,z);
  15.   printf ("xchar %bx xint %x xlong %lx\n",x,y,z);
  16.   printf ("String %s is at address %p\n",buf,p);
  17.   printf ("%f != %g\n", f, g);
  18.   printf ("%*f != %*g\n", (int)8, f, (int)8, g);
  19. }



tpgf 发表于 2023-6-3 14:00 | 显示全部楼层
那么这种整型数据是带符号的还是无符号的呢
qcliu 发表于 2023-6-3 14:43 | 显示全部楼层
这种表示方法是通用的吗 还是只适用于51单片机呢
drer 发表于 2023-6-3 15:18 | 显示全部楼层
输出一个byte宽度的无符号整型数,(unsigned char)。
coshi 发表于 2023-6-3 15:31 | 显示全部楼层
%d整型输出,%ld长整型输出,
%o以八进制数形式输出整数,
%x以十六进制数形式输出整数,
%u以十进制数输出unsigned型数据(无符号数)。
%c用来输出一个字符,
%s用来输出一个字符串,
%f用来输出实数,以小数形式输出
%.4f用来输出实数,保留小数点4位。
%e以指数形式输出实数,
%g根据大小自动选f格式或e格式,且不输出无意义的零。
kxsi 发表于 2023-6-3 16:10 | 显示全部楼层
一个单字节变量时要使用%bd
1.b八位
2.h十六位
3.l三十二位
%d        两个字节变量        int
%bd        单字节变量        char
%ld        四字节变量        long int
wiba 发表于 2023-6-3 16:28 | 显示全部楼层
bit、sbit、sfr和sfr16数据类型在ANSI c中没有提供,它们在Cx51编译器中是唯一的
jtracy3 发表于 2023-7-5 12:08 | 显示全部楼层
scanf()和printf()是做什么的?
elsaflower 发表于 2023-7-5 12:40 | 显示全部楼层
实现putchar函数将字符发送到串口,实现getchar函数从串口接收字符。
zerorobert 发表于 2023-7-5 13:25 | 显示全部楼层
需要借助外部设备串口来实现printf函数的功能。
phoenixwhite 发表于 2023-7-5 14:10 | 显示全部楼层
在实际的应用中,还需要根据实际情况设置波特率、端口等参数。
sdlls 发表于 2023-7-5 14:16 | 显示全部楼层
在C中,标准输入输出函数(printf, scanf等)的实现依赖于低层的IO函数
ingramward 发表于 2023-7-5 14:36 | 显示全部楼层
使用printf函数会消耗较多的程序代码空间和运行时间
rosemoore 发表于 2023-7-5 15:40 | 显示全部楼层
51单片机用printf()函数输出数字到串口
linfelix 发表于 2023-7-5 16:38 | 显示全部楼层
对于资源受限的C51单片机,建议谨慎使用printf函数
iyoum 发表于 2023-7-5 20:38 | 显示全部楼层
使用标准输入输出函数在单片机上可能会带来一定的性能和资源开销。
chenjun89 发表于 2023-7-11 08:44 来自手机 | 显示全部楼层
重定义printf函数,重写putchar函数
yeates333 发表于 2023-9-7 13:39 | 显示全部楼层
在C51单片机上使用printf函数需要借助C语言标准库中的stdio.h头文件。
1988020566 发表于 2023-9-7 14:00 | 显示全部楼层
在程序中使用相应的控制指令,可以将调试信息直接显示在LED灯或LCD屏幕上。
primojones 发表于 2023-9-7 14:23 | 显示全部楼层
C51单片机并不直接支持标准的printf函数
您需要登录后才可以回帖 登录 | 注册

本版积分规则

251

主题

9860

帖子

11

粉丝
快速回复 在线客服 返回列表 返回顶部

251

主题

9860

帖子

11

粉丝
快速回复 在线客服 返回列表 返回顶部