51单片机,在keil中调试,调用printf函数,有关于输出的数据格式的问题进行请教!
unsignedchara=255;unsignedcharb=0x61;printf("%d\r\n",a);//这样输出的a是并不正确,我希望a直接在串口助手上显示2...
unsigned char a=255;
unsigned char b=0x61;
printf("%d\r\n",a);//这样输出的a是并不正确,我希望a直接在串口助手上显示255
然后调用printf输出b,就是直接显示61。我想应该是数据格式不对,可是该怎么写呢?求帮助! 展开
unsigned char b=0x61;
printf("%d\r\n",a);//这样输出的a是并不正确,我希望a直接在串口助手上显示255
然后调用printf输出b,就是直接显示61。我想应该是数据格式不对,可是该怎么写呢?求帮助! 展开
5个回答
展开全部
使用printf("%d\r\n",a)之前,先要设置串口的方式、波特率等。
追问
我已经设置好了,只是输出的没人不对,我觉得是%d这里有问题,只是不知道怎么改,请阁下帮忙呀!
追答
unsigned char b=0x61;
……
然后调用printf输出b,就是直接显示61。
----
这不是完全正确吗?
你在串口助手上设置,按照ASCII码显示。
然后:
printf("%d",'2');
printf("%d",'5');
printf("%d\r\n",'5');
串口助手就应该显示:255。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
%d 针对 int 类型
%c 针对 char类型
应该是这个问题
你要输出255 必须a转成int类型 同时printf %d
针对char的255 是ASCII码
%c 针对 char类型
应该是这个问题
你要输出255 必须a转成int类型 同时printf %d
针对char的255 是ASCII码
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
试着用0x255看看···因为你直接写255 系统识别为10进制数,转化成255的对应十六进制数应该是FF
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
printf("%d\r\n",(unsigned int)a);
这样试下看看
这样试下看看
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询