数据转字符串问题

[复制链接]
1086|6
 楼主| 负熵 发表于 2018-3-30 19:33 | 显示全部楼层 |阅读模式
最近想自学c语言编程,做了一个读取DHT11温湿度到液晶屏显示的程序,需要把数据转成字符串,我用了sprint函数,
      unsigned char  strtemp[10],strhumi[10];
      sprintf(strtemp,"当前温度:%d.%d℃",Get_Data.Temp_H,Get_Data.Temp_L);
      sprintf(strhumi,"当前湿度:%d.%d%",Get_Data.Humi_H,Get_Data.Hmi_L);
编译后有一个Warning
Warning[Pe167]: argument of type "unsigned char *" is incompatible with parameter of type "char *" E:\stm32\airmonitor\App\main.c 55
Temp_H,Temp_L我都是用的unsigned char,
typedef struct
{
    unsigned char Humi_H;        //湿度的整数部分
    unsigned char Humi_L;         //湿度的小数部分
    unsigned char Temp_H;         //温度的整数部分
    unsigned char Temp_L;         //温度的小数部分
    unsigned char Check_Sum;         //校验和
} DHT11_Data;
为什么会提示   unsigned char *和char *不相容,还有一个问题pe167是指第167行吧,但是事实上我程序没那么长
ningling_21 发表于 2018-3-30 19:45 | 显示全部楼层
不要用sprint函数,自己写个函数即可
liunian00 发表于 2018-3-31 10:42 | 显示全部楼层
你这样是行不通的,可以自己写函数库。
 楼主| 负熵 发表于 2018-3-31 21:48 | 显示全部楼层
回1楼2楼,只是一个Warning,程序是可以正常运行的,后来我又加了个攀藤pm2.5传感器,在处理数据的时候也有相同的错误,但是是error,我需要知道原因,还有一个就是程序纠错,为什么提示的行数对不上。
linqing171 发表于 2018-3-31 23:41 | 显示全部楼层
1 Pe167 是错误类型167,不是行号167。你在哪行出这种都是这个warning。

2 sprintf((char*)strtemp,"当前温度:%d.%d℃",Get_Data.Temp_H,Get_Data.Temp_L);

3 你的这个代码有几个bug。测试一下  22.07  22.70 22.251 这些数吧,从浮点数转换到Hi Low那里,到最终显示这里都要测试。


 楼主| 负熵 发表于 2018-4-1 18:16 | 显示全部楼层
感谢5楼,问题已解决。
xxdcq 发表于 2018-4-2 09:26 | 显示全部楼层
最简单的办法+0x30或0x37就行了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

32

主题

80

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部