请问大神们,我自己写了一个在中断函数中的buffer,用于接收上位机通过串口发送的数据。但是这样写后为什么标志位rx_flag始终不能置1呢?我发送 55 10 10 10 输出不了收到的数据,请问我是哪里有问题么?[mw_shl_code=c,true]int main(void)
{
while(1)
{
if(rx_flag==1)
{
rx_flag=0;
for(i=0;i<4;i++)
{
USART_SendData(USART1,Rec);
while(USART_GetFlagStatus(USART1, USART_FLAG_TC)==RESET);
}
}
}
}
void USART1_IRQHandler(void)
{
u8 Rx_Counter;
u8 ch;
if (USART_GetITStatus(USART1,USART_IT_RXNE))
{
USART_ClearITPendingBit(USART1,USART_IT_RXNE);
ch=USART_ReceiveData(USART1);
if(Rx_Counter==0)
{
if(ch==0x55)
{
Rec[0]=0x55;
Rx_Counter++;
}
else
{
Rx_Counter=0;
}
}
else if(Rx_Counter==4)
{
Rx_Counter=0;
rx_flag=1;
}
else
{
Rec[Rx_Counter++]=ch;
}
}
}[/mw_shl_code]
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
您说的有道理,但是我改了后,还是没有任何反应呢,依然输出不了。库函数肯定是对的,因为如果我就改为收1个字节,那么就正常的。
一周热门 更多>