![]() |
發布時間: 2025-3-18 17:32
正文摘要:今天遇到個莫名其妙的問題,寫了個程序一切正常,最后用了個定時器開了一下EA,結果一直提示錯誤,確認了一下字母和符號沒寫錯,但不知道哪里的問題,在此求教大神了。 具體問題如下: 好像不能識別EA,網上 ... |
newlined 發表于 2025-3-19 13:11 感謝大神,確實是這樣,問題解決了,不小心在字庫文件里定義了一個Ea 把字庫里面的Ea改了名就可以了。 |
coody_sz 發表于 2025-3-19 10:32 謝謝大神了,問題找到了,因為這個屏是無字庫的,在字庫文件里定義了要顯示的字母E,起的名字是Ea,所以一直出錯,改成E1都正常了。 |
暈,才看到是C。試試 IE |=0x80H. |
錯了,是應該是 ORL IE,#080H |
EA 是IE的第7位,IE的地址是A8H,試下 ORL IE,080H |
估計是EA的值定義出問題了,看看是不是EA定義了多次,而且定義的值不一樣。 |
猜測是LCD19264里面定義了Ea,這個跟EA沖突了。 |
denghe 發表于 2025-3-18 22:07 設置高試過了,無論設置高低都是一樣的提示 |
eb900001 發表于 2025-3-19 09:43 我這個只是使用定時器中斷,已經啟用了ET0=1; |
在 STC32G12K128 中,每個中斷源都有對應的使能位,需要將這些使能位置 1 才能開啟相應的中斷。同時,總中斷使能位 EA 也需要置 1。 void main() { // 開啟外部中斷0 IT0 = 0; // 設置外部中斷0為低電平觸發 EX0 = 1; // 使能外部中斷0 EA = 1; // 使能總中斷 while(1) { // 主循環代碼 } } // 外部中斷0服務函數 void INT0_ISR() interrupt 0 { // 中斷處理代碼 } EX0是外部中斷 0 的使能位,EA是總中斷使能位。要確保這些位被正確置 1。 |
SFR特殊寄存器在多個頭文件中定義了或者是在程序中重復定義了.檢查頭式文件和主程序中有沒有重復定義SFR特殊寄存器(或者特殊寄存器中的某個位) |
在LCD19264XS.C中沒有引用STC32G的頭文件導致的,引用 一下頭文件,再試一下。 |
EA應該置高 |
EA沒開 |