利用LabVIEW的串口通信,为什么上位机发送一个字符串,而单片机只接收到前两个字符?

我用LabVIEW开发上位机,使用串口与51单片机进行通信。上位机发送一个字符串给单片机,使接收到的字符串显示在1601液晶上。问题是,可以通信,但液晶只显示字符串的前两个字符,例如发送“abcdef”,液晶上只显示“ab”。液晶显示程序没有问题。这个程序应该不难,可是就想不通问题出在什么地方。请高手指教!

我做过labvIEW的编程,我做的是USB通讯,首先你可以用串口调试助手发送一串字符,看下位机是否接收正常,如果不正常,那么就一定是你的程序出错;如果一切正常,那么你再看labvIEW的发送命令程序,因为发送的时候应该是字符串格式(看你的描述),那么你要确定字符串的长度,如果有buffer的话还要确定它的长度是否正常,很可能是长度出错;然后加大长度的情况下,再试一下;因为我这儿没有你所说的硬件,不好帮你调试的,所以你有什么问题再留言,再讨论吧
温馨提示:内容为网友见解,仅供参考
第1个回答  2011-12-14
首先要确定是单片机接收有问题还是发送的问题。
由于我以前也遇到过这个情况,建议你在单片机程序中不要直接将接收到的数据直接发送,而是先将接收到的数据存在某个数组中,再将这个数组发送。估计可以解决问题本回答被提问者采纳
第2个回答  2011-11-29
既然能收到表示通讯应该是正常的。
先确定你的labview程序 在使用串口 --- 自发自收状态时。 是否能正常收发所有数据
如果正常,那么就是下位机,单片机程序的问题。
第3个回答  2011-11-29
多半是你 单片机 程序 问题

建议 去 我的领地 5d6d 的 proteus 论坛看看

那里有很多 单片机仿真实例,包括仿真图 和 源码
搜 5d6d 和 proteus 2个关键词
第4个回答  2011-11-30
查一下单片机晶振频率和波特率设置对不对。11.0592和12M的晶振波特率设置是不一样的

利用LabVIEW的串口通信,为什么上位机发送一个字符串,而单片机只接收到前...
看下位机是否接收正常,如果不正常,那么就一定是你的程序出错;如果一切正常,那么你再看labvIEW的发送命令程序,因为发送的时候应该是字符串格式(看你的描述),那么你要确定字符串的长度,如果有buffer的话还要确定它的长度是否正常,

怎样用LABVIEW串口通讯程序与485总线中一个串口上的多个站点通信?
这个,是要配合下位机那里区分的。比如:上位机发送一个1,所有的下位机都收得到。但是上位机发一个1A,代表第一台机器,数据为A,这样子在下位机那里区分就可以了。

labview与单片机用visa进行串口通信
2、编制对话规则。也就是上位机发出什么指令,下位机如何响应,这个需要做个对码表;3、串口一次发送的数据是16进制,可以让下位机解码为2进制的,每一位代表不同功能启用。这样就可以实现一次发送多个指令。比如发送16进制数FF,那么对应的2进制就是1111 1111,全高电平,这个代码可以让单片机就绪。如果...

Labview跟串口通信问题
1、查看Max中串口是否能够正确识别,2、查看LabVIEW串口配置和单片机是否对应 2、命令是否正确,一般都是写十六进制的数字,你的字符串是否是十六进制显示模式?3、读取的延时是否正确,单片机需要一定时间来执行你发送的命令。可以采集visa的属性节点,VISA串口字节数来查看是否有数据返回。

labview串口通信:上位机发送指令后传感器没有反映
首先,确保你的LabVIEW是十六进制发送的。(发送字符串控件,右键-十六进制显示)。其次,保证你VISA配置那里配置的都是对的。有兴趣可以百度“小草手把手串口仪器”。可能对你有帮助。

labview中 我现在在做一个上位机对串口的发送 ASCII码和十六位进制的...
当然如果你要发的是字符串“15”,那就按照字符的做法直接发就是了。接收也是一样的,你收到的永远是字符或文本,这个不用担心。其次,关于进制的问题。这个只是指令设计者自己为了指令形式易懂易操作而弄的,对于程序,它不知道这是多少进制,它只需要发送的字符是正确的就可以。比如你发55H,一定要...

关于LabVIEW串口读取数据
这个多半是因为你读取的字串有结尾符(例如有些通信协议以0x0D,即回车符,做结尾符)。假设有个结尾符,那么你读取接收缓冲区相应长度的字符串后,由于没有考虑结尾符,它就会留在缓冲区中,你下一组字符串的第一个字符就被移到下一行了(回车符同时可以换行),这样你每次读的都是上一次的第一个...

LabVIEW 编程实例:手把手教你串口仪器控制
举例:控制开关接口,输出允许命令为OUT1,禁止命令为OUT0。最简程序控制开关。某些仪器在连接或打开电源后自动发送数据,上位机仅需读取串口数据。总结:明确所需功能,区分通信模式,关注格式符,使用仪器手册指导,编写LabVIEW程序实现串口通信。注意延时设置与固定字符串编程,确保程序高效执行。

在labview串口接收数据时,怎么可以使它一直接受下位机发送过来的...
就是一直读串口,用while循环,优利德的很多款程控仪表都是这样子单向不停的发给上位机

【LabVIEW开发】字符串数组与字符串的互相转化
  使用过LabVIEW进行UDP通信的都知道,LabVIEW的UDP收发模块只能发送和接收字符串,不能发送数组或其他类型的数据,如果要发送,就必须将这些类型的数据转化为字符串。一般我们的数据都是保存在数组中的,我们就来看看labview中字符串数组是如何转化为字符串的。  但是,如果我要...

相似回答