找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2911|回复: 5
打印 上一主题 下一主题
收起左侧

单片机模块化编程错误 C141,求纠正

[复制链接]
跳转到指定楼层
楼主
ID:168255 发表于 2018-1-16 23:28 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
DS12C887.h文件
  1. //DS12C887.h
  2. #ifndef _DS12C887_H_
  3. #define _DS12C887_H_

  4. extern void C887_write(uint8 add,uint8 datum); //错误在这行
  5. extern uint8 C887_read(uint8 add); //错误在这行
  6. extern void C887_init();
  7. extern void GetTime();

  8. #endif
复制代码

DS12C887.c文件:
  1. //DS12C887.c
  2. #include"STC89C52RC.h"
  3. #include"MacroAndConst.h"
  4. #include"DS12C887.h"

  5. void C887_write(uint8 add,uint8 datum);
  6. uint8 C887_read(uint8 add);
  7. void C887_init();
  8. void GetTime();

  9. void C887_write(uint8 add,uint8 datum)
  10. {
  11.         C887CS=0;
  12.         C887AS=1;
  13.         C887DS=1;
  14.         C887RW=1;
  15.         C887BUS=add;
  16.         C887AS=0;
  17.         C887RW=0;
  18.         C887BUS=datum;
  19.         C887RW=1;
  20.         C887AS=1;
  21.         C887CS=1;
  22.         C887BUS=0xFF;
  23. }

  24. uint8 C887_read(uint8 add)
  25. {
  26.         uint8 datum;
  27.         C887AS=1;
  28.         C887DS=1;
  29.         C887RW=1;
  30.         C887CS=0;
  31.         C887BUS=add;
  32.         C887AS=0;
  33.         C887DS=0;
  34.         C887BUS=0xff;
  35.         datum=C887BUS;
  36.         C887DS=1;
  37.         C887AS=1;
  38.         C887CS=1;
  39.         C887BUS=0xFF;
  40.         return datum;
  41. }

  42. void C887_init()
  43. {
  44.         C887_write(0x0A,0x20);                //打开振荡器
  45.         C887_write(0x0B,0x22);                //启动闹钟中断,二进制格式,24小时制
  46. }

  47. void GetTime()
  48. {
  49.         year=C887_read(0x09);
  50.         month=C887_read(0x08);
  51.         day=C887_read(0x07);
  52.         week=C887_read(0x06);
  53.         hour=C887_read(0x04);
  54.         minute=C887_read(0x02);
  55.         second=C887_read(0x00);
  56. }
复制代码


KEIL编译,报错:
compiling main.c...
CODE\DS12C887.H(5): error C141: syntax error near 'add', expected ')'
CODE\DS12C887.H(6): error C129: missing ';' before 'C887_read'

但凡有#include"DS12C887.h"的文件均报上述的错误。实在不知道哪里错了,求纠正。

评分

参与人数 1黑币 +3 收起 理由
hahahahh + 3 淡定

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:267377 发表于 2018-1-17 01:51 | 只看该作者
#ifndef _DS12C887_H_
#define _DS12C887_H_

#define uint8 int

extern void C887_write(uint8 add,uint8 datum);
extern uint8 C887_read(uint8 add);
extern void C887_init();
extern void GetTime();

#endif

评分

参与人数 1黑币 +40 收起 理由
admin + 40 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

板凳
ID:276524 发表于 2018-1-17 10:14 来自触屏版 | 只看该作者
语法错误,uint8始不是没有宏定义,#define uint8   unsignet  int
回复

使用道具 举报

地板
ID:168255 发表于 2018-1-17 12:12 来自触屏版 | 只看该作者
沧海月明 发表于 2018-1-17 10:14
语法错误,uint8始不是没有宏定义,#define uint8   unsignet  int

有的,在另一个头文件中,而且所有源文件都include了该头文件
回复

使用道具 举报

5#
ID:276524 发表于 2018-1-18 21:24 来自触屏版 | 只看该作者
DavidTesla 发表于 2018-1-17 12:12
有的,在另一个头文件中,而且所有源文件都include了该头文件

我试过了,在"DS12C887.h"中写入#define unit8 unsigned  int;你的程序就不会有那两个错误了
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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