断断续续困扰了一个月的问题,莫名其妙地解决了。
之前,直连线,交叉线,各ARM,ARM各串口,各种码率;ARM RX TX短接;ARM和PC通讯……都试过,各种验证,结论是只要ARM和GPRS连就收不到数据,串口调试助手也收不到。CSDN上的大牛们建议检查硬件,模块公司和第三方都当了甩手掌柜。今天下定决心搬来示波器。
把GPRS模块拆开,对照MAX3238datasheet瞅了半天,未果,重新上螺丝拧好。用示波器对比了PC和ARM串口输出波形,无明显幅度区别。在GPRS和PC通讯时把GPRS的各脚好好测了测:峰峰值接收端19V,发送端12V,7脚5.2V,正负对半;8脚峰峰值2.2,均值6.6。郁闷地把GPRS的2,3,5脚连接ARM串口对应脚,打算看看这时的现象,居然就在串口调试助手里看到了接收的数据!就像是幻觉。若把九针都对接,就收不到了;换到只有2,3,5脚的串口上,仍然有数据;看来有流控方面的原因。但是所有的各种连接可能都在之前试过无数遍了,我更倾向于GPRS被“激活”了。莫名其妙啊莫名其妙,难道是它在庞大高级的安捷伦的阴影下屈服了?
补:11.8, 问题有了答案。
只接2,3,5时,无法实时接收,总是在发送数据的同时能接收到上几次发送后的部分回复。将GPRS的7脚接ARM串口的8脚后,问题解决:ARM发送AT命令后可以从GPRS收到完整的回复ATOK。用示波器观察前后的波形:
ARM端:串口空载,2脚:PP9.5V;8脚&