找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1668|回复: 0
打印 上一主题 下一主题
收起左侧

stm32单片机通过DHT11传感器自动控制继电器的开合程序问题

[复制链接]
跳转到指定楼层
楼主
ID:805752 发表于 2020-7-22 09:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
想在stm32单片机中通过DHT11传感器返回的温湿度自动控制继电器的开合,但是代码好像并没有起到控制继电器的作用,并且运行的时候温湿度在lcd上没有正常显示,求大神指点如何修改一下代码,最终可以通过DHT11检测到的温湿度控制继电器的开合,控制继电器的代码如下():
GPIO_SetBits(GPIO_jidianqi,jidianqi);
                GPIO_ResetBits(GPIO_jidianqi2,jidianqi2);
        
while(1)
{
        
         if(temp>10&&humi>10)
        {
                GPIO_SetBits(GPIO_jidianqi,jidianqi);
                GPIO_SetBits(GPIO_jidianqi2,jidianqi2);
        }
}


主函数的代码:
#include "system.h"
#include "SysTick.h"
#include "led.h"
#include "usart.h"
#include "tftlcd.h"
#include "dht11.h"
#include "jidianqi.h"

void data_pros()  
{
        u8 temp;              
        u8 humi;
        u8 temp_buf[3],humi_buf[3];
        DHT11_Read_Data(&temp,&humi);
        temp_buf[0]=temp/10+0x30;        
        temp_buf[1]=temp%10+0x30;
        temp_buf[2]='\0';
        LCD_ShowString(55,100,tftlcd_data.width,tftlcd_data.height,16,temp_buf);
               
        humi_buf[0]=humi/10+0x30;        
        humi_buf[1]=humi%10+0x30;
        humi_buf[2]='\0';
        LCD_ShowString(55,130,tftlcd_data.width,tftlcd_data.height,16,humi_buf);
        printf("ζè=%d¡ãC  êa¶è=%d%%RH\r\n",temp,humi);

        GPIO_SetBits(GPIO_jidianqi,jidianqi);
                GPIO_ResetBits(GPIO_jidianqi2,jidianqi2);
        
while(1)
{
        
         if(temp>10&&humi>10)
        {
                GPIO_SetBits(GPIO_jidianqi,jidianqi);
                GPIO_SetBits(GPIO_jidianqi2,jidianqi2);
        }
}
}





int main()
{
        u8 i=0;
        u8 temp;              
        u8 humi;
        SysTick_Init(72);
        NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);  
        LED_Init();
        USART1_Init(115200);
        TFTLCD_Init();      
        jiqianqi_Init();
        
        
        FRONT_COLOR=BLACK;
        LCD_ShowString(10,10,tftlcd_data.width,tftlcd_data.height,16,"PRECHIN STM32F1");
        LCD_ShowString(10,30,tftlcd_data.width,tftlcd_data.height,16,"www8prechin8net");
        LCD_ShowString(10,50,tftlcd_data.width,tftlcd_data.height,16,"DHT11 Test");
        LCD_ShowString(10,100,tftlcd_data.width,tftlcd_data.height,16,"Temp:   C");
        LCD_ShowString(10,130,tftlcd_data.width,tftlcd_data.height,16,"Humi:   %RH");
        FRONT_COLOR=RED;
        

        
        
        while(DHT11_Init())        //¼ì2aDS18B20êÇ·ñ′¿Ôú
        {
                LCD_ShowString(130,50,tftlcd_data.width,tftlcd_data.height,16,"Error   ");
                printf("DHT11 Check Error!\r\n");
                delay_ms(500);               
        }
        LCD_ShowString(130,50,tftlcd_data.width,tftlcd_data.height,16,"Success");
        printf("DHT11 Check OK!\r\n");
        while(1)
        {
                i++;
                if(i%20==0)
                {
                        LED1=!LED1;
                        data_pros();  
                }
               
                delay_ms(10);               
        }
        

}


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

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

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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