[mw_shl_code=c,true]我对串口中断函数做了修改[/mw_shl_code]
[mw_shl_code=c,true]#if EN_USART1_RX //
void USART1_IRQHandler(void) //?
{
u8 Res;
#ifdef OS_TICKS_PER_SEC //
OSIntEnter();
#endif
if(USART_GetITStatus(USART1, USART_IT_RXNE) != RESET) //
Res =USART_ReceiveData(USART1);//(USART1->DR); //[/mw_shl_code]
[mw_shl_code=c,true]添加以下两条语句
USART_SendData(USART1,Res);//
while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);//[/mw_shl_code]
[mw_shl_code=c,true]注释掉if语句之后的
/* if((USART_RX_STA&0x8000)==0)//
{
if(USART_RX_STA&0x4000)//
{
if(Res!=0x0a)USART_RX_STA=0;//
else USART_RX_STA|=0x8000; //
}
else //????????0X0D
{
if(Res==0x0d)USART_RX_STA|=0x4000;
else
{
USART_RX_BUF[USART_RX_STA&0X3FFF]=Res ;
USART_RX_STA++;
if(USART_RX_STA>(USART_REC_LEN-1))USART_RX_STA=0;//
}
}
} */ [/mw_shl_code]
[mw_shl_code=c,true]
}
#ifdef OS_TICKS_PER_SEC //
OSIntExit();
#endif
}
#endif[/mw_shl_code]
[mw_shl_code=c,true]主程序[/mw_shl_code]
[mw_shl_code=c,true]int main(void)
{
delay_init();
NVIC_Configuration();//
uart_init(9600);//
LED_Init();
while(1)
{
LED0 = !LED0;
delay_ms(100);
}
}
[/mw_shl_code]
可是在用串口调试助手调试的时候,出现以下问题,如图,求帮忙解答,谢谢
|