[开发工具]

在C51单片机上使用printf函数

[复制链接]
449|37
手机看帖
扫描二维码
随时随地手机跟帖
hudi008|  楼主 | 2023-5-18 21:03 | 显示全部楼层 |阅读模式

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

void tst_printf (void) {
  char a = 1;
  int b  = 12365;
  long c = 0x7FFFFFFF;

  unsigned char x = 'A';
  unsigned int y  = 54321;
  unsigned long z = 0x4A6F6E00;

  float f = 10.0;
  float g = 22.95;

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

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



使用特权

评论回复
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函数

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

226

主题

9250

帖子

10

粉丝