今天,CDMA模块正常工作了,其原因也仅仅是一行代码的问题,但给自己很多的启示。
用的ARM有三个串口,其中U2用作与PC通讯,U1接的CDMA模块。程序用两个串口的接收中断的方式实现:U2的接口中断将收到的数据原样通过U1发给CDMA模块,U1的接收中断将接收到的数据通过U2发送出去,到PC。
只是在U1的接收中断中发送是这么实现的:
UARTprintf("CDMA Rx Int: %c", RxData);
而UARTprintf不是用中断的方式(即用查询方式)实现。这就出现一个问题:CDMA模块发到一串数据时,U1接收一个字符后就发一次"CDMA Rx Int:",发这些数据是需要时间的!!!!!!所以CDMA发送的后面的数据就有部分丢失(U1接收中断要等数据发送完成才能返回!!!!)
最后将这一串数据去掉就可以了。。
UARTprintf(" %c", RxData);
对于中断,还需要有更清醒,更深刻的认识。。。。。。。。。。
另外,今年还看了赵总工的FreeRTOS的平台,觉得有些困难,不知道从何入手,主要是之前没做过操作系统的东西,还有很多的东西要学习。。。。。。
转载自原文链接, 如需删除请联系管理员。
原文链接:CDMA模块通讯正常,转载请注明来源!