新手入门
- 积分
- 16
- 金钱
- 16
- 注册时间
- 2021-8-6
- 在线时间
- 4 小时
|
1金钱
void TIM3_IRQHandler(void)
{int u;
if(TIM_GetITStatus(TIM3,TIM_IT_Update)==SET) //溢出中断
{ u++;
printf("u =%d\n ",u);\
if(u==30)//开始的时候先停10s,10s后开始抬升电机,3=1s.u=30
{GPIO_SetBits(GPIOB,GPIO_Pin_3);
printf("进去之后 =%d\n ",u); }
if(u==230)//抬升一分钟,u=200
{GPIO_ResetBits(GPIOB,GPIO_Pin_3);
printf("出来之后=%d\n ",u); }
if(P_A_5==1)
{
GPIO_ResetBits(GPIOB,GPIO_Pin_3);
delay_ms(1000); //延时250ms
GPIO_SetBits(GPIOB,GPIO_Pin_6);
TIM_ITConfig(TIM3,TIM_IT_Update,DISABLE);
}
}
TIM_ClearITPendingBit(TIM3,TIM_IT_Update); //清除中断标志位
}
这是定时器三的中断服务函数,我想在里面计数,计算中断溢出的次数从而控制不同时间要控制的引脚,但是我发现在中断服务函数定义一个u,则从串口输出的值为8400,如果是宏定义的话输出的值为u=1,就很奇怪,就是计算不到我的需要的值。
|
|