完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
各位:我做了一个tiM2的溢出中断,当TIM_Period>1的时候可以正常中断,但TIM_Period=1即TIM2->ARR=1时,
却不能进中断,请问我是不是哪儿搞错了?也就是我要求每一个脉冲都进中断的时候,失败了。如果要实现,怎么做呢? |
|
相关推荐
1个回答
|
|
根据您的描述,您在使用TIM2的溢出中断时遇到了问题。当TIM_Period > 1时,中断可以正常工作,但是当TIM_Period = 1时,中断无法触发。以下是一些可能的原因和解决方案:
1. 中断优先级配置错误:请检查您的中断优先级配置是否正确。确保TIM2的中断优先级高于其他中断,以便在溢出时能够正确触发。 2. 中断使能位未设置:请确保您已经设置了TIM2的中断使能位。在初始化TIM2时,使用`TIM_ITConfig(TIM2, TIM_IT_Update, ENABLE);`来启用更新中断。 3. 中断标志位未清除:在中断服务程序中,确保清除了TIM2的中断标志位。使用`TIM_ClearITPendingBit(TIM2, TIM_IT_Update);`来清除标志位。 4. 时钟配置问题:请检查您的时钟配置是否正确。确保TIM2的时钟源和时钟频率设置正确。 5. 定时器配置问题:请检查您的定时器配置是否正确。确保设置了正确的预分频器值和自动重载寄存器值。 6. 中断服务程序问题:请检查您的中断服务程序是否正确处理了中断。确保在中断服务程序中添加了适当的代码来处理溢出事件。 如果您已经检查了以上所有问题,但仍然无法解决问题,您可以尝试以下方法: 1. 使用定时器的捕获/比较中断而不是溢出中断。这样,您可以在每个脉冲时触发中断,而不是在溢出时触发。 2. 如果您的硬件平台支持,您可以尝试使用其他定时器(如TIM1或TIM3)来实现您的需求。 3. 如果可能,您可以尝试使用软件模拟定时器中断,通过在主循环中检查定时器的值来实现类似的功能。 希望这些建议能帮助您解决问题。如果问题仍然存在,请提供更多关于您的硬件平台和代码的详细信息,以便我们能够提供更具体的建议。 |
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1617 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1543 浏览 1 评论
977 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
683 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1595 浏览 2 评论
1863浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
644浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
515浏览 3评论
531浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
504浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-22 07:07 , Processed in 0.714742 second(s), Total 77, Slave 61 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号