忆梦返938 2022-06-09 12:14 采纳率: 100%
浏览 47
已结题

编译错误求解但不知道如何修改

编译时出现DS18B20.H(3): error C129: missing ';' before 'DS_init'错误求解
#ifndef DS18B20_H
#define DS18B20_H
uchar DS_init()
{
uchar state;
DQ=1;
delay_1us(8);
DQ=0;
delay_1us(80);
DQ=1;
delay_1us(8);;
state=DQ;
delay(100);
return state;
}
void DS_write_byte(uchar dat)
{
uchar i;
for(i=0;i<8;i++)
{
if((dat&0x01)==0)
{
DQ=0;
delay_1us(5);
DQ=1;
}
else
{
DQ=0;
delay_1us(1);
DQ=1;
delay_1us(4);
}
dat>>=1;
}
}
uchar DS_read_byte()
{
uchar i,dat=0;
for(i=0;i<8;i++)
{
DQ=0;
dat>>=1;
DQ=1;
if(DQ==1)
dat=0x80;
else
dat=0x00;
delay_1us(30);
DQ=1;
}
return dat;
}
void DS_read_temperature()
{
if(DS_init()==1)
DS_OK=0;
else
{
DS_init();
DS_write_byte(0xcc);
DS_write_byte(0x44);
DS_init();
DS_write_byte(0xcc);
DS_write_byte(0xbe);
temp_value[1]=DS_read_byte();
temp_value[0]=DS_read_byte();
DS_OK=1;
}
}
void set_alarm_HL()
{
DS_init();
DS_write_byte(0xcc);
DS_write_byte(0x4e);
DS_write_byte(0x7f);
DS_init();
DS_write_byte(0xcc);
DS_write_byte(0x48);
}

void display_temperature()
{
uchar flag=0;
if((temp_value[0]&0xf8)==0xf8)
{
flag=1;
temp_value[0]=temp_value[0];
temp_value[1]=
temp_value[1]+1;
if(temp_value[1]==0x00)
temp_value[0];
}
display_digit[3]=df_tab[temp_value[1]&0x0f];
current=((temp_value[0]&0x07)<<4)|((temp_value[1]&0xf0)>>4);
sign_temp=flag?-current:current;

display_digit[0]=current/100;
display_digit[1]=current%100/10;
display_digit[2]=current%10;

buffer_line2[8]=display_digit[0]+'0';
buffer_line2[9]=display_digit[1]+'0';
buffer_line2[10]=display_digit[2]+'0';
buffer_line2[11]='.';
buffer_line2[12]=display_digit[3]+'0';

if(display_digit[0]==0)
    buffer_line2[8]=' ';
   if(display_digit[0]==0&&display_digit[1]==0)
    buffer_line2[9]=' ';
    if(flag==1)
{
    if(buffer_line2[9]==' ')
        buffer_line2[9]='-';
    else
    {
        if(buffer_line2[8]==' ')
            buffer_line2[8]='-';
        else
            buffer_line2[7]='-'; 
    }
}   
    LCD_display(0x00,buffer_line1);
     LCD_display(0x40,buffer_line2);
      LCD_write_cmd(0x80+0x4d);
LCD_write_data(0x00);
LCD_write_cmd(0x80+0x4e);
LCD_write_data('C');     

}

#endif

  • 写回答

1条回答 默认 最新

  • qzjhjxj 2022-06-09 12:46
    关注

    #ifndef DS18B20_H
    #define DS18B20_H
    #define uchar unsigned char // 在第3行插入这行代码
    uchar DS_init()
    {
    //。。。。。。。。。
    }

    这段代码里还缺了几个函数及变量,及引脚的定义。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 6月17日
  • 已采纳回答 6月9日
  • 创建了问题 6月9日

悬赏问题

  • ¥15 c语言怎么用printf(“\b \b”)与getch()实现黑框里写入与删除?
  • ¥20 怎么用dlib库的算法识别小麦病虫害
  • ¥15 华为ensp模拟器中S5700交换机在配置过程中老是反复重启
  • ¥15 java写代码遇到问题,求帮助
  • ¥15 uniapp uview http 如何实现统一的请求异常信息提示?
  • ¥15 有了解d3和topogram.js库的吗?有偿请教
  • ¥100 任意维数的K均值聚类
  • ¥15 stamps做sbas-insar,时序沉降图怎么画
  • ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看
  • ¥15 关于#Java#的问题,如何解决?