找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1991|回复: 5
打印 上一主题 下一主题
收起左侧

单片机串口打印输出printf函数的参数数目是否有限制?

[复制链接]
跳转到指定楼层
楼主
诸位我使用单片机的串口打印来查看数据,代码如下:

printf("ExposureL 0x%X LowSum 0x%08lX MidSum 0x%08lX HighSum 0x%08lX\n",ExposureL,LowSum,MidSum,HighSum);                        
printf("HighSum 0x%08lX\n",HighSum);
printf("0x000003e4 0x%08lX \n",isp_read_reg(0x000003e4));


其中ExposureL,是16位无符号数。LowSum,MidSum,HighSum 都是无符号32位整数使用0x%08lX输出。现在的问题是,LowSum,MidSum这两个数据打印结果正确。但是,HighSum始终不对。
一开始以为,是本来 HighSum 数据的读取就没有正确,所以,在下面代码中,独立打印数据 HighSum,结果反而对了。

这是打印结果,红框1那里的打印结果不对,但是红框2那里独立打印变量 HighSum  又反而对了。


所以,想知道一点:是否在单片机的printf打印输出时候,存在一个对打印参数的个数限制?例如最多打印三个,不然就错了?

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:94031 发表于 2021-6-19 19:56 | 只看该作者
和缓冲区的大小有关吧。
回复

使用道具 举报

板凳
ID:123289 发表于 2021-6-21 14:00 | 只看该作者
你的printf函数是哪里来的,就查哪里的手册,看看手册上是如何说的。
回复

使用道具 举报

地板
ID:857680 发表于 2021-6-25 22:37 | 只看该作者
yzwzfyz 发表于 2021-6-21 14:00
你的printf函数是哪里来的,就查哪里的手册,看看手册上是如何说的。

接收的项目上面的printf函数
回复

使用道具 举报

5#
ID:857680 发表于 2021-6-25 22:42 | 只看该作者
xuyaqi 发表于 2021-6-19 19:56
和缓冲区的大小有关吧。

缓冲区大小怎么查看啊?还是固定的?
回复

使用道具 举报

6#
ID:390416 发表于 2021-7-6 20:28 | 只看该作者

串口1打印程序 可以打印3个十六位的变量 波特率9600 http://www.51hei.com/bbs/dpj-201660-1.html
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表