找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 670|回复: 15
收起左侧

STC32G12K128不能开中断

[复制链接]
ID:61140 发表于 2025-3-18 17:32 | 显示全部楼层 |阅读模式
今天遇到个莫名其妙的问题,写了个程序一切正常,最后用了个定时器开了一下EA,结果一直提示错误,确认了一下字母和符号没写错,但不知道哪里的问题,在此求教大神了。
具体问题如下:
定时器.png
最后开总中断,但是出现如下提示:
错误.png

好像不能识别EA,网上也打不到答案,在此请教各位大神了

回复

使用道具 举报

ID:1143523 发表于 2025-3-18 22:06 | 显示全部楼层
EA没开
回复

使用道具 举报

ID:1143523 发表于 2025-3-18 22:07 | 显示全部楼层
EA应该置高
回复

使用道具 举报

ID:68189 发表于 2025-3-19 08:27 | 显示全部楼层
在LCD19264XS.C中没有引用STC32G的头文件导致的,引用 一下头文件,再试一下。
回复

使用道具 举报

ID:1121801 发表于 2025-3-19 08:31 | 显示全部楼层
SFR特殊寄存器在多个头文件中定义了或者是在程序中重复定义了.检查头式文件和主程序中有没有重复定义SFR特殊寄存器(或者特殊寄存器中的某个位)
回复

使用道具 举报

ID:45026 发表于 2025-3-19 09:43 | 显示全部楼层
在 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。
回复

使用道具 举报

ID:61140 发表于 2025-3-19 10:17 | 显示全部楼层
eb900001 发表于 2025-3-19 09:43
在 STC32G12K128 中,每个中断源都有对应的使能位,需要将这些使能位置 1 才能开启相应的中断。同时,总中 ...

我这个只是使用定时器中断,已经启用了ET0=1;
回复

使用道具 举报

ID:61140 发表于 2025-3-19 10:18 | 显示全部楼层

设置高试过了,无论设置高低都是一样的提示
回复

使用道具 举报

ID:61140 发表于 2025-3-19 10:20 | 显示全部楼层
wpppmlah 发表于 2025-3-19 08:27
在LCD19264XS.C中没有引用STC32G的头文件导致的,引用 一下头文件,再试一下。

程序.png
引用了头文件了
回复

使用道具 举报

ID:1034262 发表于 2025-3-19 10:32 | 显示全部楼层
猜测是LCD19264里面定义了Ea,这个跟EA冲突了。
回复

使用道具 举报

ID:227818 发表于 2025-3-19 13:11 | 显示全部楼层
估计是EA的值定义出问题了,看看是不是EA定义了多次,而且定义的值不一样。
回复

使用道具 举报

ID:227818 发表于 2025-3-19 14:48 | 显示全部楼层
EA 是IE的第7位,IE的地址是A8H,试下 ORL IE,080H
回复

使用道具 举报

ID:227818 发表于 2025-3-19 14:51 | 显示全部楼层
错了,是应该是 ORL IE,#080H
回复

使用道具 举报

ID:227818 发表于 2025-3-19 15:31 | 显示全部楼层
晕,才看到是C。试试 IE |=0x80H.
回复

使用道具 举报

ID:61140 发表于 2025-3-20 17:44 | 显示全部楼层
coody_sz 发表于 2025-3-19 10:32
猜测是LCD19264里面定义了Ea,这个跟EA冲突了。

谢谢大神了,问题找到了,因为这个屏是无字库的,在字库文件里定义了要显示的字母E,起的名字是Ea,所以一直出错,改成E1都正常了。
回复

使用道具 举报

ID:61140 发表于 2025-3-20 18:27 | 显示全部楼层
newlined 发表于 2025-3-19 13:11
估计是EA的值定义出问题了,看看是不是EA定义了多次,而且定义的值不一样。

感谢大神,确实是这样,问题解决了,不小心在字库文件里定义了一个Ea
把字库里面的Ea改了名就可以了。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表