完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
电子发烧友论坛|
定时器初始化:
void Init_timer1(void) { TIM1_CR1=0x00; //不使能计数器 TIM1_ARRH=0x2F; //自动重装的值 TIM1_PSCRL=0xFF; //分频值,根据初值和分频值,定时在2秒多; TIM1_IER=0x01; //更新中断使能 TIM1_CR1=0x01; //使能计数器 } ------------------------ 中断服务程序: #pragma vector=TIM1_OVR_UIF_vector __interrupt void TIM1_OVR_UIF_IRQHandler(void) { asm("sim"); //关中断; PB_ODR^=0x20; //改变LED状态; TIM1_SR1=0x00; //清除状态寄存器; TIM1_CR1=0x00; //不使能计数器; asm("rim"); //开中断,然后中断返回; } ------------------------- B5端口初始化: void Init_GPIO(void) { PB_DDR|=0x20; PB_CR1|=0x20; PB_CR2 =0xDF; } ------------------------------------ 利用B5端口的推挽输出LED,通过LED亮灭判断状态。 现在问题是,一开机就会进中断,可以观察到LED迅速闪一下。按照预想的情况,开机应该是亮定时的时间后灭,实际不然。 在下开发环境是IAR,Debugger设备是ST-Link。在编译调试环境里单步运行的时候是正常的,能正常进入计数的进程,计数溢出后才进中断。 以上问题困扰在下2天了,望各位前辈不吝赐教,感激不尽。 |
|
相关推荐
2个回答
|
|
|
建议给 TIM1_PSCRH、TIM1_ARRL也赋一下值,可能是正常触发,但是定时时间太短了。
|
|
|
|
|
|
如果一使能定时器就进入更新中断的话,你将断点放在使能定时器更新中断语句前,按理可以发现更新中断标志被置位的情况。你不妨在使能定时器更新中断代码前 对更新事件标志做下清零动作,即对那个UIF@TIMx_SR进行清零.
|
|
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
4204 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
3263 浏览 1 评论
2795 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
2227 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
15146 浏览 2 评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
3167浏览 4评论
stm32f4下spi+dma读取数据不对是什么原因导致的?
1940浏览 3评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
2108浏览 3评论
2019浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
2216浏览 3评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-13 10:20 , Processed in 0.611169 second(s), Total 43, Slave 37 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
964