找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

STC32G12K128不能开中断

查看数: 1708 | 评论数: 15 | 收藏 1
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2025-3-18 17:32

正文摘要:

今天遇到个莫名其妙的问题,写了个程序一切正常,最后用了个定时器开了一下EA,结果一直提示错误,确认了一下字母和符号没写错,但不知道哪里的问题,在此求教大神了。 具体问题如下: 好像不能识别EA,网上 ...

回复

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

感谢大神,确实是这样,问题解决了,不小心在字库文件里定义了一个Ea
把字库里面的Ea改了名就可以了。
ID:61140 发表于 2025-3-20 17:44
coody_sz 发表于 2025-3-19 10:32
猜测是LCD19264里面定义了Ea,这个跟EA冲突了。

谢谢大神了,问题找到了,因为这个屏是无字库的,在字库文件里定义了要显示的字母E,起的名字是Ea,所以一直出错,改成E1都正常了。
ID:227818 发表于 2025-3-19 15:31
晕,才看到是C。试试 IE |=0x80H.
ID:227818 发表于 2025-3-19 14:51
错了,是应该是 ORL IE,#080H
ID:227818 发表于 2025-3-19 14:48
EA 是IE的第7位,IE的地址是A8H,试下 ORL IE,080H
ID:227818 发表于 2025-3-19 13:11
估计是EA的值定义出问题了,看看是不是EA定义了多次,而且定义的值不一样。
ID:1034262 发表于 2025-3-19 10:32
猜测是LCD19264里面定义了Ea,这个跟EA冲突了。
ID:61140 发表于 2025-3-19 10:18

设置高试过了,无论设置高低都是一样的提示
ID:61140 发表于 2025-3-19 10:17
eb900001 发表于 2025-3-19 09:43
在 STC32G12K128 中,每个中断源都有对应的使能位,需要将这些使能位置 1 才能开启相应的中断。同时,总中 ...

我这个只是使用定时器中断,已经启用了ET0=1;
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:1121801 发表于 2025-3-19 08:31
SFR特殊寄存器在多个头文件中定义了或者是在程序中重复定义了.检查头式文件和主程序中有没有重复定义SFR特殊寄存器(或者特殊寄存器中的某个位)
ID:68189 发表于 2025-3-19 08:27
在LCD19264XS.C中没有引用STC32G的头文件导致的,引用 一下头文件,再试一下。
ID:1143523 发表于 2025-3-18 22:07
EA应该置高
ID:1143523 发表于 2025-3-18 22:06
EA没开

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

Powered by 单片机教程网

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