嵌入式技术论坛
直播中

石玉兰

8年用户 1523经验值
私信 关注
[问答]

怎么解决MQTT数据发送过于频繁导致系统重启的问题?

1.接收传感器数据并通过MQTT发送,发送间隔为50ms,会出现系统重启现象如下,发送字节长度为160;
如果把发送间隔改为300ms以上就正常;
2.怎么解决这个问题,各位大神;多谢了;
3.现象

[E/at.skt.ec200x] ec800x device socket(0) wait event timeout.
[D/mqtt] MQTTSerialize_publish sendPacket rc: -1
[D/pahomqtt] inter mqtt_offline_callback!
[D/mqtt] restart!
[D/pahomqtt] inter mqtt_connect_callback!
[D/mqtt] ipv4 address port: 1883
[D/mqtt] HOST = '59.110.11.225'
[I/mqtt] MQTT server connect success.
[I/mqtt] Subscribe #0 Reader/34001B001750524154363820/# OK!
[D/pahomqtt] inter mqtt_online_callback!
psr: 0x61010000
r00: 0xfffffff8
r01: 0x593a07c0
r02: 0x00000000
r03: 0x593a07c0
r04: 0x00000000
r05: 0x0000006c
r06: 0x0000756e
r07: 0x2000f670
r08: 0xdeadbeef
r09: 0xdeadbeef
r10: 0xdeadbeef
r11: 0xdeadbeef
r12: 0xffffffff
lr: 0x0802c473
pc: 0x080007a4
hard fault on thread: mqtt0
thread pri status sp stack size max used left tick error


radio 6 suspend 0x00000298 0x00000800 52% 0x00000002 000
pub 7 suspend 0x00000184 0x00001000 17% 0x00000008 000
mqtt0 10 running 0x000002d8 0x00002000 14% 0x00000001 000
wiz 5 suspend 0x000000b0 0x00000400 32% 0x0000000d 000
wiz_stat 28 suspend 0x000000b8 0x00000800 21% 0x00000008 000
at_clnt 9 suspend 0x00000100 0x00000600 16% 0x00000004 000
ec800x 30 suspend 0x0000013c 0x00000600 66% 0x00000011 000
at_clnt 9 suspend 0x00000100 0x00000600 70% 0x00000004 000
tshell 20 suspend 0x00000188 0x00001000 09% 0x00000009 000
mmcsd_de 22 suspend 0x000000b4 0x00000400 62% 0x0000000a 000
sys_work 23 suspend 0x00000110 0x00000800 70% 0x00000009 000
tidle0 31 ready 0x00000074 0x00000100 76% 0x00000007 000
timer 4 suspend 0x000000ac 0x00000200 33% 0x00000009 000
main 10 suspend 0x00000144 0x00000800 63% 0x0000000d 000
FPU active!
bus fault:
SCB_CFSR_BFSR:0x82 PRECISERR SCB->BFAR:593A07C0

回帖(1)

尚文清

2023-2-14 10:57:29
猜测可能不是pahoMqtt的问题,但是我没用过。
可能是at设备的收发能力限制的问题,好奇使用ec800为什么会有频繁发送的需求,都是钱啊
如果需要排除mqtt库原因的话可以尝试RyanMqtt,无延时的连续发几百条qos2消息都不会有问题
举报

更多回帖

发帖
×
20
完善资料,
赚取积分