找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 5511|回復: 6
打印 上一主題 下一主題
收起左側

keil定義和聲明的問題

[復制鏈接]
跳轉到指定樓層
樓主
ID:74985 發(fā)表于 2015-3-21 03:14 | 只看該作者 回帖獎勵 |正序瀏覽 |閱讀模式
今天調(diào)試程序的時候發(fā)現(xiàn)寫完程序keil直接編譯不動了,后來才找到原因:還是定義和聲明的問題。
我是這樣定義的
code uchar *fangjian="房間";
code uchar *danyuan="單元";
code uchar *loudong="樓棟";
code uchar *help="有火情,請速來支援";
我是這樣聲明的:
extern code uchar *fangjian="房間";
extern code uchar *danyuan="單元";
extern code uchar *loudong="樓棟";
extern  code uchar *help="有火情,請速來支援";
這樣編譯器直接無法編譯,后來我有改成這樣聲明
extern code uchar *fangjian;
        extern code uchar *danyuan;
        extern code uchar *loudong;
        extern code uchar *help;
就可以了


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

7#
ID:43559 發(fā)表于 2015-3-21 08:12 | 只看該作者
我遇到的問題是這樣的:在Keil里選擇Large模式,編譯是通過了。
可是程序不好使了。生成的HEX文件燒錄進單片機也不干活了。
又試了下選擇Compact模式編譯,一樣不干活。
只有Small模式的hex文件好用。但可是有時在Small模式就是編譯不過。有如下提示

ERROR L107: ADDRESS SPACE OVERFLOW
SPACE: DATA
SEGMENT: ?DT?_WRITEONECHAR?DS18B20
LENGTH: 0002H

在Large模式和Compact模式編譯通過,但程序不運行。郁悶中、、、、、、
回復

使用道具 舉報

6#
ID:74985 發(fā)表于 2015-3-21 03:16 | 只看該作者
今天調(diào)了一個程序,發(fā)現(xiàn)程序一直不按我的思路走,仔細一看,原來是我原來定義了一個函數(shù),init_spi();這個函數(shù)我原來寫過,但是現(xiàn)在把它刪除了,但是我在main函數(shù)里還在調(diào)用它,但是編譯器還沒報錯,所以程序就一直走不動,就停留在init_spi()這個函數(shù)上了
回復

使用道具 舉報

5#
ID:74985 發(fā)表于 2015-3-21 03:16 | 只看該作者
昨天調(diào)試eeprom一直沒調(diào)好,今天早上終于調(diào)好了,原來每次往eeprom里面寫數(shù)據(jù)的話都要先寫入一個寫使能指令,而我原來只是認為只要加在寫之前加一次寫使能就行,以后寫的數(shù)據(jù)都不用再加些使能指令了。其實每次寫數(shù)據(jù)都要加寫使能指令。
并且往eeprom里寫完數(shù)據(jù)后必須要延時一段時間才能讀出正確的數(shù)據(jù)。
回復

使用道具 舉報

地板
ID:74985 發(fā)表于 2015-3-21 03:15 | 只看該作者
今天又犯了一個低級錯誤。調(diào)試的時候在寫函數(shù)的參數(shù)時,只把變量名寫上了,沒有寫函數(shù)的類型,很操蛋。一直沒有調(diào)出來,下次一定要注意:在定義函數(shù)的時候,如果函數(shù)有參數(shù),那一定要定義好參數(shù)的類型,比如:int,char等
回復

使用道具 舉報

板凳
ID:74985 發(fā)表于 2015-3-21 03:15 | 只看該作者
今天調(diào)程序犯了一個低級錯誤,以至于程序一直不能正常運行。錯誤的原因如下:
我定義了一個全局變量,uchar型,但是我聲明的時候卻是把它聲明成uint型的了,所以程序一直跑偏。

提醒:在使用EEPROM之前最好先對eeprom清0.
回復

使用道具 舉報

沙發(fā)
ID:74985 發(fā)表于 2015-3-21 03:15 | 只看該作者
今天寫程序犯了一個低級的錯誤,我在定義一個一個變量時,沒對它賦初值。我在后面直接用它,以至于程序不安我的想法走。
比如: uchar num;
            num++;
我原以為num的初值為0;直接對它進行運算,其實不是這樣,num的初值應該是一個隨機的。所以,以后再定義變量的時候一定要對它賦初值
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

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

快速回復 返回頂部 返回列表