petty88 发表于 2007-12-4 15:40:19

串口VISA的问题

我想请教一下,串口中的VISA WRITE与READ的工作原理,好象是WRITE就是一直在发送数据.不管READ的动作,其中这两个中的"I/O同步模式"中的同步和异步,是与那个同步和异步呢??本人现在做一个串口程序,我是在单片机那边做判断,收到LV发送的数单片机才发一个数,但是我现在LV串READ时有时会读出两个数,例如LV应该收到是A1,而下一个数是B2,但现在读到时A1B2一起出来,这是为什么啊??

cwyxf1015 发表于 2007-12-4 15:55:22

数据之间要有一定的时间间隔,READ的等待时间要小于单片机发送数据之间的时间间隔.

petty88 发表于 2007-12-4 16:02:14

楼上所说的READ的等待时间是在读取缓冲区的地方加个延时吗?如果我想LV这边收到一个数(READ中读到一个数了)再发一个数(WRITE中再写一个数)如何做呢?

rongcheng0501@1 发表于 2007-12-6 14:29:04

先根据返回数判断是否读出来了,
如果T就写
F就再读啊

cwyxf1015 发表于 2007-12-6 17:49:03

一般情况,串口通讯的数据最好是一串,包括数据头、地址、命令、数据字节数、数据、校验、结束位等,根据自己的需要编写通讯协议,计算机发送一串数据,单片机收到后判断数据,没有问题后执行并返回数据,你可以看看别人的通讯程序,这个论坛上也有,可以搜索一下。
页: [1]
查看完整版本: 串口VISA的问题