我能使用串口或GPIB发送NULL字符吗?
主要软件:
主要软件版本: 6.0
主要软件修正版本: N/A
次要软件: N/A
问题: 我正尝试着发送一个NULL字符到我的仪器上但是没能成功。我能通过LabVIEW, LabWindows™/CVI, Visual C, Visual Basic等发送一个NULL字符吗?
解答: 可以,您可以使用任意的语言通过串口发送并接收NULL字符。您可能因为您处理字符串的方式而没有发送或接收到字符。所有的字条串都以NULL字符来结尾,那么,字符串函数认为NULL字符是一个字符串的末尾,即使NULL字符在信息的中心也是如此。
例如,下面的代码将从串口仅发送"hello",因为
StringLength在字符串中遇到NULL字符并以字符串结束的方式中断这个字符。
char send_data[15] = "hello\00world";
stringsize = StringLength (send_data); // stringsize = 5
ComWrt (comport, send_data, stringsize); // "hello" is sent over serial
如果您希望NULL是用结束一段串行消息,您无需再添加NULL字符。NULL字符已经在字符串中了。您只需增加发送的字符数。
char send_data[15] = "hello";
stringsize = StringLength (send_data)++; // stringsize = 6
ComWrt (comport, send_data, stringsize); // "hello/0" is sent over serial
您能在名为
serial.prj的范例中使用NULL结尾,其位于您LabWindow/CVI安装文件的
samples\rs232目录中,将进程SendAscii和回调函数ReadCallBack 替换为所附的代码。当用户为结尾字节或结尾字符选择"None"时,它们将得到一个NULL。
相关链接: KnowledgeBase 2VDB8MHM: Why Do Serial Reads Only Return Data Up to Hex 00, Decimal 0, or ASCII NULL?
附件: - Modified_code.txt
报告日期: 08/21/2003
最近更新: 10/10/2013
文档编号: 30K7GUWH
Other Support Options
Ask the NI Community
Collaborate with other users in our discussion forums
Request Support from an Engineer
A valid service agreement may be required, and support options vary by country.