stm32如何在中断服务程序里关闭EXTI中断

stm32如何在中断服务程序里关闭EXTI中断,第1张

那个中断已经被触发了,你要做的只有是清中断标志位:\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 串口接收字符串 中断程序怎么写、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9329948.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-27
下一篇 2023-04-27

发表评论

登录后才能评论

评论列表(0条)

保存