这个自定义的接受数组的函数问题出在哪里?
是不是接收中断标志位或者是哪个函数少了?
接收数据的时候,不应该先判断接收缓存是否有数据吗?
给你看个以前我的写的程序。使用接收中断的方式接收数据。
void USART1_IRQHandler(void)
{
uint8_t Res;
if(USART_GetITStatus(USART1, USART_IT_RXNE) != RESET)
{
USART_ClearITPendingBit(USART1, USART_IT_RXNE);
Res =USART_ReceiveData(USART1);//(USART1->DR);
if(USART1_Structure.RX_Length<50)
{
USART1_Structure.Rcv_Buffer[USART1_Structure.RX_Length]=Res;
}
else
{
USART1_Structure.RX_Length=0;
}
USART1_Structure.RX_Length++;
if(USART1_Structure.RX_Length==4) //ÊÇ·ñœÓÊÕÍê±Ï
{
USART1_Structure.RX_Num=4; //×ܹ²œÓÊÕµÄÊýŸÝÊý
USART1_Structure.Rcv_Complement=1; //ÊýŸÝœÓÊÕÍê±Ï
USART1_Structure.RX_Length=0; //œÓÊÕÊýŸÝ³€¶È±êÖŸÇåÁã,ÒÔ±ãÏÂÒ»ŽÎœÓÊÕ
}
}
}