关于stm32的一些问题 求解决

img


这个自定义的接受数组的函数问题出在哪里?
是不是接收中断标志位或者是哪个函数少了?

接收数据的时候,不应该先判断接收缓存是否有数据吗?
给你看个以前我的写的程序。使用接收中断的方式接收数据。

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;        //œÓÊÕÊýŸÝ³€¶È±êÖŸÇåÁã,ÒÔ±ãÏÂÒ»ŽÎœÓÊÕ     
         }       
      } 
} 

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^