void USART1_IRQHandler(void) //串口1中断服务程序
{
unsigned char rCh;
sta
tic char rCnt = 0;
if(USART_GetFlagStatus(USART1, USART_FLAG_RXNE) == SET)
{
// USART_SendData(USART1, USART_ReceiveData(USART1));
rCh = USART_ReceiveData(USART1);
USART_RX_BUF[rCnt] = rCh;
rCnt++;
if(rCnt==10)
{
rCnt=0;
memcpy(USART_RX_TEM,USART_RX_BUF,10);//缓冲
USART_RX_STA = 1; //通知主循环处理
}
USART_ClearITPendingBit(USART1, USART_IT_RXNE);
//USART_ClearFlag(USART1,USART_FLAG_TC);
}
}
发送的:
if(USART_RX_STA==1)
{
USART_RX_STA=0;
UART_PutStr(USART1, "USART1 OK!
");
UART_PutStr(USART1, (u8*)USART_RX_TEM[USART_REC_LEN]);
}
运行后:串口返回的数据和发送的对不上。。发送的第一句正常 ,第二句对不上。
不错 看着别的程序改的 ,没看好。。
一周热门 更多>