主控:w801 4g使用的是移远的EC801
我给4G模块测试单条AT指令是能够正确返回的,但是将我以前用stm32与4G通信的项目移植过来,并且接收数据的代码时按照测试成功的代码写的,下面是测试成功的代码,实现的是:我给4G模块每间隔500tick发送AT+CSQ指令,我用面代码测试4G模块,如果接收到的数据里面有”OK”就将接收到的数据打印出来,这个测试是成功的
成功的返回数据如下
但是我修改上述代码中接收的部分,修改如下图,这个代码中的rx_flag也是和上面的代码一样在回调函数中置1,两个代码的初始化,以及回调函数都是一模一样的,这个代码实现的是如果接收到的是AT指令所对应的正确的返回,就返回1,否则就返回0,但是我代码每一次运行到这块都会死机,并且打印的结果是:RX_Cmd:^boot rom
代码截图如下
打印截图如下:其中RDY和OK是应有的返回数据
最新发现:我用串口助手模拟4G给w801回复数据,我一回复就死机。
最新最新发现:我给这个函数里套上一个死循环又好了,至少能进这个接收函数而不会死机了image.png
这是为什么呢