串口接受3个字节的数据并发送第二个数据

2019-07-20 23:05发布

大家帮我看看,我这个函数有什么问题,我先定义了一个200个字节数组,然后让中断接受3个数据并发送中间那个数据,但是串口助手没有收到数据,
int main(void)
{
        NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//设置系统中断优先级分组2
        delay_init(168);                //延时初始化
        uart_init(115200);        //串口初始化波特率为115200
        LED_Init();                                  //初始化与LED连接的硬件接口  
        while(1)
        {
                if(STA==1)
                {                                       
       USART_SendData(USART1, REC[1]);
       while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);//等待发送结束
                  STA=0;
                }


void USART1_IRQHandler(void)                        //串口1中断服务程序
{  u8 a=0;
   u8 j=0;
        if(USART_GetITStatus(USART1, USART_IT_RXNE)!= RESET)  //接收中断
        {   
                if(STA==0)
          {
                        a=USART_ReceiveData(USART1);//(USART1->DR);        //读取接收到的数据
                 REC[j]=a;
                 j++;
           if(j==2)
                 {
                         STA=1;
                         j=0;
                 }
                else STA=0;
                }
}
}

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。