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

5、采用的自定义协议,从机收到一包完整的数据再进行解析,然后获取相应的数据,计算校验值,最后发送。
个人认为,数据处理中没有复杂计算,整个流程也没有多余的延时,不知道问题出在哪里,根据计算,一个发收周期在120ms左右(考虑了处理程序的运行时间)。而现在耗时确是理论计算的2倍左右。
能想到的办法:
1、操作系统
这一方法,和同学讨论后,放弃了。一则对操作系统不是很熟悉,会增加开发周期;二则认为上操作系统会额外增加消耗,可能出现其他意想不到的问题。
2、软件FIFO
在其他论坛看到有人测试过使用FIFO发送数据会节省很多时间,正在验证中。。。
3、提高波特率
此方法效果不是很明显,速度提升不高。而且波特率过高,传输距离又会降低。
综合以上,我想请问还有其他限制速度的原因么?或者还有其他什么方法提高速度?又或者哪些方面没有考虑到?
Gary Gao:
有可能是无线传输模块的问题,不知道你有没有UART 转usb的模块,或是是我们MSP430的Launchpad 使用有线方式通信试试。
user4715584:
回复 灰小子:
使用的下面这种
空中速率,设置19.2k,提高空速是可以减少时间,但是通信距离又会降低。纠结中
user4715584:
回复 灰小子:
通过多次测试,最终确定是无线模块空速问题。有线485方式下,收发周期在150ms左右,这个虽然和理论计算还有点差距,但是可以接受。另外还要考虑所用线的材质。
至此,通信速度问题算是解决了。
TI中文支持网




