STM32用DHT11采集温湿度在LCD上显示一直有00

weixin_44331314 2019-04-08 08:54:17

void data_pros()//一开始上电,温度后面会显示00,湿度后面显示:8,然后采集到数据后,这两个就一直在
{
u8 temp;
u8 humi;
u8 temp_buf[3];
u8 humi_buf[3];

DHT11_Read_Data(&temp,&humi);
temp_buf[0]=temp/10+0x30;
temp_buf[1]=temp%10+0x30;
temp_buf[2]='\0';
Show_Str(60,25,RED,YELLOW,temp_buf,24,1);


humi_buf[0]=humi/10+0x30;
humi_buf[1]=humi%10+0x30;
humi_buf[2]='\0';
Show_Str(60,50,YELLOW,YELLOW,humi_buf,24,1);

}
int main(void)
{
u8 i;
SystemInit();
delay_init(72);
LCD_Init();
LCD_Clear(BLACK);
DHT11_Init();
POINT_COLOR=WHITE;

LCD_DrawRectangle(0,0,128-1,128-1);

Show_Str(32,5,BLUE,YELLOW,"系统监控",16,0);

Show_Str(5,25,RED,YELLOW,"温度 C",24,1);

Show_Str(5,50,YELLOW,YELLOW,"湿度 %",24,1);

while(1)
{
i++;
if(i%20==0)
{
data_pros();
}
delay_ms(10);
}

}
...全文
2025 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
xzh5508 2019-07-18
  • 打赏
  • 举报
回复
第一步,你先要看你采集到温度没有?是不是你采集到的温度操作了你定义的值。
第二步,查看你的显示程序,是不是0显示成00,或者十位上显示过0,后面温度为0时,你没有将十位上的零清除!
qq_21291397 2019-07-17
  • 打赏
  • 举报
回复
仿真一步一步,看看那一步出问题了。
柯柯-努力吧 2019-07-13
  • 打赏
  • 举报
回复
fly 100% 2019-04-09
  • 打赏
  • 举报
回复
一步一步的调吧,线temp_buff 看看是不是传感器那边就是0 还是中间计算的问题 最后看是不是显示的问题

27,511

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 单片机/工控
社区管理员
  • 单片机/工控社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧