顺序结构 串口丢失数据!
用lv发一个字节,单片机受到后返回800个字节我用顺序结构做得
但是受到的数据收不到800个
我发的是0--200连续发了4次。为什么啊?
谢谢了! 我在单片机里加了个延时,可能是协议问题吧?我觉得 你的错误很多~~~建议去看下labview内带的关于串口操作的example~~
可以通过以下方式找到:
在串口操作的vi(比如serial read)上右键,选择example。。。
随便说几个你的错误:
1、在同一个程序中,串口只要配置一次即可,然后进行读写。。。。。
2、同样是配置问题,在程序开始的时候,配置一下,然后看应用而定,可能会有个循环,在里面完成对串口的读写,然后在循环的外面,关闭串口。。。
3、visa read这个函数,要输入你读取的字节数,比如是题目中的800,它会读满800个字节才会返回,或者timeout返回。。。。(lv内置vi的行为,你可以在vi上右键,help,有详细描述)
4、从串口读取数据的时候,一般不会在visa read上写明你要读取多少个字节的,因为有个timeout很是不好处理,wdyjz斑竹曾经建议使用bytes at serial port来做,也就是你这个例子中做的一样。。。。。。但是,你还是写错了。。。在这里你可以做个循环,判断下当前串口缓冲有多少字节,然后决定是否读取(是否退出循环)。。。
5、切记,编程没有特定的说要如何如何如何,不过,一些合理的结构,都是大家建议的,所以,我建议你也这么去做;
6、最后一点,在往论坛贴vi之前,最好可以自己整理下后面板,连线规则一些,节点整齐一些,这样,会提高别人给你帖子回复的几率~~~ 谢谢斑竹!我会注意的! 我现在在51收到数据后,做了一段延时然后再发出数据,lv就能收对!
但是我不知道这个您说的这种方法怎么做,我现在无从下手,麻烦您说一下,好吗?
谢谢 对了,忘了说了,我按你说的路径去找例子,没有找到啊
难道我的是破解版的原因。 串口configuration的配置上有个终点符的使能,最好是设置为F,这样不容易出问题。 嘿,程序里至少要用个循环吧?
页:
[1]