[技术问答] keil中sscanf异常

[复制链接]
1976|6
 楼主| Cheribat 发表于 2019-5-23 17:01 | 显示全部楼层 |阅读模式
  单片机使用N76E003,Keil4,产品一直异常,分析到最后,发现sscanf无法正常工作!!!
---

                  ret = sscanf(array, "%d,%d,%d,%d,%d,%d,%d\t%x", &CH4_ad, &CO_ad, &flag, \
                    &cali_ad, &cali_co1, &cali_co2, &temperature, &check_errs);

#if 1           
                uart0_send_string("Len OK\r\n");
               
                sprintf(rec_str, "%d,%d,%d,%d,%d,%d,%d% %x\r\n", CH4_ad, CO_ad, flag, \
                    cali_ad, cali_co1, cali_co2, temperature, check_errs);
                uart0_send_string(rec_str);
#endif   

输出信息:
544,882,6,643,538,435,32        45
Len OK
544,882,6,643,524,0,20%x

这是啥情况?!
天灵灵地灵灵 发表于 2019-5-23 20:12 | 显示全部楼层
没用过这个函数。
玛尼玛尼哄 发表于 2019-5-23 23:16 | 显示全部楼层
单片机里一般不用这种函数吧
dongliushui 发表于 2019-5-23 23:59 | 显示全部楼层
输出怎么了?
jasontu 发表于 2019-5-24 07:56 | 显示全部楼层
沒加,% %x =>後面成你要輸出%x
 楼主| Cheribat 发表于 2019-5-24 08:59 | 显示全部楼层
                uart0_send_string(array);
        
                ret = sscanf(array, "%d,%d,%d,%d,%d,%d,%d\t%x", &CH4_ad, &CO_ad, &flag, \
                    &cali_ad, &cali_co1, &cali_co2, &temperature, &check_errs);

#if 1           
                uart0_send_string("Len OK\r\n");
               
                sprintf(rec_str, "%d,%d,%d,%d,%d,%d,%d %x\r\n", CH4_ad, CO_ad, flag, \
                    cali_ad, cali_co1, cali_co2, temperature, check_errs);
                uart0_send_string(rec_str);
#endif

输出:
544,882,6,643,538,435,32        45
Len OK
544,882,6,643,524,0,20 8
 楼主| Cheribat 发表于 2019-5-24 09:21 | 显示全部楼层
jasontu 发表于 2019-5-24 07:56
沒加,% %x =>後面成你要輸出%x

嗯 多敲了一个百分号,但改过来还是不行,很奇怪
您需要登录后才可以回帖 登录 | 注册

本版积分规则

16

主题

490

帖子

2

粉丝
快速回复 在线客服 返回列表 返回顶部
0