找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3330|回复: 6
收起左侧

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

[复制链接]
ID:739720 发表于 2021-11-15 17:30 | 显示全部楼层 |阅读模式
请大神解答一下,迈过这个坎就有希望了。
1.png
回复

使用道具 举报

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是浮点整型通用的,用浮点是方便要显示小数点的会自动输出负号和小数点
回复

使用道具 举报

ID:883242 发表于 2021-11-15 21:27 | 显示全部楼层
这根本就不是sprintf的问题,而是c语言基本语法的问题。
回复

使用道具 举报

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:592807 发表于 2021-11-16 09:38 | 显示全部楼层
你在函数外面使用sprintf()?先看看你的SPRINTF
回复

使用道具 举报

ID:592807 发表于 2021-11-16 09:40 | 显示全部楼层
你的sprintf函数在函数外部给谁用的?
51hei截图20211116093931.png
回复

使用道具 举报

ID:739720 发表于 2021-11-22 21:29 | 显示全部楼层
对不起我错了,学了这么久C语言还真没注意到不能在函数外部调用函数
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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