LabWindows CVI 2017开发笔记--串口API

参考资料:https://download.csdn.net/download/Stark_/87424565?spm=1001.2014.3001.5501
转载请注明出处:https://blog.csdn.net/Stark_/article/details/128966962?spm=1001.2014.3001.5501

打开串口OpenComConfig

OpenComConfig 打开一个串行并进行相关的参数设置

int OpenComConfig (
				   int COM_Port,//COM_Port:用于指定要打开的端口号,有效范围为 1-1000。
				   char Device_Name[ ], //Device_Name[ ]:用 ASCII 字符串表示的串行口名,该参数一般默认为空。
				   long Baud_Rate,//串行口的波特率,标准的波特率有:110、300、600、1200、2400、4800、9600、19200 等 
				   int Parity,//指定奇偶校验模式。0 表示无奇偶校验,1 表示奇校验,2则表示偶校验
				   int Data_Bits, //指定每帧信息中数据位的位数,可选的位数为 5、6、7、8
				   int Stop_Bits, //指定每帧信息中停止位的位数,可选的位数为 1 和 2
				   int Input_Queue_Size, //指定串行口输入队列的大小
 				   int Output_Queue_Size//指定串行口输出队列的大小
 				   );

例如

OpenComConfig (1, "", 9600, 0, 8, 1, 512, 512);
status = OpenComConfig(comValue,"",baudValue,checkValue,longValue,stopValue,MAX_BUF_NUM,MAX_BUF_NUM);

关闭串口CloseCom

CloseCom 关闭一个串行口
CloseCom (1)表示关闭串行口 1

CloseCom(comSelect);		//关闭串口 

串口读字符串ComRd

ComRd 从指定串行口的输入队列读取若干字节的信息

int ComRd (int COM_Port, char Buffer[ ], int Count);
//COM_Port:串口号
//Buffer[ ]:字符型数组,用于存储从串行口读回的信息。
//Count:整型变量,用于指定要读取的字节数。
char info[MAX_BUF_NUM+1]; 
int len = 0;    
len = GetInQLen(comSelect); // 得到Com口的输入队列数据缓存的大小 
ComRd(comSelect,info,len);  //将接收缓存中的数据全都读取到info[]里面

串口读字节ComRdByte

ComRdByte 从指定串行口的输入队列读取一个字节的信息

串口写字符串ComWrt

ComWrt 向指定串行口的输出队列写若干字节的信息

int ComWrt (int COM_Port, char Buffer[ ], int Count);
//COM_Port:串口号
//Buffer[]:欲输出的信息存在该数组中。
//Count:指定要输出的字节数。
ComWrt(COM_Port,Buffer,strlen(Buffer));

串口写字节ComWrtByte

ComWrtByte 向指定串行口的输出队列写一个字节的信息

清空输入缓存FlushInQ

FlushInQ 清空指定串行口的输入队列

FlushInQ(comValue);   //清空输入队列的缓存数据    

清空输出缓存FlushOutQ

FlushOutQ 清空指定串行口的输出队列

FlushOutQ(comValue);  //清空输出队列的缓存数据      

获取输入字符数GetInQLen

GetInQLen 获取指定串行口输入队列内的字符数

int len = 0;    
len = GetInQLen(comSelect); // 得到Com口的输入队列数据缓存的大小 

获取输出字符数GetOutQLen

GetOutQLen 获取指定串行口输出队列内的字符数

串口回调函数InstallComCallback

InstallComCallback 为指定串行口设置一个回调函数,当有相应的事件(比如串行口收到了特定的字符)发
生时,就调用指定的回调函数

int InstallComCallback (int COM_Port, int Event_Mask, 
 int Notify_Count, int Event_Character, 
 ComCallbackPtr Callback_Function, 
 void *Callback_Data);

Event_Mask:整型变量,用于指定一个事件,当该事件发生时,就调用指定的回调函数,如果要禁止回调函数的调用,该参数填 0。不同的常量名代表不同的事件,以下将几个常用的常量名解释如下
在这里插入图片描述
Notify_Count:整型变量,使 LWRS_RECEIVE 事件能够发生的输入队列内的最小字节数。
Event_Character:整型变量,用于指定触发 LWRS_RXFLAG 事件(串行口收到特定的字符)的字符值。
Callback_Function:用于指定被调用的回调函数名,而且回调函数必须按以下格式定义:

void CVICALLBACK CallbackFunctionName (int portNo,int eventMask, void *callbackData)

Callback_Data:该参数可以是指向某个数据的指针,也可以是一个整形变量,它将被传给上述的回调函数 Callback_Function。一般该参数填为 0 即可。

InstallComCallback (1, LWRS_RXFLAG, 0, (int)gEventChar[0] , Event_Char_Detect_Func, 0);
//当串行口 1 收到特定的字符时就调用函数Event_Char_Detect_Func ,提示用户串行口 1 收到了某个特定的字符。

设置握手方式SetCTSMode

/* 禁止硬件握手,即不用RTS/CTS和DTR/DSR */  
SetCTSMode(COM_Port,LWRS_HWHANDSHAKE_OFF);

接收超时SetComTime

SetComTime(comSelect,1); //设置一帧数据的接收超时时间为1s      

在此等待1s,1s内有帧返回则进行接收(程序往下执行),若没有,则超时继续执行代码

  • 3
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值