STM32 RS485 传输

2019-08-17 06:44发布

请教原子哥,我买了一个TTL转485的转接板,接在mini板上,用串口2测试,在串口中断接收里将接收的数据返回,现在遇到的问题是,通过485可以发送一个字符返回一个字符比如0xAA,但是当发送8个字符时就不能返回,(我不通过485直接用串口测试发10个字符都没问题全部有返回)下面是我的串口接收代码,主函数是个死循环




串口发送
void USART2_PutChar(u8 ch )
{
   RS485EN=0;
         USART2->DR = (u8) ch;   
        // while((USART2->SR&0X40)==0){};//Ñ-»··¢Ëí,Ö±μ½·¢Ëííê±Ï   
          while(USART_GetFlagStatus(USART2, USART_FLAG_TXE) == RESET);
   RS485EN=1;

}




串口接收


void USART2_IRQHandler(void)  

{
  u8 i;
        if(USART_GetITStatus(USART2, USART_IT_RXNE) != RESET)
                        {
                        RxArr[RxLen++]=USART_ReceiveData(USART2);
                        //        USART2_PutChar(USART_ReceiveData(USART2)  );
                               
                        }
  if(RxLen==RxArr[5]+6)
        {
                for(i=0;i<12;i++)
                USART2_PutChar(RxArr[i]);
    RxLen=0;
       
        }       
        }


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