OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 2102|回复: 1

单独用sscanf正常,连续两次用程序就死了

[复制链接]

5

主题

44

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
259
金钱
259
注册时间
2018-3-27
在线时间
40 小时
发表于 2019-8-1 14:35:38 | 显示全部楼层 |阅读模式
20金钱
        u8 RS232Buf[250];
        u8 CanBuf_STATUS[250];   //机器状态 0=停机,1=运转,2=预约
        u8 CanBuf_TEMP_PV[250];  //温度实际值(-70 to 150)
        u8 CanBuf_HUMI_PV[250];  //湿度实际值(0 to 99.9)
        u8 CanBuf_TEMP_SV[250];  //温度目标值(-70 to 150)
        u8 CanBuf_HUMI_SV[250];  //湿度目标值(0 to 99.9)
        u8 CanBuf_ERROR[250];

  RS232Buf[]=“STX,8,0,A,6,0,26.24,0.0,0.00,0.0,rckson.pgm,0,0,0,37,0,END”

sscanf(RS232Buf, "%*[^,],%*[^,],%*[^,],%*[^,],%*[^,],%[^,],%[^,]", CanBuf_STATUS,CanBuf_TEMP_PV);
sscanf(RS232Buf, "%*[^,],%*[^,],%*[^,],%*[^,],%*[^,],%*[^,],%*[^,],%[^,],%[^,]", CanBuf_HUMI_PV,CanBuf_TEMP_SV);
sscanf(RS232Buf, "%*[^,],%*[^,],%*[^,],%*[^,],%*[^,],%*[^,],%*[^,],%*[^,],%*[^,],%[^,],%*[^,],%*[^,],%*[^,],%*[^,],%*[^,],%[^,]", CanBuf_HUMI_SV,CanBuf_ERROR);
单单用任何一个,都没问题,连续用程序就死了
还有个问题就是,如下用法就不行,程序也是直接跑死,只能一次赋值两个字符数组
sscanf(RS232Buf, "%*[^,],%*[^,],%*[^,],%*[^,],%*[^,],%[^,],%[^,],%[^,],%[^,],%[^,],%*[^,],%*[^,],%*[^,],%*[^,],%*[^,],%[^,],%*[^,]", CanBuf_STATUS,CanBuf_TEMP_PV,CanBuf_HUMI_PV,CanBuf_TEMP_SV,CanBuf_HUMI_SV,CanBuf_ERROR);

最佳答案

查看完整内容[请看2#楼]

问题已经解决,是定义的数组长度太大了,改小点就没问题了
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

5

主题

44

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
259
金钱
259
注册时间
2018-3-27
在线时间
40 小时
 楼主| 发表于 2019-8-1 14:35:39 | 显示全部楼层
问题已经解决,是定义的数组长度太大了,改小点就没问题了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-5-30 16:54

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表