忆梦返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 路易威登官网 里边的参数逆向
  • ¥15 Arduino无法同时连接多个hx711模块,如何解决?
  • ¥50 需求一个up主付费课程
  • ¥20 模型在y分布之外的数据上预测能力不好如何解决
  • ¥15 processing提取音乐节奏
  • ¥15 gg加速器加速游戏时,提示不是x86架构
  • ¥15 python按要求编写程序
  • ¥15 Python输入字符串转化为列表排序具体见图,严格按照输入
  • ¥20 XP系统在重新启动后进不去桌面,一直黑屏。
  • ¥15 opencv图像处理,需要四个处理结果图