打印
[STM32F1]

请高手救急《STM32定时器中断求教》

[复制链接]
1171|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
zhy041785sea|  楼主 | 2013-12-13 09:16 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
if ( TIM_GetITStatus(TIM2 , TIM_IT_CC1) != RESET )
为什么这个读取中断状态的命令放在主程序里面读出的是0,而放在中断程序里读出的是1(正常)



这是中断配置
void NVIC_Config(void)
{
NVIC_InitTypeDef NVIC_InitStructure;
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_0);
NVIC_InitStructure.NVIC_IRQChannel = TIM2_IRQn;
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
NVIC_Init(&NVIC_InitStructure);
}


void Timer_Config(void)
{
TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;
RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2 , ENABLE);
TIM_DeInit(TIM2);

TIM_TimeBaseStructure.TIM_Period=2000;//自动重装载寄存器的值
TIM_TimeBaseStructure.TIM_Prescaler= (36000 - 1); //时钟预分频数
TIM_TimeBaseStructure.TIM_ClockDivision=TIM_CKD_DIV1; //采样分频
TIM_TimeBaseStructure.TIM_CounterMode=TIM_CounterMode_Up;
TIM_TimeBaseInit(TIM2, &TIM_TimeBaseStructure);
TIM_ClearFlag(TIM2, TIM_FLAG_Update); //清除溢出中断标志
TIM_ITConfig(TIM2,TIM_IT_Update,ENABLE);
TIM_Cmd(TIM2, ENABLE); //开启时钟
}
沙发
caoxiaohua| | 2013-12-13 21:01 | 只看该作者
你用while(TIM_GetITStatus(TIM2 , TIM_IT_CC1) != RESET );试试,没准就对了

使用特权

评论回复
板凳
caoxiaohua| | 2013-12-13 21:01 | 只看该作者
你用while(TIM_GetITStatus(TIM2 , TIM_IT_CC1) != RESET );试试,没准就对了

使用特权

评论回复
地板
momingwei| | 2014-1-10 18:04 | 只看该作者
这不是定时器中断吗 就应该放在中断程序里啊 为什么要放在主程序里呢  接收数据肯定直接就跳到中断程序了、、、

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

2

帖子

0

粉丝