标题: 出现这种情况怎么解 warning C318: can't open file 'lcd1602.h' [打印本页]

作者: 123~321    时间: 2024-1-14 12:48
标题: 出现这种情况怎么解 warning C318: can't open file 'lcd1602.h'
好多都解决不了的

#include <reg52.h>
#include <stdio.h>
#include "lcd1602.h"                   请教大神 出现这种情况怎么解 warning C318: can't open file 'lcd1602.h'
#include "delay.h"
#include "infrared.h"
#include "gsm_at.h"
#include "data_unit.h"
#include "uart.h"
#include "eeprom52.h"
sbit KEY_OPEN = P3^3; //????
sbit KEY_CLOSE = P3^5;

sbit LED_GREEN = P2^1;
sbit LED_RED = P2^2;

sbit BUZZER = P2^0;

#define BUZZER_ON (BUZZER = 0)
#define BUZZER_OFF (BUZZER = 1)

sbit SHAKE_PIN = P1^1
sbit HC_SR501 = P1^0
sbit RELAY_LOCK = P2^3


bit g_irFlag = 0
unsigned char g_irCode[4];

unsigned char refreshFlag = 0
unsigned char setFlag = 0; //??????
bit lockFlag = 1; //??????
bit monitorFlag = 0; //????
bit alarmFlag = 0; //????

unsigned char time500msCnt = 0;
unsigned char time500msCnt2 = 0;

bit oldPinState = 0;
bit nowPinState = 0;

char dis0[16]; //????????????

void CheckKey(void);
void CheckBluetooth(void);
void Timer1_Init(void);

void main(void)
{
    IR_INPUT = 1;         还有这 error C202: 'IR_INPUT': undefined identifier

    Timer1_Init();
    IR_Init();
    Uart_Init();
    LCD_Init();   //?????
    DelayMs(200); //???????
    LCD_Clear();  //??

    LCD_DispStr(0, 0, "    Welcome!    ");
    DelayS(1);
    LCD_DispStr(0, 0, "   Waiting...   ");
    DelayS(5);

    err_num = GSM_Init(); //GSM???

    DelayMs(10);
    if (gsm_init_flag) //?????
    {
        err_num = GSM_Text_Mode(); //GSM ??Text??
    }
    DelayMs(10);
    if (gsm_config_flag)
    {
        err_num = GSM_Delete_Sms("1"); //????1
    }
    DelayMs(10);
    if (!(gsm_init_flag || gsm_config_flag || gsm_delete_flag)) // AT????
    {
        BUZZER_ON;
        LCD_DispStr(0, 0, " Init Err Num  ");
        LCD_WriteData((int)err_num+'0');
        DelayS(1);
        BUZZER_OFF;
    }
    else
    {
        LCD_DispStr(0, 0, "    Init OK!    ");
    }

    DelayS(3);

    EEPROM52_Init(); //???????
    LCD_DispStr(0, 0, "     Status     ");

    while (1) //???
    {
        gsm_receive_process(); //gsm????

        if (lockFlag == 1) //???
        {
            LED_RED = 0;
            LED_GREEN = 1;
            RELAY_LOCK = 1; //???
            if (alarmFlag == 0)
            {
                if (HC_SR501 == 0 && SHAKE_PIN == 0) //?????
                    monitorFlag = 1;

                if (monitorFlag == 1) //??????
                {
                    if (time500msCnt >= 10 && time500msCnt <= 20) //????????5s~10s,????
                    {
                        if (HC_SR501 == 0 && SHAKE_PIN == 0) //??????????
                        {
                            alarmFlag = 1;
                            time500msCnt = 0;
                            BUZZER_ON;
                            LCD_DispStr(0, 1, "    Warning!    ");
                            GSM_Send_Sms(phone1, "Please pay attention to your car!");
                            DelayMs(10);
                        }

                    }
                    else if (time500msCnt > 20) //??10s????
                    {
                        monitorFlag = 0; //????
                        time500msCnt = 0;
                    }
                }
                else
                {
                    time500msCnt = 0;
                    BUZZER_OFF;
                }
            }
            else //????
            {
                if (time500msCnt >= 120) //??1????????
                {
                    alarmFlag = 0;
                }
            }
        }
        else
        {
            LED_RED = 1;
            LED_GREEN = 0;
            alarmFlag = 0;
            monitorFlag = 0;
            RELAY_LOCK = 0; //???
            BUZZER_OFF;

        }

        if (refreshFlag == 1)
        {
            refreshFlag = 0;
            TR1 = 0;

            if (lockFlag == 1)
            {
                if (alarmFlag == 0)
                {
                    if (monitorFlag == 1)
                    {
                        time500msCnt++;
                    }
                    else
                    {
                        time500msCnt = 0;
                        LCD_DispStr(0, 1, " Lock ");
                    }
                }
                else
                {
                    time500msCnt++;
                }
            }
            else
            {
                LCD_DispStr(0, 1, "      Open      ");
                if (time500msCnt2 > 0)
                {
                    time500msCnt2--;

作者: Hephaestus    时间: 2024-1-14 16:43
程序员眼里是没有warnings的,只有errors。
作者: kk17328    时间: 2024-1-14 21:29
看一下 工程里面 有没有 lcd 的头文件先
作者: 1600277881    时间: 2024-1-14 21:44
Option for Target.. --> C51 -->Include Path
在这加上你的头文件的路径

作者: yzw846562238    时间: 2024-1-15 09:45
Hephaestus 发表于 2024-1-14 16:43
程序员眼里是没有warnings的,只有errors。

别瞎几把说好吧,有些警告根本不能忽略,不然逻辑都会出问题
作者: dsinjok    时间: 2024-1-15 11:55
不知道你是用什么编辑器构建的工程,keil?
报warning的那个头文件,一般是两种可能,一是工程文件夹里没有这个文件,一是有这个文件,但是它在一个工程没包含的文件夹里
报error那个就更明显了,这种你英文看不懂,可以丢在线翻译,各种搜索引擎都有自己的在线翻译的,你的代码里确实没有定义那个变量,如果是其他c文件里定义的,要用extern引过来。最好的写法是在a.c里定义全局变量,在a.h里extern一下这个变量,这样include “a.h”就会自动把这个变量给引用过来
作者: Hephaestus    时间: 2024-1-15 12:30
yzw846562238 发表于 2024-1-15 09:45
别瞎几把说好吧,有些警告根本不能忽略,不然逻辑都会出问题

不要乱说,有些逻辑问题会引起warning,但是有warning不一定意味着逻辑错误,确定无误的逻辑错误,那是error。你还是见过的代码太少才会如此轻狂。
作者: yzw846562238    时间: 2024-1-15 13:08
Hephaestus 发表于 2024-1-15 12:30
不要乱说,有些逻辑问题会引起warning,但是有warning不一定意味着逻辑错误,确定无误的逻辑错误,那是er ...

hehe ,你看的多,能说出这种话,666。反正所有warning我能消的都要给他消掉。不然可能大部分工况没问题,不小心就遇到越界、野指针、值溢出等各种问题




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1