那个中断已经被触发了,你要做的只有是清中断标志位:\x0d\ EXTI_ClearITPendingBit(EXTI_Line14);\x0d\EXTI_ClearFlag(EXTI_Line14);\x0d\非要关的话,我觉得这样就关了\x0d\EXTI_InitStructureEXTI_Line = EXTI_Line14;\x0d\EXTI_InitStructureEXTI_Mode = EXTI_Mode_Interrupt;\x0d\EXTI_InitStructureEXTI_Trigger = EXTI_Trigger_Falling;\x0d\EXTI_InitStructureEXTI_LineCmd = DISABLE; //ENABLE\x0d\EXTI_Init(&EXTI_InitStructure);
void USART3_IRQHandler(void)
{
u8 res;
if(USART_GetITStatus(USART3, USART_IT_RXNE) != RESET)//½ÓÊÕµ½Êý¾Ý
{
res =USART_ReceiveData(USART3);
if((USART3_RX_STA&(1<<15))==0)//½ÓÊÕÍêµÄÒ»ÅúÊý¾Ý,»¹Ã»Óб»´¦Àí,Ôò²»ÔÙ½ÓÊÕÆäËûÊý¾Ý
{
if(USART3_RX_STA<USART3_MAX_RECV_LEN) //»¹¿ÉÒÔ½ÓÊÕÊý¾Ý
{
TIM_SetCounter(TIM7,0);//¼ÆÊýÆ÷Çå¿Õ //¼ÆÊýÆ÷Çå¿Õ
if(USART3_RX_STA==0) //ʹÄܶ¨Ê±Æ÷7µÄÖжÏ
{
TIM_Cmd(TIM7,ENABLE);//ʹÄܶ¨Ê±Æ÷7
}
USART3_RX_BUF[USART3_RX_STA++]=res; //¼Ç¼½ÓÊÕµ½µÄÖµ
}else
{
USART3_RX_STA|=1<<15; //Ç¿ÖƱê¼Ç½ÓÊÕÍê³É
}
}
}
}
以上就是关于stm32如何在中断服务程序里关闭EXTI中断全部的内容,包括:stm32如何在中断服务程序里关闭EXTI中断、stm32 串口接收字符串 中断程序怎么写、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)