主函数:u8 flag;
int main(void)
{
u8 Tx_Buf[8];
u8 t;
u8 len;
u16 times=0;
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//éèÖÃÏμí3ÖD¶ÏóÅÏ輶·Ö×é2
delay_init(168); //3õê¼»ˉÑóê±oˉêy
uart_init(115200); //′®¿ú3õê¼»ˉ
LED_Init(); //3õê¼»ˉLED¶Ë¿ú
BEEP_Init(); //3õê¼»ˉ·äÃùÆ÷¶Ë¿ú
EXTIX_Init(); //3õê¼»ˉía2¿ÖD¶Ïêäèë
KEY_Init();
while(1)
{
if(flag ==1)
while(1){
LED2=1;delay_ms(500);
LED2=0;delay_ms(500);
LED3=1;delay_ms(500);
LED3=0;delay_ms(500);
LED7=1;delay_ms(500);
LED7=0; delay_ms(500);
LED13=1; delay_ms(500);
LED13=0;
}
else if(flag==2)
{
LED3=1;
LED7=0;
LED13=0;
LED2=0;}}}
串口中断函数:
extern u8 flag;
void USART1_IRQHandler(void)
{
u8 Res;
#if SYSTEM_SUPPORT_OS
OSIntEnter();
#endif
if(USART_GetITStatus(USART1, USART_IT_RXNE) != RESET)
{
Res =USART_ReceiveData(USART1);//(USART1->DR);
if((USART_RX_STA&0x8000)==0)
{if(Res==1) flag =1;
else if (Res==2) flag =2;
else flag =0;
return ;
}
}
#if SYSTEM_SUPPORT_OS
OSIntExit();
#endif
}
#endif
您好 ,我问一下 ,我这是想用串口中断 发送字符1 然后跑马灯 之后就不能发送字符2了 一直在跑马灯while死循环里了 这起不到我中断的效果呀
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
单步走一下看看你的flag有没有变化
一周热门 更多>