USB通讯,可写入指令但不能读取返回
1
2
3
通过VISA测试面板可以看到,你接收到的数据是带终止符的,当你设置的读取字节数比实际字节数大时,它就会以读到终止符为止返回完整的数据给你,其实在串口里面,如果返回数据带终止符,也可以这样做,你可以不用管返回的数据字节数是多少,只要你设置的读取字节数肯定比实际字节数大就行了,它会自动以终止符作为返回数据的结尾。
读写间加个这个试下
在MAX中创建任务,然后程序框图中直接调用。
USB通讯用不了这个属性节点
不是DAQ的,是带指令的,如何创建任务?
你把那个七改大点试试
这个问题我搞了2个月才搞清楚
过程很艰难
真的好神奇,按你说的把读取的字节数设置大点真的就可以了。但是不知道为什么,还请道明原委。因为之前一直做串口,知道如果设置读取的字节数过大(当然一般用端口字节数属性节点),相反会报错。可是这里,理论上和实际上我读取的返回是20字节,但是我只有设置的读取字节数比20大才能成功过,这个和串口完全相反,不知道是什么逻辑。
搞了一天知道如何下手,楼上回复说把读取的字节数设置大一些居然真的可以了。不知道你说的是什么意思,愿听分享
原来如此,明白了。十分感谢!
另外想请教一下,你刚的回答解释了为什么设置的读取字节数比实际的大依然可以读取的问题。但是我还没有搞清楚,为什么设置读取的字节数比实际返回的小时会出现读取错误?串口的话,这种情况应该是读取一部分。
串口有两种方式读取,一种是按设定的字节数读取,一种按终止符读取
串口有两种方式读取,一种是按设定的字节数读取,一种按终止符读取。
当返回的数据没有终止符时,一般按字节数读取,然后自己分析是否读完。
当返回数据有终止符时,就可以设定读取字节数大于实际字节数,函数自动会以设定的终止读取到完整的数据返回。
其实很多的串口通信里面基本都会定义终止符的,只是你用不用而已