angus 发表于 2022-2-24 20:25:26

syntax error near ')', expected '<id>'问题怎么解决

本帖最后由 angus 于 2022-2-26 00:39 编辑

写了头文件,编译器只有seg.h报错(下按顺序附seg.h/seg.c/main.c的代码),望大佬相助!



********分割线********
seg.h


#ifndef _SEG_H_
#define _SEG_H_

#include "delay.h"
#include <REG52.H>

/*****引脚定义*****/
#define Duan_Port P0    //段码线端口
sbit digit1 = P1 ^ 0;//控制第一位数码管的引脚
sbit digit2 = P1 ^ 1;
sbit digit3 = P1 ^ 2;
sbit digit4 = P1 ^ 3;

void dis_seg(unsigned int data);//显示四位整形数据的函数

#endif



********分割线********
seg.c


#include "seg.h"
#include "delay.h"

unsigned char seg_data = {
    0xc0, // 0
    0xf9, // 1
    0xa4, // 2
    0xb0, // 3
    0x99, // 4
    0x92, // 5
    0x82, // 6
    0xf8, // 7
    0x80, // 8
    0x90, // 9
    0x88, // A
    0x83, // b
    0xc6, // c
    0xa1, // d
    0x86, // E
    0xbf, // -
};

void dis_seg(unsigned int data)//显示4位整形数据的函数
{
    Duan_Port = seg_data;//送段码到数码管
    digit1 = 0;//控制第一位数码管公共端导通电源
    delay_xms = (1);
    digit1 = 1;
    Duan_Port = 0xff;//消影

    Duan_Port = seg_data;//送段码到数码管
    digit2 = 0;//控制第一位数码管公共端导通电源
    delay_xms = (1);
    digit2 = 1;
    Duan_Port = 0xff;//消影

    Duan_Port = seg_data;//送段码到数码管
    digit3 = 0;//控制第一位数码管公共端导通电源
    delay_xms = (1);
    digit3 = 1;
    Duan_Port = 0xff;//消影

    Duan_Port = seg_data;//送段码到数码管
    digit4 = 0;//控制第一位数码管公共端导通电源
    delay_xms = (1);
    digit4 = 1;
    Duan_Port = 0xff;//消影
}



********分割线********
main.c


#include <REG52.H>
#include "delay.h"
#include "key.h"
#include "seg.h"

#define time 130


//共阴极数码管
// 0: 0x3f ;    1: 0x06 ;    2: 0x5b ;    3: 0x4f ;    4: 0x66 ;
// 5: 0x6d ;    6: 0x7d ;    7: 0x07 ;   8: 0x7f ;    9: 0x6f
char nums = {0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07, 0x7f, 0x6f};


void main()
{
    while (1)
    {   
      Duan_port = ~nums;    //送段码到数码管
      digit1 = 0;   //控制第一位数码管公共端电源导通
      delay_xms(time);
      digit1 = 1;
      Duan_port = ~0xff;

      Duan_port = ~nums;
      digit1 = 0;
      delay_xms(time);
      digit1 = 1;
      Duan_port = ~0xff;
    }
}



********分割线********

以下为报错数据

seg.h中有问题的代码为
void dis_seg(unsigned int data);

isdkz 发表于 2022-2-25 16:00:45

你这里用了全角的分号:


这里的 Duan_Port 里面的 Port 用了小写 p,你在头文件里面预定义的是大写:

angus 发表于 2022-2-25 17:29:45

本帖最后由 angus 于 2022-2-25 17:31 编辑

你好,main.c里面的Duan_Port已经解决了,全角我也改成了半角符号,但是seg.h还是报错了syntax error near ')', expected '<id>

angus 发表于 2022-2-26 00:36:16

data是C语言中表示定义数据存储区的关键字,修改之后,问题解决,感谢朋友的帮助
页: [1]
查看完整版本: syntax error near ')', expected '<id>'问题怎么解决