找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2680|回复: 3
收起左侧

DS18B20.H(50): warning C206: 'ReadOneChar': missing function-prototype

[复制链接]
ID:319320 发表于 2018-5-7 09:29 | 显示全部楼层 |阅读模式
void delay(uint i)
        {  while(i--);
        }
   void Init_DS18B20(void) //DS18B20初始化函数
   {  uchar x=0;
      DQ=1;                                   //DQ复位
          delay(8);                           //稍作延时
          DQ=0;                                   //将DQ拉低
          delay(80);
          DQ=1;                                   //拉高总线
          delay(14);
          x=DQ;                                   //如果x=0则初始化成功,x=1初始化失败
          delay(20);
        }
        uchar ReadOneCharl(void)
        {  uchar i=0;
           uchar dat=0;
           for(i=8;i>0;i--)
           {  DQ=0;                           //给脉冲信号
              dat >>=1;
                  DQ=1;                           //给脉冲信号
                  if(DQ)
                  dat|=0x80;
                  delay(4);
                }
                return(dat);
        }
  void WriteOneChar(uchar dat)
  {  uchar i=0;
     for(i=8;i>0;i--)
     {  DQ=0;
        DQ=dat&0x01;
              delay(5);
            DQ=1;
            dat>>=1;
          }
  }
  void ReadTemp(void)
  {  uchar a=0;
     uchar b=0;
         uchar t=0;
         Init_DS18B20();
         WriteOneChar(0xCC);          //跳过读序号列号的操作
         WriteOneChar(0x44);          //启动温度转换
         delay(100);
         Init_DS18B20();
         WriteOneChar(0xCC);          //跳过读序号列号的操作
         WriteOneChar(0xBE);          //读取温度寄存器
         delay(100);
         a=ReadOneChar();                  //读取温度值低位
         b=ReadOneChar();                  //读取温度值高位
         temp_value=b<<4;
         temp_value+=(a&0xf0)>>4;
   }
   void tmp_to_str()                  //温度数据转换为液晶字符显示
   {  TempBuffer[0]=temp_value/10+'0';                //十位
      TempBuffer[1]=temp_value%10+'0';                //个位
          TempBuffer[2]=0xdf;                                        //温度符号
          TempBuffer[3]='C';
          TempBuffer[4]='\0';
        }


评分

参与人数 1黑币 +5 收起 理由
1261280117 + 5 淡定

查看全部评分

回复

使用道具 举报

ID:266943 发表于 2018-5-9 16:16 | 显示全部楼层
这个也是没声明函数,在main函数前面声明一下
回复

使用道具 举报

ID:747812 发表于 2020-5-11 19:06 | 显示全部楼层
出来逛逛 发表于 2018-5-9 16:16
这个也是没声明函数,在main函数前面声明一下

怎么声明
回复

使用道具 举报

ID:266943 发表于 2020-5-12 15:11 | 显示全部楼层

我又看了一下,楼主把uchar ReadOneCharl(void)这个函数名写错了,多个l。
一般找不到函数原型很可能是把函数定义在了函数调用之后或者定义在了其他文件中,这种情况要在函数调用前面对函数进行声明。
比如:
uchar ReadOneChar();//函数声明(没有这个函数声明,在调用函数时会报错missing function-prototype)
void main(void)
{
    char a;
    a=ReadOneChar();//函数调用
//.........
}
char ReadOneChar(void)//函数定义
{
//.................函数体
}
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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