参考资料: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内有帧返回则进行接收(程序往下执行),若没有,则超时继续执行代码