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

QQ登錄

只需一步,快速開始

搜索
查看: 657|回復(fù): 15
收起左側(cè)

STC32G12K128不能開中斷

[復(fù)制鏈接]
ID:61140 發(fā)表于 2025-3-18 17:32 | 顯示全部樓層 |閱讀模式
今天遇到個(gè)莫名其妙的問題,寫了個(gè)程序一切正常,最后用了個(gè)定時(shí)器開了一下EA,結(jié)果一直提示錯(cuò)誤,確認(rèn)了一下字母和符號(hào)沒寫錯(cuò),但不知道哪里的問題,在此求教大神了。
具體問題如下:
定時(shí)器.png
最后開總中斷,但是出現(xiàn)如下提示:
錯(cuò)誤.png

好像不能識(shí)別EA,網(wǎng)上也打不到答案,在此請(qǐng)教各位大神了

回復(fù)

使用道具 舉報(bào)

ID:1143523 發(fā)表于 2025-3-18 22:06 | 顯示全部樓層
EA沒開
回復(fù)

使用道具 舉報(bào)

ID:1143523 發(fā)表于 2025-3-18 22:07 | 顯示全部樓層
EA應(yīng)該置高
回復(fù)

使用道具 舉報(bào)

ID:68189 發(fā)表于 2025-3-19 08:27 | 顯示全部樓層
在LCD19264XS.C中沒有引用STC32G的頭文件導(dǎo)致的,引用 一下頭文件,再試一下。
回復(fù)

使用道具 舉報(bào)

ID:1121801 發(fā)表于 2025-3-19 08:31 | 顯示全部樓層
SFR特殊寄存器在多個(gè)頭文件中定義了或者是在程序中重復(fù)定義了.檢查頭式文件和主程序中有沒有重復(fù)定義SFR特殊寄存器(或者特殊寄存器中的某個(gè)位)
回復(fù)

使用道具 舉報(bào)

ID:45026 發(fā)表于 2025-3-19 09:43 | 顯示全部樓層
在 STC32G12K128 中,每個(gè)中斷源都有對(duì)應(yīng)的使能位,需要將這些使能位置 1 才能開啟相應(yīng)的中斷。同時(shí),總中斷使能位 EA 也需要置 1。
void main()
{
    // 開啟外部中斷0
    IT0 = 0; // 設(shè)置外部中斷0為低電平觸發(fā)
    EX0 = 1; // 使能外部中斷0
    EA = 1;  // 使能總中斷

    while(1)
    {
        // 主循環(huán)代碼
    }
}

// 外部中斷0服務(wù)函數(shù)
void INT0_ISR() interrupt 0
{
    // 中斷處理代碼
}
EX0是外部中斷 0 的使能位,EA是總中斷使能位。要確保這些位被正確置 1。
回復(fù)

使用道具 舉報(bào)

ID:61140 發(fā)表于 2025-3-19 10:17 | 顯示全部樓層
eb900001 發(fā)表于 2025-3-19 09:43
在 STC32G12K128 中,每個(gè)中斷源都有對(duì)應(yīng)的使能位,需要將這些使能位置 1 才能開啟相應(yīng)的中斷。同時(shí),總中 ...

我這個(gè)只是使用定時(shí)器中斷,已經(jīng)啟用了ET0=1;
回復(fù)

使用道具 舉報(bào)

ID:61140 發(fā)表于 2025-3-19 10:18 | 顯示全部樓層

設(shè)置高試過了,無論設(shè)置高低都是一樣的提示
回復(fù)

使用道具 舉報(bào)

ID:61140 發(fā)表于 2025-3-19 10:20 | 顯示全部樓層
wpppmlah 發(fā)表于 2025-3-19 08:27
在LCD19264XS.C中沒有引用STC32G的頭文件導(dǎo)致的,引用 一下頭文件,再試一下。

程序.png
引用了頭文件了
回復(fù)

使用道具 舉報(bào)

ID:1034262 發(fā)表于 2025-3-19 10:32 | 顯示全部樓層
猜測(cè)是LCD19264里面定義了Ea,這個(gè)跟EA沖突了。
回復(fù)

使用道具 舉報(bào)

ID:227818 發(fā)表于 2025-3-19 13:11 | 顯示全部樓層
估計(jì)是EA的值定義出問題了,看看是不是EA定義了多次,而且定義的值不一樣。
回復(fù)

使用道具 舉報(bào)

ID:227818 發(fā)表于 2025-3-19 14:48 | 顯示全部樓層
EA 是IE的第7位,IE的地址是A8H,試下 ORL IE,080H
回復(fù)

使用道具 舉報(bào)

ID:227818 發(fā)表于 2025-3-19 14:51 | 顯示全部樓層
錯(cuò)了,是應(yīng)該是 ORL IE,#080H
回復(fù)

使用道具 舉報(bào)

ID:227818 發(fā)表于 2025-3-19 15:31 | 顯示全部樓層
暈,才看到是C。試試 IE |=0x80H.
回復(fù)

使用道具 舉報(bào)

ID:61140 發(fā)表于 2025-3-20 17:44 | 顯示全部樓層
coody_sz 發(fā)表于 2025-3-19 10:32
猜測(cè)是LCD19264里面定義了Ea,這個(gè)跟EA沖突了。

謝謝大神了,問題找到了,因?yàn)檫@個(gè)屏是無字庫的,在字庫文件里定義了要顯示的字母E,起的名字是Ea,所以一直出錯(cuò),改成E1都正常了。
回復(fù)

使用道具 舉報(bào)

ID:61140 發(fā)表于 2025-3-20 18:27 | 顯示全部樓層
newlined 發(fā)表于 2025-3-19 13:11
估計(jì)是EA的值定義出問題了,看看是不是EA定義了多次,而且定義的值不一樣。

感謝大神,確實(shí)是這樣,問題解決了,不小心在字庫文件里定義了一個(gè)Ea
把字庫里面的Ea改了名就可以了。
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

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