OpenEdv-开源电子网

 找回密码
 立即注册

扫一扫,访问微社区

正点原子新作:阿波罗STM32F767&F429&探索者STM32F4开发板&赶快来下载资料哦。

查看: 152|回复: 9

用unsigned char定义了一个变量为什么用printf以%d输出后数字不对啊?

[复制链接]

  离线 

75

主题

185

帖子

0

精华

高级会员

Rank: 4

积分
537
金钱
537
注册时间
2015-10-16
在线时间
63 小时
发表于 2017-11-10 12:03:25 | 显示全部楼层 |阅读模式
回复

使用道具 举报

  离线 

1

主题

3

帖子

0

精华

新手上路

Rank: 1

积分
24
金钱
24
注册时间
2017-11-9
在线时间
9 小时
发表于 2017-11-10 12:54:31 | 显示全部楼层
如果是串口输出,应该是波特率没配置对。
回复

使用道具 举报

  离线 

75

主题

185

帖子

0

精华

高级会员

Rank: 4

积分
537
金钱
537
注册时间
2015-10-16
在线时间
63 小时
 楼主| 发表于 2017-11-10 13:27:47 | 显示全部楼层
gagaga 发表于 2017-11-10 12:54
如果是串口输出,应该是波特率没配置对。

波特率是对的,而且我如果将unsigned char 换成unsigned int输出结果是正确的
回复

使用道具 举报

  离线 

1

主题

327

帖子

0

精华

高级会员

Rank: 4

积分
823
金钱
823
注册时间
2011-12-1
在线时间
61 小时
发表于 2017-11-10 13:44:39 | 显示全部楼层
最好不要加中文与字符一起写,容易出问题!最好全部是字符!
回复

使用道具 举报

  离线 

8

主题

685

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1659
金钱
1659
注册时间
2011-5-23
在线时间
705 小时
发表于 2017-11-10 14:36:00 | 显示全部楼层
[C] 纯文本查看 复制代码
printf("temp : %d\r\n", (int)temp);


%d的类型是int,不转的话,在非32位机上面容易出问题。
因为可变参数是通过栈传递的,类型不匹配,取值就会出错。
回复

使用道具 举报

  离线 

2

主题

116

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
295
金钱
295
注册时间
2017-10-24
在线时间
20 小时
发表于 2017-11-10 18:07:52 | 显示全部楼层
一般无符号数以%u输出。

楼主可以修改试试看。
十六进制带我飞。
回复

使用道具 举报

  离线 

2

主题

149

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
470
金钱
470
注册时间
2013-6-5
在线时间
65 小时
发表于 2017-11-11 00:40:03 | 显示全部楼层
我来告诉你,你数据类型没对,d是有符号整数,u是无符号整数,如果是51可以用bu来输出,其他要强制类型转换为一致的。
回复

使用道具 举报

  离线 

0

主题

4

帖子

0

精华

新手上路

Rank: 1

积分
46
金钱
46
注册时间
2017-6-21
在线时间
11 小时
发表于 7 天前 来自手机 | 显示全部楼层
51打印uchar用bu打印char用bd打印uint用bu,int用bd
回复

使用道具 举报

  离线 

27

主题

163

帖子

0

精华

高级会员

Rank: 4

积分
569
金钱
569
注册时间
2016-6-10
在线时间
130 小时
发表于 5 天前 | 显示全部楼层
c%输出啊
回复

使用道具 举报

  离线 

14

主题

370

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1871
金钱
1871
注册时间
2013-6-27
在线时间
246 小时
发表于 4 天前 | 显示全部楼层
51的printf8位要使用 %bd就可以了,keil帮助里面有说明。

unsigned char temp;

printf("temp : %bd\r\n", temp);
让我们的思维驾驭在电的速度之上! 承接各种电子产品设计。 659396825
回复

使用道具 举报

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

本版积分规则




QQ|联系我们|手机版|官方淘宝店|新浪微博|微信公众平台|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2017-11-19 16:36

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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