找回密码
 立即注册

QQ登录

只需一步,快速开始

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

Keil编译生成hex文件时总是报错warning C206: '': missing function-prototype

[复制链接]
跳转到指定楼层
楼主
ID:648640 发表于 2019-11-24 21:32 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
报错的一段程序在这,检查了好多次函数声明,没有发现问题。

void Key_Set_Clock( uchar * clock_time )

{
   uchar *i;
   i = clock_time ;
   clock_time ++ ;   //????
   Lcd_Set_Clock( 2, i );  //?????????????
   Key_Idle();
   while(1)
   {
      uchar minute;
      minute = ( ( * clock_time >>4 ) * 10 ) + ( ( * clock_time ) & 0x0f );                                //BCD ? HEX
      switch( Key_Scan() )   //??????  
      {            
         case KEY_UP:   
   {
     minute ++;   
     if(minute==60)
        minute=0;
           (*clock_time)=minute/10<<4;
(*clock_time)=(*clock_time)|( minute%10); //HEX ? BCD
   Lcd_Set_Clock( 2, i );  //?????????????
       Key_Idle();
   break;
         }                  
         case KEY_DOWN:
   {
     if(minute==0)  
    minute=60;  
     minute --;
           (*clock_time)=minute/10<<4;
     (*clock_time)=(*clock_time)|(minute%10);  //HEX ? BCD  
           Lcd_Set_Clock( 2, i );  //?????????????
           Key_Idle();
     break;
         }                    
        case  KEY_FUNC:  //?????
         {
   clock_time ++;   //????
            Lcd_Set_Clock(3,i);   //?????????????
   Key_Idle();
            while(1)
            {
      uchar hour;
               hour=((*clock_time>>4)*10)+((*clock_time)&0x0f);                                //BCD ? HEX
               switch( Key_Scan())
               {
                  case  KEY_UP:  
       {
       hour ++;
       if(hour==24)
      hour = 0;
      (*clock_time)=hour/10 <<4 ;
      (*clock_time)=(*clock_time)|(hour%10);   //HEX ? BCD
                     Lcd_Set_Clock( 3, i );   //?????????????
      Key_Idle();
      break;
       }
                  case  KEY_DOWN:  
      {
      if(hour == 0)
      hour = 24;
      hour --;
      if( hour == 0)
      hour =23;
      (*clock_time)=hour/10 <<4 ;
      (*clock_time)=(*clock_time)|(hour%10); //HEX ? BCD
      Lcd_Set_Clock( 3, i );   //?????????????
      Key_Idle();
      break;
      }         
                 case KEY_FUNC:    //??????
       {
                    clock_time ++;   //?????
                    Lcd_Set_Clock( 4, i );   //?????????????
     Key_Idle();
     while(1)
     {
       uchar day;
       day = ( (*clock_time >>4)*10 ) + ( (*clock_time)&0x0f );                                //BCD ? HEX
       switch(Key_Scan())
       {
       case KEY_UP:
          {
       day ++;
       if(day==32)
         day=1;
       (*clock_time)=day/10 <<4 ;  
       (*clock_time)=(*clock_time)|(day%10);                         //HEX ? BCD
       Lcd_Set_Clock( 4, i );   //?????????????
       Key_Idle();
       break;
       }         
                        case KEY_DOWN:
       {
       if(day == 0)
         day= 31;
       day --;
       if(day == 0)
         day=31;
       (*clock_time) = day/10 <<4 ;     
       (*clock_time) = (*clock_time) | (day%10);                         //HEX ? BCD ;
       Lcd_Set_Clock( 4, i );   //?????????????
       Key_Idle();
       break;
      }                  
                 case KEY_FUNC:    //??????
        {
                         clock_time ++;   //?????
       Lcd_Set_Clock( 5, i );   //?????????????
       Key_Idle();
       while(1)
       {
         uchar month;
         month = ( ( * clock_time >>4)*10 ) + ( ( * clock_time ) & 0x0f );                                //BCD ? HEX
                           switch(Key_Scan())
         {
                              case KEY_UP:
          {  
          month ++;
          if(month == 13)
         month= 1;
          (*clock_time)=month/10<<4;
          (*clock_time)=(*clock_time)|(month%10);                         //HEX ? BCD
           Lcd_Set_Clock( 5, i );   //?????????????
              Key_Idle();
           break;
         }            
                              case KEY_DOWN:
          {  
          if(month==0)
          month = 12;
          month --;
          if(month==0)
         month = 12;
          (*clock_time)=month/10 <<4;
          (*clock_time)=(*clock_time)|(month%10);                         //HEX ? BCD
          Lcd_Set_Clock( 5, i );   //?????????????
             Key_Idle();
          break;
         }                                                
        case KEY_FUNC:    //??????
        {
        clock_time ++;   //?????
        Lcd_Set_Clock( 6, i );   //?????????????
           Key_Idle();
              while(1)
           {
          uchar year;
             year=((*clock_time>>4)*10)+((*clock_time)&0x0f);                                //BCD ? HEX
                                  switch( Key_Scan() )
          {
             case KEY_UP:
                {   
            year ++;
            if(year == 100)
            year= 0;
            (*clock_time)=year/10<<4;
                  (*clock_time)=(*clock_time)|(year%10); //HEX ? BCD
                  Lcd_Set_Clock( 6, i );   //?????????????
                     Key_Idle();
               break;
                   }
                                     case KEY_DOWN:
             {  
            if(year==0)
            year=100;
            year--;
            if(year==0)
            year=100;
            (*clock_time)=year/10<<4;
               (*clock_time)=(*clock_time)|(year%10); //HEX ? BCD
             Lcd_Set_Clock( 6, i );   //?????????????
                   Key_Idle();
                break;
             }
                      case KEY_FUNC:
              {   
           goto loop;
              break;
              }
              }                       
               }
               }
                      }
                       }
                     }            
                     }
                   }
                 }
               }
            }         
          }
      }
   }
   loop:  Key_Idle();
}
这是头文件,不知道哪里有问题,头文件无法包含在.c文件中。.c文件显示的错误如下:
..\CODE\KEY.C(97): warning C206: 'Lcd_Set_Clock': missing function-prototype
..\CODE\KEY.C(97): error C267: 'Lcd_Set_Clock': requires ANSI-style prototype

#ifndef KEY_H
#define KEY_H
  #include "Include.h"

  #ifndef KEY_GLOBAL
    #define KEY_EXT extern
  #else
    #define KEY_EXT
  #endif
  #define READ_KEY(x,name,b)       ((x)?(b|=name):(b&=~name) )
//---------------------?????????-------------------------------------
  #define  IN_PRESS_UP       P0_0    //???????????????
  #define  IN_PRESS_DOWN  P0_1 //??????????????
  #define  IN_PRESS_CLEAR     P0_2 //??????????
  #define  IN_PRESS_FUNC  P0_3 //???????????
//----------------------??????-----------------------------------------
  #define  KEY_FORCE_VALUE  0  //??????Ч???
  enum KEY_VALUE{KEY_UP=0x01,KEY_DOWN=0x02,KEY_CLEAR=0x04,KEY_FUNC=0x08,KEY_NULL=0x00};
  KEY_EXT void key_delay_us(uint us);
  KEY_EXT void key_init(void);
  KEY_EXT void Key_Idle(void);
  KEY_EXT uchar Key_Scan(void);
  KEY_EXT void Key_Set_Clock( uchar * clock_time );
  KEY_EXT void Key_Set_Alarm(uchar * alarm_time);
  KEY_EXT void Key_Function(uchar * clock_time,uchar* alarm_time);
#endif


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

使用道具 举报

沙发
ID:648640 发表于 2019-11-24 21:33 | 只看该作者
?里的内容是注释
回复

使用道具 举报

板凳
ID:373684 发表于 2019-11-25 09:39 | 只看该作者
注意大小写,我昨天就是卡在这里啦
回复

使用道具 举报

地板
ID:235200 发表于 2019-11-25 12:17 | 只看该作者
报错的子程序需要声明,可以在头文件中声明,也可以在主函数前声明
回复

使用道具 举报

5#
ID:213173 发表于 2019-11-25 13:07 | 只看该作者
缺少LCD驱动程序或没有声明
回复

使用道具 举报

6#
ID:606366 发表于 2019-11-26 11:06 | 只看该作者
1.#include"key.h"
2.检查void Key_Set_Clock( uchar * clock_time )是否在使用之前声明,一般在.h文件中声明,不过我看你并没有
回复

使用道具 举报

7#
ID:648640 发表于 2019-11-27 22:02 | 只看该作者
csmyldl 发表于 2019-11-25 12:17
报错的子程序需要声明,可以在头文件中声明,也可以在主函数前声明

头文件里已经声明了
回复

使用道具 举报

8#
ID:648640 发表于 2019-11-27 22:03 | 只看该作者
无敌的UUZ大人 发表于 2019-11-26 11:06
1.#include"key.h"
2.检查void Key_Set_Clock( uchar * clock_time )是否在使用之前声明,一般在.h文件中 ...

头文件声明了
回复

使用道具 举报

9#
ID:648640 发表于 2019-11-27 22:06 | 只看该作者
wulin 发表于 2019-11-25 13:07
缺少LCD驱动程序或没有声明

LCD程序有,没写在帖子里。
回复

使用道具 举报

10#
ID:648640 发表于 2019-11-27 22:11 | 只看该作者
cr8526 发表于 2019-11-25 09:39
注意大小写,我昨天就是卡在这里啦

检查了好多遍,没有发现大小写的问题
回复

使用道具 举报

11#
ID:601357 发表于 2020-3-11 11:43 | 只看该作者
MOYI99 发表于 2019-11-27 22:11
检查了好多遍,没有发现大小写的问题

我也有你这个问题,楼主你解决了吗
回复

使用道具 举报

12#
ID:1031592 发表于 2022-10-22 20:47 | 只看该作者
cr8526 发表于 2019-11-25 09:39
注意大小写,我昨天就是卡在这里啦

感谢,回去检查了一下,就短短的几十行流水灯代码,就有一个字母小写打成了大写,感谢
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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