找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 3200|回復(fù): 13
打印 上一主題 下一主題
收起左側(cè)

請(qǐng)教一個(gè)C語(yǔ)言的問題:函數(shù)放在不同文件里引起的問題

  [復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:245053 發(fā)表于 2021-6-24 10:32 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
今天出現(xiàn)一個(gè)奇怪的問題,一個(gè)寫EEPROM的寫函數(shù)放在其他文件里調(diào)用會(huì)導(dǎo)致寫數(shù)據(jù)不成功。放在main函數(shù)里調(diào)用則可以寫進(jìn)數(shù)據(jù)。這是什么意思,以前也遇到過類似的問題。。。。
看了一下編譯結(jié)果,也編譯進(jìn)去,沒被優(yōu)化啊
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:943394 發(fā)表于 2021-6-24 10:49 來自手機(jī) | 只看該作者
可以看看這個(gè),http://www.cnblogs.com/lycstronger/p/4195559.html
回復(fù)

使用道具 舉報(bào)

板凳
ID:592807 發(fā)表于 2021-6-24 10:51 | 只看該作者
會(huì)不會(huì)是中斷導(dǎo)致時(shí)序錯(cuò)亂,寫數(shù)據(jù)時(shí)把所有中斷關(guān)了。
回復(fù)

使用道具 舉報(bào)

地板
ID:844772 發(fā)表于 2021-6-24 11:32 | 只看該作者
你寫不成功,是寫不了還是寫的不對(duì)?
寫的不對(duì):就注意多個(gè)C文件編譯時(shí),全局變量要加extern。
寫不了:可能是函數(shù)聲明問題。
如果其他方式解決的,別忘說一下咋解決的啊。
回復(fù)

使用道具 舉報(bào)

5#
ID:410516 發(fā)表于 2021-6-24 11:47 | 只看該作者
定義過的函數(shù)在其他文件使用要先引用聲明,就像使用memset()庫(kù)函數(shù)時(shí) 先用引用頭文件string.h
回復(fù)

使用道具 舉報(bào)

6#
ID:410516 發(fā)表于 2021-6-24 11:48 | 只看該作者
另外單片機(jī)內(nèi)部的EEPROM,寫入前必須先擦除扇區(qū)才能寫入成功
回復(fù)

使用道具 舉報(bào)

7#
ID:160500 發(fā)表于 2021-6-24 14:19 | 只看該作者
函數(shù)聲明原型是不是匹配,同一個(gè)名字被多個(gè)函數(shù)使用
回復(fù)

使用道具 舉報(bào)

8#
ID:245053 發(fā)表于 2021-6-24 17:40 | 只看該作者
本帖最后由 pcf2000 于 2021-6-24 17:43 編輯
glinfei 發(fā)表于 2021-6-24 11:32
你寫不成功,是寫不了還是寫的不對(duì)?
寫的不對(duì):就注意多個(gè)C文件編譯時(shí),全局變量要加extern。
寫不了: ...

查找了一下原因,目前發(fā)現(xiàn)是,執(zhí)行了讀數(shù)據(jù)操作,緊接著后面寫數(shù)據(jù)操作就不能寫進(jìn)數(shù)據(jù)了;前面不執(zhí)行讀數(shù)據(jù)操作,則后面可以寫進(jìn)數(shù)據(jù);但沒找到問題在哪里!
回復(fù)

使用道具 舉報(bào)

9#
ID:245053 發(fā)表于 2021-6-24 17:41 | 只看該作者
查找了一下原因,目前暫時(shí)發(fā)現(xiàn)是,執(zhí)行了讀數(shù)據(jù),緊接著后面寫數(shù)據(jù)就不能寫進(jìn)數(shù)據(jù),但沒找到問題在哪里!,有點(diǎn)奇怪
回復(fù)

使用道具 舉報(bào)

10#
ID:245053 發(fā)表于 2021-6-24 17:41 | 只看該作者
ShadowOfNothing 發(fā)表于 2021-6-24 11:48
另外單片機(jī)內(nèi)部的EEPROM,寫入前必須先擦除扇區(qū)才能寫入成功

外部的EEPROM  IC
回復(fù)

使用道具 舉報(bào)

11#
ID:943857 發(fā)表于 2021-6-24 18:03 來自手機(jī) | 只看該作者
那個(gè)調(diào)用的時(shí)候可以會(huì)因?yàn)槟阕兞康脑O(shè)置原因,部分變量不能被用
回復(fù)

使用道具 舉報(bào)

12#
ID:245053 發(fā)表于 2021-6-25 10:11 | 只看該作者
菇?jīng)霆q在 發(fā)表于 2021-6-24 18:03
那個(gè)調(diào)用的時(shí)候可以會(huì)因?yàn)槟阕兞康脑O(shè)置原因,部分變量不能被用

前面執(zhí)行了一次讀數(shù)據(jù)操作,后面的寫數(shù)據(jù)操作就不成功,調(diào)試跟蹤了一下,發(fā)現(xiàn)是在寫數(shù)據(jù)操作過程,寫地址應(yīng)答出錯(cuò)退出了
做了一個(gè)這樣的測(cè)試,前面的讀數(shù)據(jù)操作執(zhí)行2次,則后面寫數(shù)據(jù)就成功了,沒搞懂怎么回事,難道是時(shí)序有問題?!
回復(fù)

使用道具 舉報(bào)

13#
ID:123289 發(fā)表于 2021-6-25 14:24 | 只看該作者
先讀通EEPROM的操作原理。
回復(fù)

使用道具 舉報(bào)

14#
ID:449396 發(fā)表于 2021-6-25 16:26 | 只看該作者
函數(shù)掉用子函數(shù)要放在同一個(gè)根目錄下,不然就會(huì)出現(xiàn)掉用錯(cuò)誤
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表