我想实现串口中断接收上位机发过来的字符串,判断后,显示其相关信息。第一次发送后,显示的内容正确,但第二次发送其他的字符串时,显示的仍然是第一次的内容,不知道为什么,还请各位大神多多帮助?这是中断程序:
void USART1_IRQHandler(void)
{
if(USART_Ge
tiTStatus(USART1,USART_IT_RXNE) != RESET) //中断产生
{
USART_ClearITPendingBit(USART1,USART_IT_RXNE); //清除中断标志
Uart1_Buffer[Uart1_Rx_Num] = USART_ReceiveData(USART1);
Uart1_Rx_Num++;
}
if((Uart1_Buffer[0] == 0x5A)&&(Uart1_Buffer[Uart1_Rx_Num-1] == 0xA5)) //判断最后接收的数据是否为设定值,确定数据正确性
Uart1_Sta=1;
if(USART_GetFlagStatus(USART1,USART_FLAG_ORE) == SET) //溢出
{
USART_ClearFlag(USART1,USART_FLAG_ORE); //读SR
USART_ReceiveData(USART1); //读DR
}
}注:数组长度固定位3
一周热门 更多>