关于带中断的adc初始化问题
为啥带中断的adc初始化放在定时器初始化前面,定时器就不作用了 配置寄存器的问题 检查初始化顺序,先初始化那些不依赖其他外设或资源的外设。 调整中断优先级,定时器中断的优先级足够高。 建议按照MCU的官方文档或推荐的最佳实践来初始化外设。 是不是adc一直在触发中断 在N32G430开发中,若带中断的ADC初始化放在定时器初始化前面导致定时器失效,通常是由于初始化顺序引发的中断抢占或硬件资源冲突 定时器中断与ADC中断共享NVIC资源,若ADC中断优先级高于定时器,且ADC初始化过程中触发中断(如校准阶段),可能抢占系统资源,导致定时器中断服务程序(ISR)无法及时响应,表现为定时器“失效”。 ADC初始化未完成时被定时器中断打断,导致ADC配置异常,后续操作(如启动采样)失败,间接影响定时器功能。 若ADC与定时器共享时钟源(如APB总线),ADC初始化时可能独占时钟,导致定时器时钟被关闭或分频错误。 ADC初始化代码中误配置了APB1分频器,导致依赖APB1时钟的定时器(如TIM2-TIM7)频率异常。 未启用定时器时钟,在初始化定时器前未调用RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIMx, ENABLE),导致定时器外设未激活。 未启动定时器,仅配置了定时器参数(如分频、重装载值),但未调用TIM_Cmd(TIMx, ENABLE)启动定时器 顺序建议,先初始化无中断的外设(如GPIO、时钟),再初始化定时器,最后初始化带中断的ADC 延时处理,在ADC初始化后添加短延时(如delay_ms(10)),确保硬件状态稳定后再启动定时器 配置NVIC时,将定时器中断优先级设为高于ADC中断(数值越小优先级越高)。 先配置再使用 那得看代码。中断处理部分,根据机能分开设置各自的。最后处理总中断的。逻辑上讲,不同外设,不会在中断上打架。估计是代码和逻辑上的问题。
页:
[1]