stm32串口的问题

jackedison   2008-12-10 14:22 楼主
中断法收数据,波特率38400就正常,再往高去,就收不全了。
测试程序,PC发送17个字节,STM32只能收到14个字节,以前在别的芯片上都是这么处理的,到stm32上行不通了、

回复评论 (6)

中断服务函数里就这么一段处理

  if (USART_GetITStatus(USART1, USART_IT_RXNE) != RESET)
  {
    /* Read one byte from the receive data register */
    RxBuffer1.buffer[RxBuffer1.inptr++] = USART_ReceiveData(USART1);
    if (RxBuffer1.inptr > RxBufferSize - 1) RxBuffer1.inptr = 0;
  }
点赞  2008-12-10 14:23

郁闷ing,谁碰到过

                                  
点赞  2008-12-10 14:44

检查一下波特率的设置是否正确

                                 波特率越高,对时钟的误差越敏感,请同时考虑时钟的误差和与PC端时钟误差的同步问题。
点赞  2008-12-10 14:49

115200不算高啊

                                 我用的是万利的开发板,难道时钟精度这么差?
点赞  2008-12-10 14:54

115200没有问题

                                   我试过,115200没有问题。如果担心波特率不同造成的问题,可以进行简单的试验:用同1块电路板,串口1发送,串口2接收。
点赞  2008-12-10 14:58

楼上的兄弟

                                 我现在觉得程序肯定没有问题,串口的初始化照example里写的,你的代码是怎么做的?
点赞  2008-12-10 15:04
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复