完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
大家好,我正在做一个项目,这个项目有一个PIC,它通过RS232串行接收用户输入,并将其打印到图形LCD。RS232字符串用逗号分隔,这样我就可以分隔一些东西,比如打印字符串的坐标。所以一个典型的命令如下:“2,10,TEST STRING”。命令将把字符串“TEST STRING”打印到显示器的第2行第10列。我遇到问题的地方是将字符串与包含完整命令的数组隔离。我最初认为sscanf是解决方案:sscanf(rs232Msg, "%u,%s",&row,&col,output_string)。E问题出现了sSCANF将空间作为字符串的终止符。我只在OutPuthScript中得到“test”。由于用户可以输入任意多的空间,我不能只读“测试”和“串”并连接它们(因为我不知道需要分开多少空间)。我还考虑只计算输出字符串之前的字符数,并通过MimcPy复制它。像这样的东西:但是这看起来有点麻烦,并且应该有更好的方法来完成这个任务。所以现在我正在寻找一种方法来从完整的输入字符串中分离出这个数据字符串,但是不太确定我该如何处理它。有没有一种解决方案是我遗漏的,为这种类型的si制定的。图腾?任何输入将不胜感激!
|
|
相关推荐
4个回答
|
|
您可以自己完成部分解析:很好地记住字符串指针。搜索第一个逗号,用ASCIIZ覆盖它,记住“下一个地址”(指向ASCIIZ+1)让sscanf用第一个地址做%u,记住使“下一个地址”成为字符串指针,然后进入步骤1,除非你得到了每一个非文本,其余的是文本。已经在“下一个地址”(或“字符串指针”)所指向的字符串中了。这样的事情是我自己做的吗?很久以前没有sscanf(以避免在“传输错误”可能是正确指示的地方获得零)。您了解粗略的概念吗?
|
|
|
|
是的,或者可以用下划线替换所有的空间(或者类似的,未使用的),然后在完成的时候换成相反的?
|
|
|
|
是的,这不是“好”,但有时我们必须这样做。或者只是避免SCANFFER(),这是有限的,从头开始编写整个解析器…
|
|
|
|
然后如果用户在数字周围放置空格会发生什么?多年来,我了解到,自己完成所有的解析比挽救非拟合函数更容易。
|
|
|
|
只有小组成员才能发言,加入小组>>
5160 浏览 9 评论
1998 浏览 8 评论
1927 浏览 10 评论
请问是否能把一个ADC值转换成两个字节用来设置PWM占空比?
3170 浏览 3 评论
请问电源和晶体值之间有什么关系吗?PIC在正常条件下运行4MHz需要多少电压?
2225 浏览 5 评论
727浏览 1评论
612浏览 1评论
有偿咨询,关于MPLAB X IPE烧录PIC32MX所遇到的问题
501浏览 1评论
PIC Kit3出现目标设备ID(00000000)与预期的设备ID(02c20000)不匹配。是什么原因
626浏览 0评论
524浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-22 08:57 , Processed in 1.195860 second(s), Total 52, Slave 45 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号