当前位置: 代码迷 >> 单片机 >> 串口传输速度的有关问题,+++++++++++++++++++++++++++++++++++++++++
  详细解决方案

串口传输速度的有关问题,+++++++++++++++++++++++++++++++++++++++++

热度:541   发布时间:2016-04-28 16:35:32.0
串口传输速度的问题,+++++++++++++++++++++++++++++++++++++++++
我使用的是avr的单片机ATmega16L来做串口通讯,使用的是14.7456MHz的晶振,115200的波特率,2.0的蓝牙传输,传输数据只有七位Buff[7],使用的是时间中断来发送。
为什么我传输数据速度很慢?接收一组数据需要十几毫秒的时间,哪位高手帮我一下

------解决方案--------------------
既然用的是串口通讯,115200的波特率,那理论上1S应该能传输115200位数据。你接受一组数据需要十几毫秒,看看是不是每两组数据之间的等待时间是不是太长了。
------解决方案--------------------
会不会是蓝牙有速度限制?如果你是串口发数据给蓝牙模块,蓝牙再发数据出去,那么应该考虑一下蓝牙发送数据的问题。
------解决方案--------------------
串口本身有协议的,起始要有同步帧,结束有超时

115200只是传输数据时的速度,发送前后都有时间开销的

除此之外,还要看你是怎么检测“接收一组数据需要十几毫秒的时间”的
------解决方案--------------------
你采用的是同步串口吗?串口通讯进行读写,需要配置读写超时呢!
------解决方案--------------------
理论和实际是有较大差距的,10多毫秒完全正常。
------解决方案--------------------
两组数据发送时间隔时间太长了,是程序问题
------解决方案--------------------
1. 一组数据多大
2. 如何测量时间
3. 采用什么协议
4. 如何实现
  相关解决方案