找回密码
 立即注册

QQ登录

只需一步,快速开始

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

出现这种情况怎么解 warning C318: can't open file 'lcd1602.h'

[复制链接]
跳转到指定楼层
楼主
ID:1109192 发表于 2024-1-14 12:48 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
好多都解决不了的

#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--;
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:883242 发表于 2024-1-14 16:43 | 只看该作者
程序员眼里是没有warnings的,只有errors。
回复

使用道具 举报

板凳
ID:1074206 发表于 2024-1-14 21:29 | 只看该作者
看一下 工程里面 有没有 lcd 的头文件先
回复

使用道具 举报

地板
ID:1088185 发表于 2024-1-14 21:44 | 只看该作者
Option for Target.. --> C51 -->Include Path
在这加上你的头文件的路径
回复

使用道具 举报

5#
ID:458247 发表于 2024-1-15 09:45 | 只看该作者
Hephaestus 发表于 2024-1-14 16:43
程序员眼里是没有warnings的,只有errors。

别瞎几把说好吧,有些警告根本不能忽略,不然逻辑都会出问题
回复

使用道具 举报

6#
ID:1109280 发表于 2024-1-15 11:55 | 只看该作者
不知道你是用什么编辑器构建的工程,keil?
报warning的那个头文件,一般是两种可能,一是工程文件夹里没有这个文件,一是有这个文件,但是它在一个工程没包含的文件夹里
报error那个就更明显了,这种你英文看不懂,可以丢在线翻译,各种搜索引擎都有自己的在线翻译的,你的代码里确实没有定义那个变量,如果是其他c文件里定义的,要用extern引过来。最好的写法是在a.c里定义全局变量,在a.h里extern一下这个变量,这样include “a.h”就会自动把这个变量给引用过来
回复

使用道具 举报

7#
ID:883242 发表于 2024-1-15 12:30 | 只看该作者
yzw846562238 发表于 2024-1-15 09:45
别瞎几把说好吧,有些警告根本不能忽略,不然逻辑都会出问题

不要乱说,有些逻辑问题会引起warning,但是有warning不一定意味着逻辑错误,确定无误的逻辑错误,那是error。你还是见过的代码太少才会如此轻狂。
回复

使用道具 举报

8#
ID:458247 发表于 2024-1-15 13:08 | 只看该作者
Hephaestus 发表于 2024-1-15 12:30
不要乱说,有些逻辑问题会引起warning,但是有warning不一定意味着逻辑错误,确定无误的逻辑错误,那是er ...

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

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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