野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 11001|回复: 1

温度在显示屏上显示

[复制链接]
发表于 2018-5-6 20:56:41 | 显示全部楼层 |阅读模式
我就想把给的例程中显示屏和温度传感器结合一下,为什么总会死机,有个别几次不知道为什么没死机,但是温度的数据是不对。

求各位大神帮忙看看,很急。

#include "stm32f10x.h"
#include "./lcd/bsp_ili9341_lcd.h"
#include "./usart/bsp_usart.h"
#include <stdio.h>
#include "./systick/bsp_SysTick.h"
#include "./dht11/bsp_dht11.h"

static void LCD_Test(void);       
static void Delay ( __IO uint32_t nCount );
void Printf_Charater(void)   ;


/**
  * @brief  主函数
  * @param  无  
  * @retval 无
  */
int main ( void )
{
        USART_Config();       
       
        /* 配置SysTick 为1us中断一次 */
        SysTick_Init();
        printf("\r\n***dht11 温湿度传感器实验***\r\n");

        /*初始化DTT11的引脚*/
        DHT11_Init ();
       
        ILI9341_Init ();         //LCD 初始化

       
       
        printf("\r\n ********** 液晶屏英文显示程序*********** \r\n");

       
//其中0、3、5、6 模式适合从左至右显示文字,
//不推荐使用其它模式显示文字        其它模式显示文字会有镜像效果                       
//其中 6 模式为大部分液晶例程的默认显示方向  
  ILI9341_GramScan ( 6 );
        while ( 1 )
        {
                LCD_Test();

        }
       
       
}


void LCD_Test(void)
{
        DHT11_Data_TypeDef DHT11_Data;
        char aBuff[100];


       
        LCD_SetFont(&Font8x16);
        LCD_SetColors(RED,BLACK);

         ILI9341_Clear(0,0,LCD_X_LENGTH,LCD_Y_LENGTH);        /* 清屏,显示全黑 */
        /********显示字符串示例*******/
         ILI9341_DispStringLine_EN(LINE(0),"BH 3.2 inch LCD para:");
         ILI9341_DispStringLine_EN(LINE(1),"Image resolution:240x320 px");
        ILI9341_DispStringLine_EN(LINE(2),"ILI9341 LCD driver");
        ILI9341_DispStringLine_EN(LINE(3),"XPT2046 Touch Pad driver");
       
        LCD_SetFont(&Font8x16);
        LCD_SetTextColor(WHITE);
        sprintf(aBuff,"Humidity:%d.%dRH,Temperature:%d.%dC",DHT11_Data.humi_int,DHT11_Data.humi_deci,DHT11_Data.temp_int,DHT11_Data.temp_deci);
        printf("\r\n读取DHT11成功!\r\n\r\n湿度为%d.%d %RH ,温度为 %d.%d℃ \r\n",DHT11_Data.humi_int,DHT11_Data.humi_deci,DHT11_Data.temp_int,DHT11_Data.temp_deci);
        LCD_ClearLine(LINE(4));        /* 清除单行文字 */       
        /*然后显示该字符串即可,其它变量也是这样处理*/
        ILI9341_DispStringLine_EN(LINE(4),aBuff);       

        Delay(0xFFFFFF);

      ILI9341_Clear(0,16*8,LCD_X_LENGTH,LCD_Y_LENGTH-16*8);        /* 清屏,显示全黑 */

}


回复

使用道具 举报

发表于 2018-5-7 08:53:03 | 显示全部楼层
有液晶和串口的程序,要先初始化液晶,再初始化串口
回复 支持 反对

使用道具 举报

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

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-11-23 07:31 , Processed in 0.027193 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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