打印

温度在显示屏上显示

[复制链接]
390|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
大碴子味|  楼主 | 2020-4-25 16:10 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我就想把给的例程中显示屏和温度传感器结合一下,为什么总会死机,有个别几次不知道为什么没死机,但是温度的数据是不对。

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

#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);        /* 清屏,显示全黑 */

}

使用特权

评论回复

相关帖子

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

本版积分规则

372

主题

372

帖子

0

粉丝