找回密码
 立即注册

QQ登录

只需一步,快速开始

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

用单片机+74hc595芯片驱动问题 程序编译报错重定义

[复制链接]
跳转到指定楼层
楼主
ID:1003872 发表于 2022-1-30 19:10 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
大佬们,帮忙看一下我的错误之处,感激不尽~~

错误描述:hc595_drive.c文件中出现重定义报错

all.png (50.65 KB, 下载次数: 66)

其他文件

其他文件

drive.c.png (145.75 KB, 下载次数: 67)

错误文件

错误文件

drive.h.png (129.28 KB, 下载次数: 72)

其他文件

其他文件

main.png (103.44 KB, 下载次数: 73)

其他文件

其他文件

数码管.rar

34.66 KB, 下载次数: 5

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

使用道具 举报

沙发
ID:824490 发表于 2022-1-31 09:35 | 只看该作者
.h文件的格式错了。

#ifndef     __HC595_H_     //文件名全大写,前面两个“_”,后边一个"_",文件名中间的“.”也要改成"_",
#define     __HC595_H_     


#endif   


最后一行还要以空白行出现,全空的,不要有任何字符!你可以在末2行最后打入一个回车,末行就是全空的了

回复

使用道具 举报

板凳
ID:824490 发表于 2022-1-31 09:51 | 只看该作者
hc595_driver.c这个文件居然没有include对应的文件hc595_driver.h,而是绕一大圈include “all.h”,
再在“all.h”中include  “hc595_driver.c”。。我醉了。。。

在“all.h”中居然在include字段中插入宏定义,

extern 在用法似乎也有问题,晕了,,你这个文件结构有点乱。。。

我也不知这样行不行,反正是看不顺眼。。
回复

使用道具 举报

地板
ID:824490 发表于 2022-1-31 11:33 | 只看该作者
我帮你改了一下,没有报错了,你试试看看。

WQX15框架式编程.rar (48.41 KB, 下载次数: 10)

Build target 'Target 1'
linking...
Program Size: data=12.0 xdata=0 code=224
creating hex file from "WQX-15框架式编程"...
"WQX-15框架式编程" - 0 Error(s), 0 Warning(s).


回复

使用道具 举报

5#
ID:1003872 发表于 2022-1-31 14:05 来自手机 | 只看该作者
名字不是重点 发表于 2022-1-31 11:33
我帮你改了一下,没有报错了,你试试看看。



谢谢大哥帮忙解决问题,祝大哥新年快乐。
ifndef的格式问题我研究过,只要开头不是数字就可以,我这个写的是有点不标准。
文件结构我是根据网上的视频教程来写的,老师的说法是用all.h可以省事,不用每个.c都加很多头文件。
插入宏定义这个没注意,当时看的c语言书里也没详细介绍这个问题。
新手小白学习这个好困难~
回复

使用道具 举报

6#
ID:1003872 发表于 2022-2-1 13:49 | 只看该作者
再次感谢大佬手把手帮忙改代码,学习到了不少,以后写代码应该多注意规范
我又重新看了下代码,发现原来的错误之处是hc595_drive.h文件里声明  extern u16 data hc595_data[2];错了
应改为extern u16 xdata hc595_data[2];
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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