不知道为什么,STM8S的TIM4一直进不了中断

2019-07-19 20:24发布

[mw_shl_code=c,true]#include "tim4.h" #include "led.h" void TIM4_IT_UPDATE_Init(void) { CLK_PeripheralClockConfig(CLK_PERIPHERAL_TIMER4, ENABLE); TIM4_DeInit();//复位定时4 ////128分频,自动重装载值125,16Mhz/(128*125)=1Khz TIM4_TimeBaseInit(TIM4_PRESCALER_128, 0x7D); TIM4_SetCounter(0x7D); TIM4_ARRPreloadConfig(ENABLE); //自动重装 TIM4_UpdateDisableConfig(DISABLE); //运行计数器溢出更新 TIM4_UpdateRequestConfig(TIM4_UPDATESOURCE_REGULAR); TIM4_ClearFlag(TIM4_FLAG_UPDATE); //清楚更新标志位 TIM4_ITConfig(TIM4_IT_UPDATE, ENABLE);//更新中断使能 enableInterrupts(); TIM4_Cmd(ENABLE);//使能定时器4 } //#pragma vector=0x19 __interrupt void TIM4_OVR_UIF_IRQHandler(void)//对应IAP的中断地址:0x8060 { int count=0;//每1ms进入一次中断 count++; // GPIO_WriteReverse(LED_GPIO_PORT, (GPIO_Pin_TypeDef)LED_GPIO_PINS); if(count==1000)//1s中转换一次 { GPIO_WriteReverse(LED_GPIO_PORT, (GPIO_Pin_TypeDef)LED_GPIO_PINS); } TIM4_ClearITPendingBit(TIM4_IT_UPDATE); }[/mw_shl_code]
一直进不了中断,在线调试发现,TIM4->SR中的中断标志位UIF=1后,就一直没有被清楚,说明一直没有进中断。。。麻烦各位大侠帮忙解答一下,STM8S的资料实在是太少了。。。手册都写的很模糊。。。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
15条回答
wuxin999
1楼-- · 2019-07-21 19:04
 精彩回答 2  元偷偷看……
逍遥游
2楼-- · 2019-07-21 19:29
回复【11楼】whut-showming:
---------------------------------
你好,请问你是软件仿真调试,还是用仿真器在STM8上进行硬件调试?
我这里的情况是软件仿真调试是进不了中断,但用硬件仿真可以进中断。
狠狠狠调皮
3楼-- · 2019-07-21 23:57
研究这问题了一下午,发现你的程序  //#pragma vector=0x19   有问题,不能因为报错就把它屏蔽掉,进入 stm8s_it.c 把重复的删掉就能进中断.

一周热门 更多>