打印

数据转字符串问题

[复制链接]
713|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,我需要知道原因,还有一个就是程序纠错,为什么提示的行数对不上。

使用特权

评论回复
5
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那里,到最终显示这里都要测试。


使用特权

评论回复
6
负熵|  楼主 | 2018-4-1 18:16 | 只看该作者
感谢5楼,问题已解决。

使用特权

评论回复
7
xxdcq| | 2018-4-2 09:26 | 只看该作者
最简单的办法+0x30或0x37就行了

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

30

主题

78

帖子

0

粉丝