打印

485通讯问题,串口精灵接收的数据和发送的数据个数不一致

[复制链接]
2920|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
额,又来提问题了。。
上次感谢各位的帮忙,在开发板上调试成功了。。
但是当把程序移植到另一个板上的时候,又出问题了。。



为什么串口精灵接收的数据总会比实际发送的数据多?
而且是随机的,有时候多一位,有时候多两位。。
这次的板和开发板的程序不同只是多开了TIM2的定时器。。
串口的中断处理如下:
void USART2_IRQHandler(void)
{
if(USART_GetITStatus(USART2, USART_IT_RXNE) == SET)   // 接收中断有效 ;
   {
     RxBuffer[RxCount++] = USART_ReceiveData(USART2); // 返回USARTx最近接收到的数据 ;  
     USART_ClearITPendingBit(USART2, USART_IT_RXNE);  // 清除USART2的接收中断 ;
  
     if(RxCount == RxBufferSize)
     {
        RX_Flag=1;                 //接收完成标志置位
        Crc_count = RxCount; //crc校验计数器赋值
     }
   }
   if(USART_GetITStatus(USART2, USART_IT_TXE) == SET) // 发送中断有效 ;
   {
     USART_SendData(USART2, TxBuffer[TxCount++]);    // 发送数据 ;                  
     USART_ClearITPendingBit(USART2, USART_IT_TXE);   // 清除USART2的发送中断 ;
  
     if(TxCount == TxBufferSize)
     {
        while ( USART_GetFlagStatus(USART2, USART_FLAG_TC ) == RESET );   //判断发送是否完成
        TX_Flag=1;                                                     //发送完成标志置位
     }   
   }
}
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

220

帖子

1

粉丝