NB-IoT终端收不到平台下发数据的问题

本文解决了一个NB-IoT设备无法接收平台数据的问题。问题在于MCU未正确接收NB模组的AT指令,导致平台下发数据时设备无响应。通过断开并直接读取NB模组的uart口,发现模组已发送AT指令,但MCU未能接收。检查代码后发现uart口被意外关闭,修复此bug后,设备恢复正常数据接收。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

        首先,NB-IoT终端收不到平台下发数据的问题在产品调试初期会经常遇见,最主要的原因是NB模组进入了PSM模式,此时下行不可达。如果平台发送了实时消息,则一定会发送失败。解决办法一是关闭NB模组休眠功能,二是在发送下行数据前先唤醒NB模组,三是实时消息改为发送缓存消息。

        而本文中遇到的问题,不是上述问题。调试设备发现,即使激活了NB模组,且NB模组成功地往平台上报了一条数据的情况下,再从平台下发实时消息或者缓存消息,都不能成功。现象是通过产品的Debug信息看不到模组任何的打印,平台侧一直转圈圈,最后也超时了。仔细研究了OneNet平台的数据下发记录,发现平台实际上是有终端发送的,只不过终端没有发送应答,所以平台会超时,显示发送失败。但是为什么平台发了,而设备端没有任何打印呢?是软件的Bug导致没有处理NB模组的AT命令吗?为了验证这个问题,我把MCU与NB模组的uart口断开,将NB模组的uart口直接接到PC上,通过串口调试工具查看AT命令。发现确实是模组有上报AT指令,只不过MCU没有接收到。

        仔细检查MCU代码,发现确实有一处地方误把MCU的uart口关闭了,才导致的这个问题。修复这个Bug后再测试就完全正常了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值