鱼C论坛

 找回密码
 立即注册
查看: 5181|回复: 3

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

[复制链接]
发表于 2022-2-24 20:25:26 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 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[16] = {
    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[data/1000%10];//送段码到数码管
    digit1 = 0;//控制第一位数码管公共端导通电源
    delay_xms = (1);
    digit1 = 1;
    Duan_Port = 0xff;//消影

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

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

    Duan_Port = seg_data[data%10];//送段码到数码管
    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[10] = {0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07, 0x7f, 0x6f};


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

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



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

以下为报错数据

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

1645705660(1).jpg
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-2-25 16:00:45 | 显示全部楼层
你这里用了全角的分号:
捕获.PNG

这里的 Duan_Port 里面的 Port 用了小写 p,你在头文件里面预定义的是大写:
捕获13.PNG
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2022-2-25 17:29:45 | 显示全部楼层
本帖最后由 angus 于 2022-2-25 17:31 编辑

你好,main.c里面的Duan_Port已经解决了,全角我也改成了半角符号,但是seg.h还是报错了syntax error near ')', expected '<id> 1645781429(1).jpg
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-2-26 00:36:16 | 显示全部楼层
data是C语言中表示定义数据存储区的关键字,修改之后,问题解决,感谢朋友的帮助
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-12-22 15:33

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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