新手上路
- 积分
- 36
- 金钱
- 36
- 注册时间
- 2020-12-5
- 在线时间
- 3 小时
|
本帖最后由 chaoqing 于 2020-12-12 16:30 编辑
为什么使用库函数不可以使用if( TIM_GetITStatus(TIM5,TIM_IT_Update) == SET)来判断定时器是否产生的中断?
中断服务函数如下:
static u32 cnt = 0;
static u32 sum_tim5 = 0;
static u32 flag = 0;
static u32 key_val = 0;
//判断定时器是否产生中断
if(TIM_GetITStatus(TIM5,TIM_IT_Update) == SET)
{
TIM_ClearFlag(TIM5,TIM_FLAG_Update);
if(flag != 0)
{
printf("11\r\n");
cnt++;
}
}
//判断通道是否产生中断
if(TIM_GetITStatus(TIM5,TIM_IT_CC1) == SET)
{
TIM_ClearFlag(TIM5,TIM_FLAG_CC1);
//判断按键是否被按下
if(GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_0) == Bit_SET)
{
key_val = TIM_GetCapture1(TIM5);
flag = 1;
}
else
{
sum_tim5 = 65535 * cnt + TIM_GetCapture1(TIM5) - key_val;
printf("%d\r\n",sum_tim5/1000);
cnt = 0;
sum_tim5 = 0;
flag = 0;
key_val = 0;
}
}
|
|