你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

新手求助,STM32 sprintf函数入口参数用不了u8类型?

[复制链接]
heneycatcat 提问时间:2017-3-14 11:24 /
最近被这个问题弄得很郁闷,本来想把浮点型数字利用sprintf()函数转化为字符串发出去,谁知用不了u8类型的数组作为入口参数,请问各位大虾是什么原因吗?怎么解决?小弟不胜感激!

#include <stdio.h>
…………
u8 temp[6];
float ad2 = 3.14;
sprintf(temp ," %3.3f ",ad2);

compiling……
user\stm32f10x_it.c(91): warning:  #167-D: argument of type "u8 *" is incompatible with parameter of type "char *restrict"
          sprintf(temp," %3.3f ",ad2);  //转化字符串

收藏 1 评论6 发布时间:2017-3-14 11:24

举报

6个回答
废鱼 回答时间:2017-3-14 14:02:01
需要入口的是char型的,要么定义为char型,要么改为:sprintf((char *)temp," %3.3f ",ad2);

点评

赞一个!  发表于 2019-10-29 19:48

评分

参与人数 1ST金币 +2 收起 理由
MrJiu + 2 赞一个!

查看全部评分

heneycatcat 回答时间:2017-3-14 19:00:04
安 发表于 2017-3-14 14:02
需要入口的是char型的,要么定义为char型,要么改为:sprintf((char *)temp," %3.3f ",ad2);  ...

谢谢你的解答,但我想不懂为什么51可以这赋值而stm32就不可以,都是同一个函数
废鱼 回答时间:2017-3-15 08:46:58
类型不匹配警告是正常的,你以前的用法不对,只不过你用的编译器没有这个警告。

评分

参与人数 1ST金币 +5 收起 理由
MrJiu + 5 给力!!!!!!!!!!

查看全部评分

heneycatcat 回答时间:2017-3-15 11:00:10
安 发表于 2017-3-15 08:46
类型不匹配警告是正常的,你以前的用法不对,只不过你用的编译器没有这个警告。 ...

哦,原来如此,非常感谢
kayman 回答时间:2019-10-29 08:32:37
安 发表于 2017-3-14 14:02
需要入口的是char型的,要么定义为char型,要么改为:sprintf((char *)temp," %3.3f ",ad2);  ...

一语点破。我今天也是遇到这个问题,特意注册下回复这条,确实要加上(char*),keil4虽然编译过了,也能用,但是就是有warning看着不爽,这下解决了

所属标签

相似问题

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版