Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
RT-Thread Studio
RTT-Studio编译问题--sscanf函数
发布于 2019-12-31 10:48:37 浏览:1465
订阅该版
* 本帖最后由 .R0ger 于 2019-12-31 11:05 编辑 * RTT-Studio版本:Version: 1.0.0 Build id: 201912201745 RT-Thread版本:V4.02 测试用芯片:STM32F103RCT6 问题描述:在运行如下代码时sscanf函数没有如预期返回正确结果。```static void urc_func_ipd_data(struct at_client *client, const char *data, rt_size_t size) { int device_socket = 0; rt_int32_t timeout = 0; rt_uint16_t bfsz = 0, temp_size = 0; char *recv_buf = RT_NULL, temp[8] = {0}; RT_ASSERT(data && size); rt_kprintf("%s
", data); // 发送控制指令 /* get the at deveice socket and receive buffer size by receive data */ sscanf(data, "%*[^IPD]IPD,%d,%d%*[^:]", &device_socket, (int *) &bfsz); // sscanf(data, "+IPD,%d,%d:", (int *) &bfsz, &device_socket); rt_kprintf("+IPD,[%d][%d]:
", device_socket,bfsz); // 发送控制指令 // rt_kprintf("+IPD,[%d][%d]:
",bfsz, device_socket); // 发送控制指令 /*****************下面的应该没影响*******************/ /* set receive timeout by receive buffer length, not less than 10ms */ timeout = bfsz > 3 ? bfsz : 3; if (device_socket < 0 || bfsz == 0) return; recv_buf = (char *) rt_calloc(1, bfsz); if (recv_buf == RT_NULL) { LOG_E("no memory receive buffer(%d).", bfsz); /* read and clean the coming data */ while (temp_size < bfsz) { if (bfsz - temp_size > sizeof(temp)) { at_client_obj_recv(client, temp, sizeof(temp), timeout); } else { at_client_obj_recv(client, temp, bfsz - temp_size, timeout); } temp_size += sizeof(temp); } return; } /* sync receive data */ if (at_client_obj_recv(client, recv_buf, bfsz, timeout) != bfsz) { LOG_E("device receive size(%d) data failed.", bfsz); rt_free(recv_buf); return; } // rt_kprintf("WiFi RECV Command[%d][%d]:", device_socket,bfsz); // 发送控制指令 // for (int i = 0; i < bfsz; i++) { // rt_kprintf("%02X ", *(recv_buf + i)); // 发送控制指令 // } // rt_kprintf("
"); // 发送控制指令 dealServerMessage((rt_uint8_t*)recv_buf, device_socket, bfsz); rt_free(recv_buf); }``` 下图是是同RTT-Studio工具自带的调试工具调试的结果:  我这段函数是解析AT指令的,使用sscanf函数提取数据 可以在途中看到调试信息:+IPD,0,16: 无法提取第一个数据 ,第二个数据是正常的。 我开始是怀疑程序有问题, 就找了个在线工具调试如下:  可以看到数据是正常的。 这段解析的代码在以前的应用中(MDK编译)也是没问题的,请问是RTT-Studio编译的问题吗?
查看更多
2
个回答
默认排序
按发布时间排序
Cheney_Chen
2019-12-31
这家伙很懒,什么也没写!
把上面你 URC 处理函数中 bfsz 参数类型定义成 int 或者 uint32_t 类型试试。 sscanf 函数中对入参类型的判断还是挺严格的,你这里解析用了 %d,后面带的参数就需要使用 4 个字节类型,否则会出现参数覆盖等问题。
zx595
2019-12-31
这家伙很懒,什么也没写!
>把上面你 URC 处理函数中 bfsz 参数类型定义成 int 或者 uint32_t 类型试试。 >sscanf 函数中对入参类型的判 ... --- 解决了,多谢!
撰写答案
登录
注册新账号
关注者
0
被浏览
1.5k
关于作者
zx595
这家伙很懒,什么也没写!
提问
9
回答
13
被采纳
0
关注TA
发私信
相关问题
1
rt_thread studio 啥时候能用呢
2
RT_Thread使用反馈帖子
3
RTT studio 下的 AT指令问题。
4
什么时候RTT Sdudio支持Ubuntu,Deepin和UOS操作系统
5
rt thread Studio 关于J-LINK下载问题
6
RT-Thread studio 调试设置问题
7
RTT-Studio 如何设置调试配置参数?
8
rt_thread studio 软件包配置
9
RT-Studio目前只能开发STM32的项目吗?
10
rtt studio 生成hex名字修改
推荐文章
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
【NXP-MCXA156】恩智浦A156上的 IIC(硬件) 实践
2
【FRA156测评DM-MCX】- PWM模块
3
【FRDM-MCXA156 评测】CAN通讯
4
[FDRM-MCXA156]GPIO测评,初始配置和点亮LED
5
rt-thread使用hwtimer不工作的问题
热门标签
RT-Thread Studio
串口
Env
LWIP
SPI
AT
Bootloader
Hardfault
CAN总线
FinSH
ART-Pi
DMA
USB
文件系统
RT-Thread
SCons
RT-Thread Nano
线程
MQTT
STM32
RTC
rt-smart
FAL
I2C_IIC
UART
ESP8266
cubemx
WIZnet_W5500
ota在线升级
PWM
BSP
flash
freemodbus
packages_软件包
潘多拉开发板_Pandora
定时器
GD32
ADC
flashDB
编译报错
socket
中断
Debug
rt_mq_消息队列_msg_queue
keil_MDK
ulog
SFUD
msh
C++_cpp
MicroPython
本月问答贡献
出出啊
1520
个答案
343
次被采纳
小小李sunny
1444
个答案
290
次被采纳
张世争
813
个答案
177
次被采纳
crystal266
550
个答案
161
次被采纳
whj467467222
1222
个答案
149
次被采纳
本月文章贡献
出出啊
1
篇文章
5
次点赞
小小李sunny
1
篇文章
1
次点赞
张世争
1
篇文章
3
次点赞
crystal266
2
篇文章
1
次点赞
whj467467222
2
篇文章
2
次点赞
回到
顶部
发布
问题
分享
好友
手机
浏览
扫码手机浏览
投诉
建议
回到
底部