我现在做一个关于dht11然后在1602 上显示,出现一个问题 ,我在主函数中初始化中调用DHT11_Init()这个函数,可以正常进入 while(1)中 也就说 DHT11_Init()的值为0,可是 我想在 1206 显示函数中调用 read函数 里面 会判断DHT11_Init()的值 它就不为0 不知道为何 下面是 部分代码
主函数:
while(DHT11_Init())
{
printf("\r\n DHT11³õʼ»¯´íÎó\r\n");
}
printf("\r\n DHT11³õʼ»¯³É¹¦\r\n");
Delay_ms(500);
while(1)
{
GPIO_ResetBits(GPIOD,GPIO_Pin_2);
key();
switch_display();
1602.c
void lcd_display_wenshidu(void)
{
DHT11_Read_Data(&temperature,&humidity);
}
dht11.c
//´ÓDHT11¶ÁÈ¡Ò»´ÎÊý¾Ý
//temp:ζÈÖµ(·¶Î§:0~50¡ã)
//humi:ʪ¶ÈÖµ(·¶Î§:20%~90%)
//·µ»ØÖµ£º0,Õý³£;1,¶Áȡʧ°Ü
u8 DHT11_Read_Data(u8 *temp,u8 *humi)
{
u8 buf[5];
u8 i;
DHT11_Rst();
GPIO_ResetBits(GPIOD,GPIO_Pin_3);
if(DHT11_Check()==0)
{
GPIO_ResetBits(GPIOD,GPIO_Pin_4);
for(i=0;i<5;i++)
{
buf[i]=DHT11_Read_Byte();
mm=0;
}
我用的 灯亮 判断 有没有进入函数 谢谢啊 |