找回密码
 立即注册
查看: 264|回复: 10

STC8G2K64S4中断

[复制链接]
  • 打卡等级:初来乍到
  • 打卡总天数:8
  • 最近打卡:2026-01-12 10:20:09
已绑定手机

9

主题

10

回帖

74

积分

注册会员

积分
74
发表于 2026-1-12 10:20:09 | 显示全部楼层 |阅读模式
使用time2作为pwm时钟源,开启pwm中断,定时器中断3会被关闭,是什么原因
回复

使用道具 举报 送花

  • 打卡等级:以坛为家III
  • 打卡总天数:722
  • 最近打卡:2026-03-16 06:56:40
已绑定手机

97

主题

7243

回帖

1万

积分

超级版主

积分
13784
发表于 2026-1-12 13:56:47 | 显示全部楼层
新手必读:
https://www.stcaimcu.com/thread-16535-1-1.html
按照这个排查一下常见问题看看
具体分析请上传程序
回复

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:8
  • 最近打卡:2026-01-12 10:20:09
已绑定手机

9

主题

10

回帖

74

积分

注册会员

积分
74
发表于 2026-1-12 15:40:11 | 显示全部楼层
Debu*** 发表于 2026-1-12 13:56
新手必读:
https://www.stcaimcu.com/thread-16535-1-1.html
按照这个排查一下常见问题看看

// bio1pwm频率设置
void bioModeSetFreq(float freq)
{
        float freqTemp = freq;
        PWM15_InitTypeDef                PWM15_InitStructure;
        freq = 1000 / freq;
        freq = freq / 0.1;

        PWM15_InitStructure.PWM_Enable    = ENABLE;                                //PWM使能,  ENABLE, DISABLE
        PWM15_InitStructure.PWM_Period    = (u16)(freq);                                //PWM周期,  0~0x7fff
        PWM15_InitStructure.PWM_Clock_Sel = PWMn_CLK_TM2;                //时钟源选择,  PWMn_CLK_SYS, PWMn_CLK_TM2
        PWM15_InitStructure.PWM_Clock_PS  = 0;                                        //系统时钟分频参数(PS+1分频),  0~15
        PWM15_InitStructure.PWM_Counter   = ENABLE;                                //计数器使能,  ENABLE, DISABLE
        PWM15_Init(PWM5, &PWM15_InitStructure);
       
       
        PWMChannelCtrl(PWM53,ENABLE,0,ENABLE,ENABLE,DISABLE);        //PWM_ID, 输出使能, 初始电平, PWM中断, 第二个触发点中断, 第一触发点中断       
        PWM15Duty(PWM53, (u16)(freq  * (4.1 - ((65 - freqTemp) * 0.046)) / 100), 0x0000);
       
       
//        PWM53CR = (1 << 7) | (0 << 6) | (1 << 2)| (1 << 1)| 0;
}


这个是pwm设置函数,只要失能pwm中断就会导致定时器3关闭,当关闭pwm中断时,定时器3会恢复正常
回复

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:8
  • 最近打卡:2026-01-12 10:20:09
已绑定手机

9

主题

10

回帖

74

积分

注册会员

积分
74
发表于 2026-1-12 15:43:03 | 显示全部楼层
Debu*** 发表于 2026-1-12 13:56
新手必读:
https://www.stcaimcu.com/thread-16535-1-1.html
按照这个排查一下常见问题看看

// bio1pwm禁用
void bioModeDisable(void)
{
        PWM15_InitTypeDef                PWM15_InitStructure;
//        EAXSFR();                //访问XFR
        PWMChannelCtrl(PWM53,DISABLE,0,DISABLE,DISABLE,DISABLE);        //PWM_ID, 输出使能, 初始电平, PWM中断, 第二个触发点中断, 第一触发点中断
        PWM15_InitStructure.PWM_Enable    = DISABLE;                                //PWM使能,  ENABLE, DISABLE
        PWM15_InitStructure.PWM_Period    = 0x0000;                                        //PWM周期,  0~0x7fff
        PWM15_InitStructure.PWM_Clock_Sel = PWMn_CLK_SYS;                        //时钟源选择,  PWMn_CLK_SYS, PWMn_CLK_TM2
        PWM15_InitStructure.PWM_Clock_PS  = 0;                                                //系统时钟分频参数(PS+1分频),  0~15
        PWM15_InitStructure.PWM_Counter   = DISABLE;                                //计数器使能,  ENABLE, DISABLE
//        PWM15_InitStructure.PWM_CInt = ENABLE;
        PWM15_Init(PWM5, &PWM15_InitStructure);
        BIO_MODE_OUT(0);
//        EAXRAM();                        // 恢复访问XRAM
}


这是关闭的
回复

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:8
  • 最近打卡:2026-01-12 10:20:09
已绑定手机

9

主题

10

回帖

74

积分

注册会员

积分
74
发表于 2026-1-12 15:44:55 | 显示全部楼层
Debu*** 发表于 2026-1-12 13:56
新手必读:
https://www.stcaimcu.com/thread-16535-1-1.html
按照这个排查一下常见问题看看

void Timer3_Config(void)
{
        TIM_InitTypeDef Timer_InitStruct = {0};
        Timer_InitStruct.TIM_Mode = TIM_16BitAutoReload;
        Timer_InitStruct.TIM_ClkSource = TIM_CLOCK_1T;                       
        Timer_InitStruct.TIM_ClkOut = DISABLE;
        Timer_InitStruct.TIM_Value = 0xA99A;                        // 100us
        Timer_InitStruct.TIM_Run = ENABLE;
        Timer_Inilize(Timer3, &Timer_InitStruct);
        NVIC_Timer3_Init(ENABLE, Priority_3);
}

这是定时器3初始化
回复

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:8
  • 最近打卡:2026-01-12 10:20:09
已绑定手机

9

主题

10

回帖

74

积分

注册会员

积分
74
发表于 2026-1-12 15:47:44 | 显示全部楼层
Debu*** 发表于 2026-1-12 13:56
新手必读:
https://www.stcaimcu.com/thread-16535-1-1.html
按照这个排查一下常见问题看看

不打开pwm中断时定时器3中断是正常的
回复

使用道具 举报 送花

  • 打卡等级:以坛为家III
  • 打卡总天数:722
  • 最近打卡:2026-03-16 06:56:40
已绑定手机

97

主题

7243

回帖

1万

积分

超级版主

积分
13784
发表于 2026-1-12 16:08:46 | 显示全部楼层
两个中断频率多少,中断程序运行时间多少
检查是否存在中断程序耗时占比大于100%导致阻塞
还有如中断号大于31的中断,是否正确使用中断号扩展插件或使用13中断跳转
回复

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:8
  • 最近打卡:2026-01-12 10:20:09
已绑定手机

9

主题

10

回帖

74

积分

注册会员

积分
74
发表于 2026-1-12 16:35:49 | 显示全部楼层
Debu*** 发表于 2026-1-12 16:08
两个中断频率多少,中断程序运行时间多少
检查是否存在中断程序耗时占比大于100%导致阻塞
还有如中断号大于 ...

如何使用13中断跳转呢
回复

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:8
  • 最近打卡:2026-01-12 10:20:09
已绑定手机

9

主题

10

回帖

74

积分

注册会员

积分
74
发表于 2026-1-12 16:44:33 | 显示全部楼层
Debu*** 发表于 2026-1-12 16:08
两个中断频率多少,中断程序运行时间多少
检查是否存在中断程序耗时占比大于100%导致阻塞
还有如中断号大于 ...

定时器3的中断频率为1ms,pwm的中断频率为30hz到65hz

点评

可以打包上传完整可编译工程,因为我看你的定时器3是最高优先级Priority_3,但是定时器3和定时器4是默认最低优先级的,没有优先级调整功能  详情 回复 发表于 2026-1-13 11:51
回复

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:8
  • 最近打卡:2026-01-12 10:20:09
已绑定手机

9

主题

10

回帖

74

积分

注册会员

积分
74
发表于 2026-1-12 16:46:29 | 显示全部楼层
这里已经成功修改
截图202601121646172641.jpg
回复

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2026-3-17 07:07 , Processed in 0.128698 second(s), 95 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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