以前寫了一個測試程序,昨晚上想把測試程序在改進時候,發(fā)現(xiàn)我多增加一個全局變量 unsigned int flag; //定義一個全局變量 ,燒寫到單片機。。單片機運行時候。LCD 顯示就正常了。測量到的數(shù)據(jù)也顯示不了, 反復測試好多次, 發(fā)現(xiàn)問題就在這句: unsigned int flag; //定義一個全局變量 多定義一個就出現(xiàn)錯誤。 我百思不得其解。。 最后我只有請教了一些朋友,一些有經(jīng)驗的朋友很快就知道問題出在哪里了。 是單片機的RAM 不夠了。 因為我的這個程序比較大,涉及全局變量用到的比較多,超出范圍了。KEIL有三種存儲模式SMALL,COMPACT,LARGE. 默認存儲模式是SMALL , 默認就把所有的變量都放在RAM里面,這樣訪問速度是最快,但是適合小程序, 我的RAM 只有1280字節(jié) 。是不夠的。所以要選擇large模式,該模式空間大,可存變量多,但是訪問速度相對于比較慢。 所以。。只要把 KEIL Memory Model 設置為:large 即可。
OK ,人多力量大。。 問題就這樣解決了。 所以,做個記錄。 讓看過這篇文章的人,下次遇到這樣問題,也可以試試這個方法。