新闻  |   论坛  |   博客  |   在线研讨会
LabWindows学习笔记(2串口)
mayer | 2009-05-18 18:52:03    阅读:5514   发布文章

LabWindows学习笔记(2串口)

/////////////////////////////////////////////////串口开启程序/////////////////////////////

DisableBreakOnLibraryErrors();
RS232Error =OpenComConfig (comport, "", baudrate, parity,databits, stopbits, inputq, outputq);
EnableBreakOnLibraryErrors();
if(RS232Error ==0)
{MessagePopup("RS232信息:","端口打开成功");}
if (RS232Error==-1)
MessagePopup("RS232信息:","未知的系统错误");
if (RS232Error==-2)
MessagePopup("RS232信息:","端口号无效");
if (RS232Error==-3)
MessagePopup("RS232信息:","端口无法打开");
if (RS232Error==-4)
MessagePopup("RS232信息:","未知的I/O错误");
if (RS232Error==-6)
MessagePopup("RS232信息:","没有发现串行端口");
if (RS232Error==-7)
MessagePopup("RS232信息:","无法打开端口");
if (RS232Error==-1)
MessagePopup("RS232信息:","未知的系统错误");

另外,CVI中就是通过OpenCom()、OpenComConfig()的返回值来判定串口的状态!

<!--[if !supportLists]-->1、  <!--[endif]-->串口打开后,在使用中一般不会出现连接等硬件错误;
2、可以通过通讯协议用软件方法判定串口通讯是否正确;
3、一定要每次发送都判定串口状态的话,请使用GetComConnectionState (int portNumber)函数!

<!--[if !supportLists]-->2、  <!--[endif]-->GetCommStat()返回指定串口的信息,为两个字节的十六进制数,每个位代表不同的状态信息。但是不建议使用它:使用它虽然能够知道串口是否发生错误,但通过返回值却并不能具体知道究竟是什么错误(这可能是NI自己的一个bug吧——窃以为。

 

(2)//清除串口中以前的数据   FlushOutQ(Serial_num);

*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。

参与讨论
登录后参与讨论
推荐文章
最近访客