找回密码
 立即注册
查看: 166|回复: 8

15F2K61S2型号单片机为什么中断程序一进入,IO引脚直接被拉高

[复制链接]
  • 打卡等级:初来乍到
  • 打卡总天数:2
  • 最近打卡:2025-03-21 17:15:04
已绑定手机

1

主题

2

回帖

17

积分

新手上路

积分
17
发表于 2025-3-18 19:03:30 | 显示全部楼层 |阅读模式

15F2K61S2型号单片机为什么中断程序一进入,IO引脚直接被拉高

中断程序

中断程序

逻辑分析仪测量结果

逻辑分析仪测量结果

回复

使用道具 举报 送花

3

主题

1160

回帖

1031

积分

等待验证会员

积分
1031
发表于 2025-3-18 19:08:00 | 显示全部楼层
关于STC15F2K61S2单片机在进入中断时IO引脚被拉高的问题,可能由以下原因引起:<br><br>1. 中断服务程序(ISR)未正确配置:在进入中断时,若未正确处理IO口状态,可能导致引脚状态发生变化。建议检查ISR中是否有对IO口进行误操作,如直接赋值或未保存/恢复寄存器状态。<br><br>2. IO口模式配置错误:STC15F2K61S2的IO口可配置为推挽输出、开漏输出或输入模式。若配置为推挽输出且未正确初始化,进入中断时可能导致引脚被拉高。请检查相关寄存器的配置,确保IO口模式正确。<br><br>3. 中断优先级或嵌套问题:若中断嵌套或优先级处理不当,可能导致程序执行顺序异常,从而影响IO口状态。建议检查中断优先级设置,避免不必要的嵌套。<br><br>4. 硬件干扰或电源问题:电源不稳定或外部干扰也可能导致IO口状态异常。建议检查电源质量及外部电路是否存在干扰源。<br><br>综上所述,建议从软件配置和硬件环境两方面排查问题,确保中断程序和IO口配置正确无误。<br><br>[本文内容由国芯人工智能辅助生成,仅供参考]
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:54
  • 最近打卡:2025-05-01 09:07:55

717

主题

1万

回帖

1万

积分

管理员

积分
15613
发表于 2025-3-18 21:15:43 | 显示全部楼层
截图202503182115293633.jpg



void Timer0_Isr(void) interrupt 1
{
}

void Timer0_Init(void)                //10毫秒@12.000MHz
{
        AUXR &= 0x7F;                        //定时器时钟12T模式
        TMOD &= 0xF0;                        //设置定时器模式
        TL0 = 0xF0;                                //设置定时初始值
        TH0 = 0xD8;                                //设置定时初始值
        TF0 = 0;                                //清除TF0标志
        TR0 = 1;                                //定时器0开始计时
        ET0 = 1;                                //使能定时器0中断
}


回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:54
  • 最近打卡:2025-05-01 09:07:55

717

主题

1万

回帖

1万

积分

管理员

积分
15613
发表于 2025-3-18 21:16:41 | 显示全部楼层
截图202503182116283425.jpg



void Timer1_Isr(void) interrupt 3
{
}

void Timer1_Init(void)                //1毫秒@12.000MHz
{
        AUXR |= 0x40;                        //定时器时钟1T模式
        TMOD &= 0x0F;                        //设置定时器模式
        TL1 = 0x20;                                //设置定时初始值
        TH1 = 0xD1;                                //设置定时初始值
        TF1 = 0;                                //清除TF1标志
        TR1 = 1;                                //定时器1开始计时
        ET1 = 1;                                //使能定时器1中断
}


回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:351
  • 最近打卡:2025-05-02 00:50:51
已绑定手机

130

主题

1520

回帖

1859

积分

金牌会员

积分
1859
发表于 2025-3-19 01:31:52 | 显示全部楼层
IO配置问题?
弄个下拉电阻?
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:452
  • 最近打卡:2025-05-01 06:20:50
已绑定手机

13

主题

1257

回帖

2971

积分

金牌会员

积分
2971
发表于 2025-3-19 08:42:32 | 显示全部楼层
代码看不出问题,中断后被拉高的IO接了什么?贴个原理图上来看看
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:2
  • 最近打卡:2025-03-21 17:15:04
已绑定手机

1

主题

2

回帖

17

积分

新手上路

积分
17
发表于 2025-3-21 17:15:04 | 显示全部楼层
21cns*** 发表于 2025-3-19 08:42
代码看不出问题,中断后被拉高的IO接了什么?贴个原

C:\Users\33262\Pictures\Screenshots

1

1

点评

哪个IO口在中断后被拉高了?  发表于 2025-3-21 22:36
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:435
  • 最近打卡:2025-04-30 08:43:23

33

主题

2351

回帖

4860

积分

论坛元老

积分
4860
发表于 2025-3-21 17:58:37 | 显示全部楼层
代码看着没啥事儿,,检查检查硬件?
参考例程并不是对技术参 考手册的补充,而是对技术参 考手册的解释。
技术参 考手册不应该需要参考例程作为补充,而是解释成了参考例程的样子
回复 支持 反对

使用道具 举报 送花

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

本版积分规则

QQ|手机版|小黑屋|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-5-2 02:34 , Processed in 0.153030 second(s), 93 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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