找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1700|回复: 15
打印 上一主题 下一主题
收起左侧

STC32G12K128不能开中断

[复制链接]
跳转到指定楼层
楼主
今天遇到个莫名其妙的问题,写了个程序一切正常,最后用了个定时器开了一下EA,结果一直提示错误,确认了一下字母和符号没写错,但不知道哪里的问题,在此求教大神了。
具体问题如下:

最后开总中断,但是出现如下提示:


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

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享淘帖 顶 踩
回复

使用道具 举报

沙发
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的头文件导致的,引用 一下头文件,再试一下。
回复

使用道具 举报

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

使用道具 举报

6#
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。
回复

使用道具 举报

7#
ID:61140 发表于 2025-3-19 10:17 | 只看该作者
eb900001 发表于 2025-3-19 09:43
在 STC32G12K128 中,每个中断源都有对应的使能位,需要将这些使能位置 1 才能开启相应的中断。同时,总中 ...

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

使用道具 举报

8#
ID:61140 发表于 2025-3-19 10:18 | 只看该作者

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

使用道具 举报

9#
ID:61140 发表于 2025-3-19 10:20 | 只看该作者
wpppmlah 发表于 2025-3-19 08:27
在LCD19264XS.C中没有引用STC32G的头文件导致的,引用 一下头文件,再试一下。


引用了头文件了
回复

使用道具 举报

10#
ID:1034262 发表于 2025-3-19 10:32 | 只看该作者
猜测是LCD19264里面定义了Ea,这个跟EA冲突了。
回复

使用道具 举报

11#
ID:227818 发表于 2025-3-19 13:11 | 只看该作者
估计是EA的值定义出问题了,看看是不是EA定义了多次,而且定义的值不一样。
回复

使用道具 举报

12#
ID:227818 发表于 2025-3-19 14:48 | 只看该作者
EA 是IE的第7位,IE的地址是A8H,试下 ORL IE,080H
回复

使用道具 举报

13#
ID:227818 发表于 2025-3-19 14:51 | 只看该作者
错了,是应该是 ORL IE,#080H
回复

使用道具 举报

14#
ID:227818 发表于 2025-3-19 15:31 | 只看该作者
晕,才看到是C。试试 IE |=0x80H.
回复

使用道具 举报

15#
ID:61140 发表于 2025-3-20 17:44 | 只看该作者
coody_sz 发表于 2025-3-19 10:32
猜测是LCD19264里面定义了Ea,这个跟EA冲突了。

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

使用道具 举报

16#
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 单片机教程网

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