【4G】4G模块串口时隐时现的解决方法

                        <p>使用4G模块进行二次开发时,有的群友碰到4G模块串口“时隐时现”的情况:</p><p><br></p><blockquote><p><img style="width: 503px;" src="https://oldask.openluat.com/image/show/attachments-2020-02-lY5nXP0R5e3781215a8a3.png" class="img-responsive"></p><p>伴随系统发现新硬件的提示音,设备管理器中,串口经常“失踪”后又“诈尸”<br></p></blockquote><blockquote><p><img style="width: 497px;" src="https://oldask.openluat.com/image/show/attachments-2020-02-q3O1ZvuT5e378127638a7.png" class="img-responsive"></p><p>Luatools也不能正确识别串口,无法打印任何Trace<br></p></blockquote><p><br></p><p>通常,造成串口无法识别,或者频繁闪现的原因,是模块反复重启造成的。只有模块重启时,系统才会不断地“发现新硬件”。</p><p>那么,什么情况会造成模块反复重启呢?通常<b>供电不足</b>和<b>代码错误</b>两个原因。</p><p><br></p><h2>供电不足<br></h2><p>针对<b>供电不足</b>导致重启的情况,建议开发者检查供电问题,如果是使用USB线供电,不要使用usb-hub,也不要插在前面板,尽量使用机箱后边的插口。尽量使用足够粗的microUSB数据线,避免压降导致供电不足(必要时,可以双插usb线增强供电),模块反复重启。必要时,建议使用示波器查看供电情况。</p><p><br></p><h2>代码错误<br></h2><p>而<b>代码错误</b>导致的重启,通常AT模式不会遇到,只有Luat才会出现。</p><blockquote><p><img style="width: 491.5px;" src="https://oldask.openluat.com/image/show/attachments-2020-02-Pr7JCmyn5e3782b4753b6.png" class="img-responsive"></p><p>进行语法检测,可以有效避免由于代码错误导致的异常重启<br></p></blockquote><p>开发者在下载Lua脚本,建议进行语法检测,避免常见的语法错误;另外可以使用UART1/2输出TRACE。</p><p><br></p><p>由于模块重启速度很快,但是Windows识别新硬件需要很久的时间,所以通常会错过模块输出的错误信息,没有错误信息就没有办法进一步跟踪调试程序。那么怎么办呢?</p><p>如果开发者没有使用UART1/2,那么可以使用UART1/2输出TRACE,打开串口调试助手查看模块输出的重启日志,进一步分析代码运行的错误(波特率115200)。</p><p>通过UART1/2查看TRACE,这样一来,就不会因为Windows识别新硬件速度慢,而错过模块输出的错误信息了。<br></p><p><br></p><p>仍然反复重启,且找不到错误原因,那么建议开发者使用S720开发板进行对比测试。通常可能是布线问题,供电问题等多种因素造成的反复重启。</p><p class="title">如果开发者遇到无法解决又无法判断根源的反复重启问题,请参考文章:<a href="https://luatdoc.papapoi.com/618/" target="_blank">《关于Windows/Linux系统下如何用USB口抓取4G模块底层Trace?》</a></p><p class="title">抓取到相关底层日志后,进QQ群交流:851800257<br></p>

上次更新 2021-01-28