
本帖最后由 ldptest 于 2017-9-4 15:14 编辑 我想通过一个引脚,触发TIM2开始计时,时间到进行其他操作,不循环,触发一次计时一次。 当执行时,触发TIM2开始计时,瞬间就触发中断事件,根本没到我设置的计时时间。 请问,如何解决这问题? /************************************************************************************************** * 函 数:Init_Timer2 * 功 能:初始化Timer2 * 参 数:无 * 返 回:无 * 说 明:用于按键输入检查 * 更新日期:2017-9-2 **************************************************************************************************/ void Init_Timer2(void) { //256分频,自动重装值 40000,2M主时钟/(256*( 39999+1),相当于周期为5.2S, TIM2_DeInit(); TIM2_TimeBaseInit(TIM2_PRESCALER_256, 39999); TIM2_PrescalerConfig(TIM2_PRESCALER_256, TIM2_PSCRELOADMODE_UPDATE); TIM2_SetCounter(0x00); //设定计数器的初值0 TIM2_ARRPreloadConfig(ENABLE); //允许自动重装 TIM2_SelectOnePulseMode(TIM2_OPMODE_SINGLE);//在发生下一次更新事件(清除CEN位)时,计数器停止 TIM2_ITConfig(TIM2_IT_UPDATE, ENABLE); //更新中断使能 } int main( void ) { Init_Timer2(); IO_Init(); enableInterrupts(); //总中断使能 u8 Flag = 1; while(1) { if (GPIO_ReadInputPin(Input_GPIO, HS_Pin) && Flag) { Flag = 0; GPIO_WriteLow(Output_GPIO, Work_Pin); //点亮LED TIM2_Cmd(ENABLE); } } } 中断 INTERRUPT_HANDLER(TIM2_UPD_OVF_BRK_IRQHandler, 13) { /* In order to detect unexpected events during development, it is recommended to set a breakpoint on the following instruction. */ if (TIM2_GetITStatus(TIM2_IT_UPDATE) != RESET) //检查 TIM2 更新中断发生与否 { TIM2_ClearITPendingBit(TIM2_IT_UPDATE); //清除中断标记 GPIO_WriteHigh(Output_GPIO, Work_Pin); //关LED } |
STM8S003无法检测到引脚电平
STM8 @svlreg 问题
STM8AF62XX+L99PM62GXP LIN通讯的电路原理图有吗?官网提供了一套软件,没找到对应的原理图,请大家指教一下
求一个STM8S207例程
初次接触STM8,请问在STVD中,为什么这个Struct会报错
STMS005K6T6 如何采集内部参考电压。
stm8s003 adc中断和通道切换的问题
adc施密特触发器stm8
stm8l051f3 TSSOP20 封装,待机模式下,2天后,电流突然增加到140UA
STM8S用STVP烧录怎么加密?
在允许自动重装后增加了:
TIM2_GenerateEvent(TIM2_EVENTSOURCE_UPDATE);//由软件产生一个更新事件
评分
查看全部评分