Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
4G模块
AT_URC
求助:使用4G模块进行远程升级有好的方案吗?URC接收数据问题
发布于 2024-04-24 16:43:22 浏览:690
订阅该版
[tocm] ## 🔧硬件配置: - STM32F407ZET6 - 中移物联网 ML307A-DCLN 4G模块 ## 🧾软件环境: - RT-Thread Studio [2.2.6] - rt-thread [4.0.3] - at_device [latest] ## 💡目前方案: ✿第一步:4G模块下载升级文件 ```c //发送AT指令,下载文件 if (at_exec_cmd(resp, "AT+MHTTPDLFILE=\"%s\",\"%s\"",http_ip,file_path) != RT_EOK) { LOG_E("Download Failed!"); } ``` ✿第二步:获取文件 ```c //发送AT指令,获取文件 if (at_exec_cmd(resp, "AT+MFGET=\"%s\"",file_path) != RT_EOK) { LOG_E("Get Failed!"); } else { LOG_E("Get Success!"); } ``` ✿第三步:转存文件到STM32的flash ```c // 暂未完成 ``` ## ❓所遇问题: - ✿第一步下载文件:此4G模块不支持FTP相关的AT命令,只能使用HTTP相关的AT命令,在下载文件后直接将文件存储在模块内,初步测试最大能存储近400KB内容,但后续的升级文件可能超过这个容量。 初步设想解决方案是转存一部分删除一部分。 - ✿第二步获取文件:通过AT指令获取模块内的文件并通过串口传输到STM32中,但是回传的数据中有`\r\n`。 ![screenshot_image.png](https://oss-club.rt-thread.org/uploads/20240424/6427cb31768832c88edadaa8cae91be5.png) 导致目前并不能通过`"+MFGET", "\r\n"`来识别接收的数据,自然也不能进到`urc_HTTP_Upgrade_func`函数中。 ```c static void urc_HTTP_Upgrade_func(struct at_client *client ,const char *data, rt_size_t size) { LOG_D("test2.bin data @%s", data); } static struct at_urc urc_table[] = { {"+MFGET", "\r\n", urc_HTTP_Upgrade_func}, }; ``` **请教一下各位大佬如何能够解决这个接收数据的问题? 以及有什么更好的OTA方案吗?**
查看更多
小小李sunny
2024-04-25
这家伙很懒,什么也没写!
ota_downloader软件包中的http_ota 方式了解一下呢,边下载边转存。
6
个回答
默认排序
按发布时间排序
Jack_____
2024-04-25
纸上得来终觉浅,绝知此事要躬行。
这个问题的原因是因为发送AT指令太早了,URC列表还没初始化,导致只能执行AT指令而不能执行到URC。 > [RT_thread AT组件URC 数据处理遇到的问题](https://blog.csdn.net/ylzmm/article/details/104128203 "RT_thread AT组件URC 数据处理遇到的问题") 如果靠后执行AT指令(URC列表已经初始化),发送AT指令就会只执行URC对应的函数而AT指令返回检测就没有。(见上述引用链接) ##### 问题: ![screenshot_image.png](https://oss-club.rt-thread.org/uploads/20240425/26d474aaec03d5f67b7efc27efe510b8.png) ##### 程序: ![screenshot_image.png](https://oss-club.rt-thread.org/uploads/20240425/d481d58191d8445749314d0d063ce4c4.png) ##### 现象: ![screenshot_image.png](https://oss-club.rt-thread.org/uploads/20240425/0ecd3e72832b38d268fbf07123e08bc9.png)
JonasWen
2024-04-25
这家伙不懒,但是什么也不想写!
``` static struct at_urc urc_table[] = { {"+MFGET", ",", urc_HTTP_Upgrade_func}, }; ``` 用逗号做结束符,在URC回调函数里再处理后续数据的接收,但要保证at_client的缓存足够保存至少一次通讯的数据
梦笑真美
2024-04-25
这家伙很懒,什么也没写!
http协议down文件下载
huoshen
2024-04-25
这家伙很懒,什么也没写!
直接不用这个模块进行下载,只用来联网,用rtt的组件包下载,400k是因为存在了这个4g模块里。
Z_Y
2024-04-26
这家伙很懒,什么也没写!
1、可以用mqtt协议对文件分片传输 2、固件里面本就有\r\n,确实会对收包有影响,我是使用base64对固件编码后传输,MCU收到后用base64解码
撰写答案
登录
注册新账号
关注者
0
被浏览
690
关于作者
Jack_____
纸上得来终觉浅,绝知此事要躬行。
提问
13
回答
25
被采纳
5
关注TA
发私信
相关问题
1
AT组件连接BC26并使用Webclient软件包解析数据错误。URC问题
2
使用EC20的AT组件,怎么接受服务器主动下发的数据?
3
关于AT组件中的URC接收数据问题
4
udp通信协议at组件数据解析
5
RTT AT组件URC问题
6
请教一个AT组件与URC处理的问题
7
AT组件的EC20的urc_recv_func函数会不会有内存泄漏的问题?
8
AT Client URC 数据处理问题?
9
URC中进行接收数据,漏接了一段数据
10
请问如何在程序中删除创建好的AT URC 数据列表
推荐文章
1
RT-Thread应用项目汇总
2
玩转RT-Thread系列教程
3
国产MCU移植系列教程汇总,欢迎查看!
4
机器人操作系统 (ROS2) 和 RT-Thread 通信
5
五分钟玩转RT-Thread新社区
6
【技术三千问】之《玩转ART-Pi》,看这篇就够了!干货汇总
7
关于STM32H7开发板上使用SDIO接口驱动SD卡挂载文件系统的问题总结
8
STM32的“GPU”——DMA2D实例详解
9
RT-Thread隐藏的宝藏之completion
10
【ART-PI】RT-Thread 开启RTC 与 Alarm组件
最新文章
1
RT-thred的stm32h723对应bsp包CubeMX添加其他外设报错
2
RT-Thread中的time溢出问题,时间戳溢出,解决方法
3
ART-PI使用env驱动ETH网卡,pc和板子可以ping通
4
SystemView线程名字不显示
5
只用网页也能跑RT-Smart 无门槛腾讯Cloud studio + smart-build快速构建
热门标签
RT-Thread Studio
串口
Env
LWIP
SPI
AT
Bootloader
Hardfault
CAN总线
FinSH
ART-Pi
DMA
USB
文件系统
RT-Thread
SCons
RT-Thread Nano
线程
MQTT
STM32
RTC
FAL
rt-smart
I2C_IIC
ESP8266
UART
cubemx
WIZnet_W5500
ota在线升级
PWM
BSP
flash
freemodbus
packages_软件包
潘多拉开发板_Pandora
定时器
ADC
GD32
flashDB
socket
编译报错
中断
Debug
rt_mq_消息队列_msg_queue
keil_MDK
ulog
SFUD
msh
C++_cpp
MicroPython
本月问答贡献
RTT_逍遥
8
个答案
2
次被采纳
三世执戟
7
个答案
1
次被采纳
KunYi
6
个答案
1
次被采纳
winfeng
2
个答案
1
次被采纳
chenyaxing
2
个答案
1
次被采纳
本月文章贡献
catcatbing
2
篇文章
5
次点赞
swet123
1
篇文章
3
次点赞
YZRD
1
篇文章
2
次点赞
Days
1
篇文章
2
次点赞
阳光的掌控者
1
篇文章
1
次点赞
回到
顶部
发布
问题
分享
好友
手机
浏览
扫码手机浏览
投诉
建议
回到
底部