This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

串口发送数据速度如何提高?

Other Parts Discussed in Thread: MSP430F5438

1、使用msp430f5438;

2、系统MCLK=16MHZ,SMCLK=1MHZ

3、串口波特率9600,8N1;

4、用调试助手向单片机发送一个数据包(24字节)用于读取当前单片机检测数据,返回来的数据包长39字节,PC机和单片机之间用的无线方式(那种常见的无线串口收发模块),发送查询命令间隔居然需要260ms,低于250ms返回来的数据就会出现乱码。如下图

5、采用的自定义协议,从机收到一包完整的数据再进行解析,然后获取相应的数据,计算校验值,最后发送。

个人认为,数据处理中没有复杂计算,整个流程也没有多余的延时,不知道问题出在哪里,根据计算,一个发收周期在120ms左右(考虑了处理程序的运行时间)。而现在耗时确是理论计算的2倍左右。

能想到的办法:

1、操作系统

这一方法,和同学讨论后,放弃了。一则对操作系统不是很熟悉,会增加开发周期;二则认为上操作系统会额外增加消耗,可能出现其他意想不到的问题。

2、软件FIFO

在其他论坛看到有人测试过使用FIFO发送数据会节省很多时间,正在验证中。。。

3、提高波特率

此方法效果不是很明显,速度提升不高。而且波特率过高,传输距离又会降低。

综合以上,我想请问还有其他限制速度的原因么?或者还有其他什么方法提高速度?又或者哪些方面没有考虑到?

  • 有可能是无线传输模块的问题,不知道你有没有UART 转usb的模块,或是是我们MSP430的Launchpad 使用有线方式通信试试。

  • 你用的哪种无线模块?可能空中通讯速率太低了

  • 使用的下面这种

    空中速率,设置19.2k,提高空速是可以减少时间,但是通信距离又会降低。纠结中

  • 通过多次测试,最终确定是无线模块空速问题。有线485方式下,收发周期在150ms左右,这个虽然和理论计算还有点差距,但是可以接受。另外还要考虑所用线的材质。

    至此,通信速度问题算是解决了。