標(biāo)題: 用單片機(jī)+74hc595芯片驅(qū)動(dòng)問題 程序編譯報(bào)錯(cuò)重定義 [打印本頁]

作者: pluskent    時(shí)間: 2022-1-30 19:10
標(biāo)題: 用單片機(jī)+74hc595芯片驅(qū)動(dòng)問題 程序編譯報(bào)錯(cuò)重定義
大佬們,幫忙看一下我的錯(cuò)誤之處,感激不盡~~

錯(cuò)誤描述:hc595_drive.c文件中出現(xiàn)重定義報(bào)錯(cuò)

all.png (50.65 KB, 下載次數(shù): 66)

其他文件

其他文件

drive.c.png (145.75 KB, 下載次數(shù): 67)

錯(cuò)誤文件

錯(cuò)誤文件

drive.h.png (129.28 KB, 下載次數(shù): 72)

其他文件

其他文件

main.png (103.44 KB, 下載次數(shù): 73)

其他文件

其他文件

數(shù)碼管.rar

34.66 KB, 下載次數(shù): 5


作者: 名字不是重點(diǎn)    時(shí)間: 2022-1-31 09:35
.h文件的格式錯(cuò)了。

#ifndef     __HC595_H_     //文件名全大寫,前面兩個(gè)“_”,后邊一個(gè)"_",文件名中間的“.”也要改成"_",
#define     __HC595_H_     


#endif   


最后一行還要以空白行出現(xiàn),全空的,不要有任何字符!你可以在末2行最后打入一個(gè)回車,末行就是全空的了


作者: 名字不是重點(diǎn)    時(shí)間: 2022-1-31 09:51
hc595_driver.c這個(gè)文件居然沒有include對(duì)應(yīng)的文件hc595_driver.h,而是繞一大圈include “all.h”,
再在“all.h”中include  “hc595_driver.c”。。我醉了。。。

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

extern 在用法似乎也有問題,暈了,,你這個(gè)文件結(jié)構(gòu)有點(diǎn)亂。。。

我也不知這樣行不行,反正是看不順眼。。

作者: 名字不是重點(diǎn)    時(shí)間: 2022-1-31 11:33
我?guī)湍愀牧艘幌,沒有報(bào)錯(cuò)了,你試試看看。

WQX15框架式編程.rar (48.41 KB, 下載次數(shù): 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).



作者: pluskent    時(shí)間: 2022-1-31 14:05
名字不是重點(diǎn) 發(fā)表于 2022-1-31 11:33
我?guī)湍愀牧艘幌,沒有報(bào)錯(cuò)了,你試試看看。



謝謝大哥幫忙解決問題,祝大哥新年快樂。
ifndef的格式問題我研究過,只要開頭不是數(shù)字就可以,我這個(gè)寫的是有點(diǎn)不標(biāo)準(zhǔn)。
文件結(jié)構(gòu)我是根據(jù)網(wǎng)上的視頻教程來寫的,老師的說法是用all.h可以省事,不用每個(gè).c都加很多頭文件。
插入宏定義這個(gè)沒注意,當(dāng)時(shí)看的c語言書里也沒詳細(xì)介紹這個(gè)問題。
新手小白學(xué)習(xí)這個(gè)好困難~
作者: pluskent    時(shí)間: 2022-2-1 13:49
再次感謝大佬手把手幫忙改代碼,學(xué)習(xí)到了不少,以后寫代碼應(yīng)該多注意規(guī)范
我又重新看了下代碼,發(fā)現(xiàn)原來的錯(cuò)誤之處是hc595_drive.h文件里聲明  extern u16 data hc595_data[2];錯(cuò)了
應(yīng)改為extern u16 xdata hc595_data[2];




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1