请教:收回单片机一批数据处理问题?
请教斑主和各位高手:我从单片机收回一批数据(如800个)存在Buffer中,想进行如下处理:第一次取第0---7位,经数据转换、运算,成电压值列表显示,第二次取第8--15位,、、、、、、第n次。。。。完成处理。我的问题是用什么方式怎样从串口Buffer中取出我所需要的数据?请指教。先谢里! 非常感谢CPUBBS、lgh269的指点。我的这个问题已解决。下次有问题再请教。CUPBBS确实不错。谢谢! <p><a href="http://www.cpubbs.com/old_bbs/dispbbs.asp?boardid=4&replyid=28472&id=13221&page=1&skin=0&Star=1">http://www.cpubbs.com/old_bbs/dispbbs.asp?boardid=4&replyid=28472&id=13221&page=1&skin=0&Star=1</a></p><p>看这个贴子的第67点!</p> <p>首先你必须保证数据确定读出来了,否则你就按CPUBBS说的那样你做,</p><p></p><p>你读取的字符不知是什么样子的,若是有特征的字符,我建议你用Match pattern</p><p>若是没有,就用STRING SUBSET,不过这样截取字符的长度若是不固定的就失去用的意义。</p><p>还有一种就是用spreadsheet自己加入特征符来截取.</p><p>下图是本论坛的一个图例你可以看下</p><img src="attachments/dvbbs/2006-8/200682523314812070.jpg" border="0" onload="if(this.width>screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.alt=\'Click here to open new window\nCTRL+Mouse wheel to zoom in/out\';}" onmouseover="if(this.width>screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.style.cursor=\'hand\'; this.alt=\'Click here to open new window\nCTRL+Mouse wheel to zoom in/out\';}" onclick="if(!this.resized) {return true;} else {window.open(\'attachments/dvbbs/2006-8/200682523314812070.jpg\');}" onmousewheel="return imgzoom(this);" alt="" />[此贴子已经被作者于2006-8-25 23:31:52编辑过]
<p>兄弟,其实你这个问题有很多回复在论坛的,呵呵,先介绍你看一些东西吧兄弟,看了你自然就明白了,里面有例程的:这本书是我们的LV+单片机学习套件的配套教程,你下来看看:</p><p>免费下载的:</p><p><a href="http://www.cpubbs.com/old_bbs/dispbbs.asp?boardID=4&ID=14252&page=1">http://www.cpubbs.com/old_bbs/dispbbs.asp?boardID=4&ID=14252&page=1</a></p> <p>还有这个精华列表贴里面也有很多相关的信息的,还有一些相关的子VI进行串口数据转换的程序,是我以前做的,你往下找,一定有你需要的东西的:</p><p><a href="http://www.cpubbs.com/old_bbs/dispbbs.asp?boardID=4&ID=13221&page=1">http://www.cpubbs.com/old_bbs/dispbbs.asp?boardID=4&ID=13221&page=1</a></p> <p>CPUBBS:感谢及时的答复。我的问题是用什么方式怎样从已存在串口的Buffer中取出我所需要的一组一组的数据进行事后处理的问题?因为实时处理可以随时到单片机再取几个数据实时处理,而我不允许再到单片机去取数据。我有你2版的套件,参照8处理,每次只能取出0--7位数据?数据转换已不成问题。谢谢!</p><p></p> HI,兄弟,你上面可以选择读取多少个字节的,在读这个节点上面的,你看一下它的输入端! 我在节点上设置过20、64等,但取出的只是第0---7位的数据。 我以前用VB编过,只需设i(地址)j(数据)二个变量,用一循环程序就可把我所需的数据取出。初次接触LABVIEW,直不知该如何处理? CPUBBS:我的工作过程是这样的:LV向MCU发一指令;MCU接到后,向LV发回800个字节数据,以后再不理睬MCU,只在LV处理数据,第一次处理第0--7个字节,第2次处理第8---15个字节、、、;现在Raed-Buffer内几百个数据清楚地显示,但不知怎样才能按需取出来?谢谢! <p>其实很简单呀,你先把数据全部读出,然后做分割分析</p><p>全部读出后,比如取前7位然后做处理,再取,用STRING里面的控件可以完成</p><p>你试下吧 </p> lgh269:非常感谢指点。我的Raed-Buffer的数据就是在STRING里看到和显示的。我用STRING里的控件STRING—SUBSET只能取出0--7位,8--15,16--23等就再无法取出了。请再指点一下,万分感谢! <p>这样吧,你先用Bytes at port,读出所有的串口数据,那么肯定够800个,接着处理;</p><p>或者你给它一个800读;可以使用设置buffer的一个VI,在VISA里面。</p>
页:
[1]