我用F107的板子,准备每隔0.5进一次定时器中断,可是发现程序没有进中断,我用LED能否点亮来判断有没有进中断,结果灯不亮,我检查我的配置,也没发现什么问题,请大神帮我看看,分析分析,感谢!!! //定时器5初始化 //定时0.5s每0.5s进一次定时中断 void TIM5_Enable(u16 arr) { TIM_TimebaseInitTypeDef TIM_TimebaseStructure; NVIC_InitTypeDef NVIC_InitStructure; NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM5ENABLE); TIM_TimebaseStructure.TIM_ClockDivision=0; TIM_TimebaseStructure.TIM_CounterMode=TIM_CounterMode_Up; TIM_TimebaseStructure.TIM_Period=arr;//arr=4999 TIM_TimebaseStructure.TIM_Prescaler=7199; TIM_TimebaseStructure.TIM_RepetitionCounter=0; TIM_TimebaseInit(TIM5&TIM_TimebaseStructure); NVIC_InitStructure.NVIC_IRQChannel=TIM5_IRQn; NVIC_InitStructure.NVIC_IRQChannelCmd=ENABLE; NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=3; NVIC_InitStructure.NVIC_IRQChannelSubPriority=3; NVIC_Init(&NVIC_InitStructure); TIM_ClearITPendingBit(TIM5TIM_IT_Update); TIM_ITConfig(TIM5TIM_IT_UpdateENABLE); TIM_Cmd(TIM5ENABLE); } void TIM5_IRQHanler(void)//TIM5中断 { if(TIM_GetITStatus(TIM5TIM_IT_Update)==SET) //检查指定的TIM中断发生与否:TIM 中断源 { TIM_ClearITPendingBit(TIM5TIM_IT_Update);//清除TIMx的中断待处理位:TIM 中断源 ; if(TX_RX_SET==0) { LED_RUN=1; printf("1111/r/n"); RS485_SendData(); } } }
在函数里赋值一个ouput707的数组卡死是为啥,我把数组放在函数外赋值,然后在keil5仿真时得到了和vs中不一样的结果
使用stm32f103c8t6的Systick功能,采用中断方式去延时,使用SysTick_Config去配置,当参数为SysTick_Config(SystemCoreClock/900)时 ,10ms进入一次中断;当参数为SysTick_Config(SystemCoreClock/1000)时,9ms进入一次中断。不知道为啥?