標題:
keil定義和聲明的問題
[打印本頁]
作者:
dajia
時間:
2015-3-21 03:14
標題:
keil定義和聲明的問題
今天調試程序的時候發(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;
就可以了
作者:
dajia
時間:
2015-3-21 03:15
今天寫程序犯了一個低級的錯誤,我在定義一個一個變量時,沒對它賦初值。我在后面直接用它,以至于程序不安我的想法走。
比如: uchar num;
num++;
我原以為num的初值為0;直接對它進行運算,其實不是這樣,num的初值應該是一個隨機的。所以,以后再定義變量的時候一定要對它賦初值
作者:
dajia
時間:
2015-3-21 03:15
今天調程序犯了一個低級錯誤,以至于程序一直不能正常運行。錯誤的原因如下:
我定義了一個全局變量,uchar型,但是我聲明的時候卻是把它聲明成uint型的了,所以程序一直跑偏。
提醒:在使用EEPROM之前最好先對eeprom清0.
作者:
dajia
時間:
2015-3-21 03:15
今天又犯了一個低級錯誤。調試的時候在寫函數(shù)的參數(shù)時,只把變量名寫上了,沒有寫函數(shù)的類型,很操蛋。一直沒有調出來,下次一定要注意:在定義函數(shù)的時候,如果函數(shù)有參數(shù),那一定要定義好參數(shù)的類型,比如:int,char等
作者:
dajia
時間:
2015-3-21 03:16
昨天調試eeprom一直沒調好,今天早上終于調好了,原來每次往eeprom里面寫數(shù)據(jù)的話都要先寫入一個寫使能指令,而我原來只是認為只要加在寫之前加一次寫使能就行,以后寫的數(shù)據(jù)都不用再加些使能指令了。其實每次寫數(shù)據(jù)都要加寫使能指令。
并且往eeprom里寫完數(shù)據(jù)后必須要延時一段時間才能讀出正確的數(shù)據(jù)。
作者:
dajia
時間:
2015-3-21 03:16
今天調了一個程序,發(fā)現(xiàn)程序一直不按我的思路走,仔細一看,原來是我原來定義了一個函數(shù),init_spi();這個函數(shù)我原來寫過,但是現(xiàn)在把它刪除了,但是我在main函數(shù)里還在調用它,但是編譯器還沒報錯,所以程序就一直走不動,就停留在init_spi()這個函數(shù)上了
作者:
mybigapple
時間:
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模式編譯通過,但程序不運行。郁悶中、、、、、、
歡迎光臨 (http://www.torrancerestoration.com/bbs/)
Powered by Discuz! X3.1