我在一个现成的 GPS 导航仪(ACCO P433 WinCE5)上用 eVC 编程设置串口接收GPS模块输出的数据,发现波特率从2400到115200不管怎么变,GPS的接收都是正常的,甚至起始位、停止位、校验这些参数乱设置均接受正常!实在是怪事一件?
是什么回事?自适应?还是串口驱动被做了手脚无论应用层如何设置其内部设置不变?
估计你的GPS模块是由GPS组件和MCU封装在一起的,MCU可能对波特率做了自适应的处理。从你的角度来看就是能适应所有的波特率,从GPS这个模块内部来看是MCU对波特率做了处理然后和内部的GPS组件在进行通讯。如果我没猜错的话,你的GPS模块应该是可以接受用户命令的吧。
你应用程序使用的是虚拟串口访问 GPS 所以任何波特率没有影响。
不是虚拟串口,是真实的串口。
我也觉得自适应是不可能的。因为 GPS 是发送端,它是不可能知道我接收端设置什么波特率的,自适应的只可能是接收端,它发现收到的格式不符后就调整到另一个波特率直至格式符合常理为止。
“GPS组件和MCU封装在一起”这一想法比较新颖,谢谢,学习了!