完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
最近用STM32F103 打开了定时器2 开定时器中断, 开启PA11的中断, 在PA11的中断里把定时器2关掉,
void EXti15_10_IRQHandler(void) { if (EXTI_GetITStatus(EXTI_Line11) != RESET) { EXTI_ClearITPendingBit(EXTI_Line11); //清除标志 dis_time=TIM2_count; GPIO_ResetBits(GPIOB, GPIO_Pin_0); // RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2,DISABLE); // TIM_Cmd(TIM2,DISABLE); //关定时器 // TIM2->CR1=0x00; //关闭定时器 TIM2_count=0; //完成一次后 计数清零 EXTI_11_flag=1; } } 不关定时器2 程序正常运行, 关闭就出错. 定时器如何关闭呢? |
|
相关推荐
1个回答
|
|
在STM32F103中,要关闭定时器2并避免报错,可以按照以下步骤操作:
1. 首先,确保已经正确初始化了定时器2。这包括设置时钟源、预分频器、自动重载寄存器等。 2. 在PA11的中断服务程序中,清除EXTI_Line11的中断标志位,然后关闭定时器2。以下是修改后的代码: ```c void EXTI15_10_IRQHandler(void) { if (EXTI_GetITStatus(EXTI_Line11) != RESET) { EXTI_ClearITPendingBit(EXTI_Line11); // 清除标志位 // 读取定时器2的计数值 dis_time = TIM_GetCounter(TIM2); // 关闭定时器2 TIM_Cmd(TIM2, DISABLE); } } ``` 3. 在关闭定时器2之后,如果需要重新开启定时器2,可以再次调用初始化定时器2的函数,或者手动设置相关寄存器。 4. 如果在关闭定时器2后仍然遇到错误,请检查其他可能影响定时器2的因素,例如其他中断服务程序、DMA配置等。 5. 确保在关闭定时器2之前,已经完成了所有必要的数据处理和存储,以避免数据丢失或不一致。 通过以上步骤,应该可以成功关闭STM32F103的定时器2并避免报错。如果仍然遇到问题,请检查代码逻辑和硬件连接,确保没有其他因素影响定时器2的正常工作。 |
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1763 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1617 浏览 1 评论
1059 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
723 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1670 浏览 2 评论
1933浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
726浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
566浏览 3评论
592浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
550浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-21 10:06 , Processed in 0.856261 second(s), Total 77, Slave 61 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号