LabVIEW 串口
我用单片机循环向串口发四个16进制数(例如 FF,..,..,FF),labviewVISA读取每次读取4个字节并构建数组,如果数组第一个和第四个元素均为单片机发送的常量(FF)的话,就认为通信成功,对接受数据进行处理,反之认为通信失败,重新读取。如果我先运行Labview,后给单片机上电的话,基本上都可以通信成功;但如果我先给单片机通电,后运行LabVIEW的话,很少能够通行成功。请问各位高手,如何解决? 接收顺序不对了,多次数据累积,采用labview发指令下位机再返回的形式 你可以这样实验下。下位机不改动
上位机改动下,每次读取4个字节,然后显示出来,用hex模式,循环接收到的用concatenate string给串接起来。
最好是把前面板string显示的宽度缩小只能显示4个hex字节
然后下位机开机先,然后上位机开起来,你看下接收到的是什么
其实开发过程中有很多在自己预料之外的问题,遇到问题,能问论坛是好的,还有一个同样好的并且能锻炼自己的方法,就是针对问题,做一些猜测,然后基于这个猜测,做下实验。
具体到你的这个东东,我觉得,如果是3线的串口,那么,最好使用第九位,来区分下包的边界和内容。
其他的区分方式,在理论上讲,都是不可靠的???(问号表示这个是自己观点,欢迎指正!)
另外这里问个问题,就是lv下的visa串口是不是比mscomm慢一些?两年里遇到这样的问题两个了,不多,也不少,但值得怀疑。。。。知道的告诉下,3ks 麻烦解释一下这个程序的意思啊
页:
[1]