黄乃贝 发表于 2025-3-2 19:07:07

例程19-高速高级PWM驱动呼吸灯实验程序-pwm中断怎么进不去?

例程19-高速高级PWM驱动呼吸灯实验程序          
NVIC_PWM_Init(PWMA,PWM_UIE,Priority_0);    // 使能中断 PWM_CC1IEP427;
NVIC_PWM_Init(PWMB,PWM_UIE,Priority_0);    // 使能中断 PWM_CC1IEP427;
pwm中断使能 和EA都使能了;




怎么进不去 pwm中断?





例程85-老梁示波器-信号发生器这个例程pwm中断就可以进去。

如图





国芯人工智能 发表于 2025-3-2 19:08:00

关于例程19中PWM中断无法进入的问题,建议从以下几个方面进行排查:

1. **中断优先级配置**:确保中断优先级设置正确,且未被其他高优先级中断抢占。NVIC_PWM_Init函数中优先级为Priority_0,需确认系统中无更高优先级中断。

2. **PWM模块配置**:检查PWM模块的时钟源、计数模式及周期设置是否正确。确保PWM模块已正确初始化并启动。

3. **中断标志位**:在进入中断服务程序前,确认中断标志位是否被置位。可通过读取相关寄存器状态进行验证。

4. **中断服务程序**:确保中断服务程序(ISR)已正确定义,并且在中断向量表中正确指向该ISR。

5. **硬件连接**:检查硬件连接是否正常,确保PWM信号正确输出至目标设备。

6. **代码对比**:与例程85进行对比,找出配置上的差异,尤其是中断相关的寄存器设置。

通过以上步骤,应能定位并解决PWM中断无法进入的问题。如仍无法解决,建议查阅相关芯片手册或联系技术支持。

[本文内容由国芯人工智能辅助生成,仅供参考]

国芯人工智能 发表于 2025-3-2 19:12:00

在例程19中,PWM中断无法进入的原因可能有以下几点:首先,请确认PWM的时钟配置是否正确,确保PWM模块已正确初始化并启用。其次,检查中断优先级设置,确保PWM中断优先级未被其他高优先级中断抢占。此外,确认PWM计数器的更新事件是否已触发,确保PWM模块已生成相应中断信号。最后,检查中断向量表是否正确配置,确保中断服务程序已正确映射。建议使用调试工具逐步排查,确保所有配置步骤无误。

[本文内容由国芯人工智能辅助生成,仅供参考]

黄乃贝 发表于 2025-3-2 22:48:05

国芯人工智能 发表于 2025-3-2 19:08
关于例程19中PWM中断无法进入的问题,建议从以下几个方面进行排查:

1. **中断优先级配置**:确保中断优先 ...

例程中就只有这一个中断没有其他中断,所以优先级没问题, pwm模块正常启动了,pwm波形是正常的,用示波器测了的,就是开启了中断,没进去不知道咋回事。和例程85进行了对比,没发现啥问题。 中断向量表也是对的26;

梁工 发表于 2025-3-3 10:17:29

黄乃贝 发表于 2025-3-2 22:48
例程中就只有这一个中断没有其他中断,所以优先级没问题, pwm模块正常启动了,pwm波形是正常的,用示波 ...

那就对比示波器的PWM中断初始化看看,还有哪些地方没处理好?

DataBus 发表于 2025-4-24 10:01:59

我也遇到这个问题,开始以为是中断函数没进去,后来检查发现SR1寄存器读出来的值始终是为0(144MHZ的高速PWM),不知道是不是芯片BUG。

梁工 发表于 2025-4-24 11:53:02

请将完整工程贴出,使用什么型号MCU?

梁工 发表于 2025-4-24 11:53:35

DataBus 发表于 2025-4-24 10:01
我也遇到这个问题,开始以为是中断函数没进去,后来检查发现SR1寄存器读出来的值始终是为0(144MHZ的高速PW ...

请将完整工程贴出,使用什么型号MCU?MCU没那么容易有BUG的。
页: [1]
查看完整版本: 例程19-高速高级PWM驱动呼吸灯实验程序-pwm中断怎么进不去?