微禾游戏 手游攻略 手游评测 《51单片机笔记》 keilC51软件中printf函数详解

《51单片机笔记》 keilC51软件中printf函数详解

时间:2024-12-10 11:09:16 来源:其他 浏览:0

格式字符串从左到右读取。遇到的第一个格式规范指的是fmtstr 之后的第一个参数,并使用格式规范进行转换和输出。第二个格式规范访问fmtstr 之后的第二个参数,依此类推。如果参数多于格式规范,则忽略多余的参数。如果格式规范没有足够的参数,或者参数类型与fmtstr 指定的类型不匹配,则结果是不可预测的。

格式规范有以下通用格式:

% [flags] [width] [. precision] [{b|B|l|L}] type 格式规范中的每个字段都可以是指定特定格式选项的单个字符或数字。

类型字段是一个字符,指定参数是否被解释为字符、字符串、数字或指针,如下表所示。

笔记:

可选字符l 或l 可以紧接在类型字符之前,分别指定d、i、u、o、x 和x 的长类型。

可选字符b 或b 可以紧接在类型字符之前,分别指定d、i、u、o、x 和x 的字符类型。

《51单片机笔记》 keilC51软件中printf函数详解

如果百分号后面的字符不被识别为格式规范,则它们将被视为普通字符。例如,“%%”将单个百分号写入输出流。

flags字段是用于对齐输出、打印+/-符号和空格、小数点、八进制和十六进制前缀的字符,如下表所示。

宽度字段是一个非负数,指定要打印的最小字符数。如果输出值中的字符数小于宽度,则会在左侧(默认情况下)或右侧(指定- 标志时)添加空格以填充到最小宽度。如果宽度前缀为“0”,则填充零而不是空格。宽度字段永远不会截断输出。如果输出值的长度超过指定的宽度,则输出所有字符。

宽度字段可以是星号(“*”),在这种情况下,参数列表中的int 参数提供宽度值。在星号前指定“b”表示参数是无符号字符。

精度字段是一个非负数,指定要打印的字符数、有效数字或小数位数。对于下表中指定的浮点数,精度字段可能会导致输出值被截断或舍入。

精度字段可以是星号(“*”),在这种情况下,参数列表中的int 参数提供值。在星号前指定“b”表示参数是无符号字符。

笔记

《51单片机笔记》 keilC51软件中printf函数详解

您必须确保参数类型与格式规范的类型匹配。您可以使用类型转换来确保将正确的类型传递给printf。

该函数是特定于实现的,基于__getkey 和putchar 函数的操作。标准库中提供的这些函数使用微控制器的串行端口读写字符。自定义函数可以使用其他I/O 设备。

由于8051 施加的内存限制,可以传递给该函数的字节总数受到限制。最多可以以小或紧凑形式传递15 个字节。在大型模型中最多可以传递40 个字节。

返回值

printf 函数返回实际写入输出流的字符数。

参考:Cx51 User's Guide(KEIL C51官方参考手册)

视频讲解及测试例子:

《51单片机笔记》 keilC51软件中printf函数详解

视频讲解:

1,https://www.ixigua.com/6921169441401078283

2,https://www.ixigua.com/6921169728379552260

程序:

/*1、串口初始化(设置波特率、设置串口工作模式、奇偶校验:96N81)9600 8 N 1(不能生成115200)2、必要时设置串口中断:使能串口中断和总中断3、可以printf函数(需要包含头文件stdio.h) 3、自己写函数发送和接收字符和字符串4、发送和接收后,软件需要清除串口中断标志位(RI,TI) TI=0* /#includereg51.h#includestdio.h//毫秒延时函数void delay_ms(unsigned int t){ unsigned int a=0,b=0; for(b=0;bt;b++) for(a=110;a0 ;a--);}void Uart_Init(void){TMOD |=0X20;//使用定时器1工作模式2TH1=TL1=0XFD; //设置波特率为9600 //时钟频率11.0592MSCON=0X50; //串口工作在模式1 REN=1 接收数据PCON=0; //SMOD=1:波特率这里加倍但没有加倍ES=1; //使能串口中断EA=1; //使能总中断TR1=1; //开启定时器1}int main(void){void tst_printf(void);char a='A';Uart_Init();TI=1; //RIwhile(1){printf('doubixiaohanhan %c\n', a++);//tst_printf();delay_ms(500);}return 0;}void tst_printf (void) { char a=1;整数b=12365;长c=0x7FFFFFFF;无符号字符x='A';无符号整型y=54321;无符号长z=0x4A6F6E00;浮动f=10.0;浮点g=22.95; char buf[]='测试字符串';字符*p=buf; printf('char %bd int %d long %ld\n',a,b,c); printf('char %c 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 ('字符串%s 位于地址%p\n',buf,p); printf('%f!=%g\n',f,g); printf('%*f !=%*g\n', (int)8, f, (int)8, g);} 效果:

用户评论

逃避

我经常使用keilC51进行嵌入式编程,当看到有关51系列单片机的notes和printfunc解析时,感觉受益匪浅。

    有14位网友表示赞同!

风中摇曳着长发

这篇关于Keil C51里的printf函数的文章非常详细,帮我在面对问题时找到了解决问题的关键。

    有15位网友表示赞同!

娇眉恨

"51单片机笔记"里对于KeilC51中那段难以理解的content提供了一个清晰的说明。

    有17位网友表示赞同!

孤城暮雨

在这篇教程里,关于如何使用keil环境下的printf函数来与外部设备进行数据交换的部分写得很棒!

    有7位网友表示赞同!

半世晨晓。

作为一个业余爱好者,我一直想深入学*如何在单片机上实现串口通信,这篇解析刚好满足了我的需求。

    有17位网友表示赞同!

走过海棠暮

阅读过《51单片机笔记》中关于KeilC51里的printf函数那一部分,感觉对于初学者友好度非常高。

    有17位网友表示赞同!

顶个蘑菇闯天下i

"keilC51软件中的print详细解析",特别是对于如何优化打印效率这部分,给了我很多启示。

    有6位网友表示赞同!

米兰

我一直尝试在嵌入式项目中融入更多高级功能,这篇文章让我对使用printf进行数据反馈有了更深入的理解。

    有16位网友表示赞同!

聽風

想要提升自己的编程技巧和理论知识,“keilC51软件下51单片机的print”文章是不可多得的好资料。

    有12位网友表示赞同!

烟花巷陌

"51单片机笔记"里的实例部分很实用,尤其是对于像我这样初学者来说,实践代码分析帮助很大。

    有11位网友表示赞同!

哽咽

在keilC51开发过程中遇到打印问题时,我会参考这篇关于printf函数的详细解析来解决技术难点。

    有19位网友表示赞同!

(り。薆情海

了解了这篇《51单片机笔记》中关于keilC51中的printf函数之后,我感觉自己对单片机编程的信心又多了几分。

    有8位网友表示赞同!

水波映月

"51单片机笔记"里有关于keilC51的printf函数的部分非常实用,在实际项目调试中提供了帮助。

    有6位网友表示赞同!

封锁感觉

这篇解析为我打开了一个新世界的大门,让我能够在Keil C51环境下自如地操作并使用printf函数进行调试和开发。

    有11位网友表示赞同!

一尾流莺

"51单片机笔记"里的内容非常适合初级开发者,特别是在keilC51下的print函数部分。

    有17位网友表示赞同!

陌颜

对于一位嵌入式程序员来说,《51单片机笔记》中的keilC51里printf函数详解是必不可少的学*资源。

    有19位网友表示赞同!

话少情在

我用了很长时间才理解如何在单片机项目中使用printf函数,"51单片机笔记"中关于它的解释真的很有帮助。

    有13位网友表示赞同!

掉眼泪

"keilC51软件中的print"一文中的一些建议和提示使我在处理单片机编程问题时更得心应手。

    有17位网友表示赞同!

标题:《51单片机笔记》 keilC51软件中printf函数详解
链接:https://www.52funs.com/news/sypc/29215.html
版权:文章转载自网络,如有侵权,请联系删除!
资讯推荐
更多
《向僵尸开炮》那些质变技能的前置词条具体内容详解!有最新礼包码!

估计大部分宝子们和小猪一样,在局内选择词条的时候,只看词条的具体内容不看词条的名称,那么本期就给宝子们整理

2024-12-10
DNF手游:第二套天空套来袭!动图展示!这里面有你喜欢的吗?

截止到目前韩服dnf手游一共上线了4套天空套 而国服目前仅上线了第一套”冥域天空“ 按照韩服的时间线,国服的

2024-12-10
人与动人物xxxx在线视频,人与动物:共生的世界

人与动物:共生的世界 在我们的生活中,有许多时候我们会被动物所吸引,无论是它们的可爱、勇敢还是聪明。我们

2024-12-10
黑神话悟空抢先版:吉吉国王成天命人?到底是怎么回事?

黑神话悟空竟然有抢先版?不仅有!而且作者还在不断更新,但是游戏和黑神话有什么关联呢?真正进游戏一探究竟的玩家

2024-12-10