打印

stm32 串口的问题

[复制链接]
1950|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
big5|  楼主 | 2008-12-10 14:22 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
中断法收数据,波特率38400就正常,再往高去,就收不全了。
测试程序,PC发送17个字节,STM32只能收到14个字节,以前在别的芯片上都是这么处理的,到stm32上行不通了、
沙发
big5|  楼主 | 2008-12-10 14:23 | 只看该作者

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

  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;
  }

使用特权

评论回复
板凳
big5|  楼主 | 2008-12-10 14:44 | 只看该作者

郁闷ing,谁碰到过

使用特权

评论回复
地板
香水城| | 2008-12-10 14:49 | 只看该作者

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

波特率越高,对时钟的误差越敏感,请同时考虑时钟的误差和与PC端时钟误差的同步问题。

使用特权

评论回复
5
big5|  楼主 | 2008-12-10 14:54 | 只看该作者

115200不算高啊

我用的是万利的开发板,难道时钟精度这么差?

使用特权

评论回复
6
ijk| | 2008-12-10 14:58 | 只看该作者

115200没有问题

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

使用特权

评论回复
7
big5|  楼主 | 2008-12-10 15:04 | 只看该作者

楼上的兄弟

我现在觉得程序肯定没有问题,串口的初始化照example里写的,你的代码是怎么做的?

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

91

主题

242

帖子

0

粉丝