找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

keil的sprintf咋用啊,我想把数字转成字符串,查了半天资料,改来改去的还是报错

查看数: 3398 | 评论数: 6 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2021-11-15 17:30

正文摘要:

请大神解答一下,迈过这个坎就有希望了。

回复

ID:739720 发表于 2021-11-22 21:29
对不起我错了,学了这么久C语言还真没注意到不能在函数外部调用函数
ID:592807 发表于 2021-11-16 09:40
你的sprintf函数在函数外部给谁用的?

51hei截图20211116093931.png (168.67 KB, 下载次数: 57)

51hei截图20211116093931.png
ID:592807 发表于 2021-11-16 09:38
你在函数外面使用sprintf()?先看看你的SPRINTF
ID:584195 发表于 2021-11-16 07:44
warning:  #167-D:argument of type "uint8_t *" is incompatible with parameter of ty
pe "const char *restrict"
解释: uint8_t * 类型的参数与 const char * restrict 类型的参数不兼容。 参数传递时, 不同
类型的警告。
影响:可能提高代码的 bug 率。
改正:首先避免这样做,其次如果避不开要详细检查传入的参数。
你前面是int 后面是char 看不能强制转换一下。
ID:883242 发表于 2021-11-15 21:27
这根本就不是sprintf的问题,而是c语言基本语法的问题。
ID:401564 发表于 2021-11-15 20:36
这是我已经验证过的,参考一下
void Send_TextAndData(char *txt,float Data_Send)        //发送文本+数据
{
        char   k[10];                                                         //这里不能加code限定符,否则计算不正确,数组长度随意,不出错就可以
        char a;
        sprintf(k,"%.1f",Data_Send);        //把浮点数据分割成字符串,并存放在k数组中,"%.1f"的2f表示小数点后再显示1位数,不显示小数就是0f
        for(a=0;(k[a]!='\0');a++)
                {
                        Send_Out_COM(k[a]);                                //发送
                }
}

Data_Send是浮点整型通用的,用浮点是方便要显示小数点的会自动输出负号和小数点

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

Powered by 单片机教程网

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