/*====================================================================================================== 作 者: 许明龙 单 位: 兰州交通大学软件工程专业09级 联 系: 世上没用永远的陌生人,只有还未认识的朋友! QQ:494462498. Tel:13893256491 Email:xuhongming251@163.com 修改时间: 2011-6-5 =======================================================================================================*/ /*======================================================================================================== 如何使用? 1.引入DLL文件,引入头本文件,就已声明了导入函数 //要引入DLL的方法 //1、把SERIALPORTDLL1.dll和SERIALPORTDLL1.lib拷贝到工程目录下 //2、然后在 工程->设置->连接->分类->常规->对象/库模块输入:SERIALPORTDLL1.lib 2.调用Init初始化串口 3.调用SetReceiveFuntion(&ReveveChar);指定接收和处理数据的函数 4.实现void ReveveChar(WPARAM data, LPARAM port)这个函数 5.调用SendData发送数据 6.ClosePort(); ========================================================================================================*/ /*======================================================================================================= 函 数 名: Init 功 能: 打开并初始化串口 参数说明: UINT port //端口号 UINT baud //波特率 char parity = 'N' //校验位,默认为无校验位 UINT databits = 8 //数据位,一个字节的位数,默认为8位 UINT stopbit = 1 //停止位,默认为1位 使用例子: Init(2,9600); //打开串口2,波特率9600,其它值为默认值(无奇偶校验、数据位为8、停止位为1) Init(4,4800,'N',10);//打开串口4,波特率为4800,无奇偶校验,数据位为10,(停止位默认为1) ... ... ======================================================================================================*/ extern "C" __declspec(dllimport) void Init( UINT port, //端口号 UINT baud, //波特率 char parity = 'N', //校验位 UINT databits=8 , //数据位 UINT stopbit=1 //停止位 ); /*========================================================================================================== 函 数 名: SendData 功 能: 向串口发送数据,使用之前必须先调用Init函数初始化串口 参数说明: char data[] //要发送的数据 int datalen //发送数据的长度 使用例子: 例1: char a[] = {0x01,0x03,0x00,0x03,0x00,0x02,0x34,0x0B};//准备要发送的十六进制:01 03 00 03 00 02 34 0B SendData(a,8); //向串口发送十六进制数:01 03 00 03 00 02 34 0B 例2: char a[] = "$01001000020110*" //准备要发送的字符串$01001000020110* SendData(a,16); //向串口发送:$01001000020110* ============================================================================================================*/ extern "C" __declspec(dllimport) void SendData( char data[], int datalen ); /*=================================================================================================================== 函 数 名: SetReceiveFuntion 功 能: 指定接收数据的函数,指定好后,串口接收缓冲区每有一个字节的数据时会自动触发和调用所指定的函数 参数说明: a、参数需要一个函数指针, b、该指针指向一个用于接收数据的函数(该函数由用户自己声明、定义和实现), c、用户定义该函数时必须要满足一下条件: 1、该函数为全局函数 2、返回值为void 3、形参为两个,类型为:形参为UINT,LONG 使用例子: 1、void ReveveChar(WPARAM data, LPARAM port);//声明一个用于接收数据的全局函数,本头文件已默认声明这个函数,用户无需再次声明 2、 CString strTemp; void ReveveChar(WPARAM data, LPARAM port)//实现这个接收数据并处理数据的函数 { static int RecevCount = 0; //用于接收字节数的计数 char str[512] = ""; sprintf(str,"%02x",data); //接收十六进制数,并格式化为字符形式 strTemp += str; RecevCount++; if (RecevCount >= 8) //接收到数据长度等于了协议长度,则开始进行协议的处理 { RecevCount = 0; strTemp = "接收到得数据协议为" + strTemp; AfxMessageBox(strTemp); strTemp = ""; } } 3、SetReceiveFuntion(&ReveveChar);//指定void ReveveChar(WPARAM data, LPARAM port);该函数接收和处理数据 =========================================================================================================================*/ extern "C" __declspec(dllimport) void SetReceiveFuntion(void (*pfCallBack)(WPARAM data, LPARAM port)); /*================================================= 函 数 名: ClosePort 功 能: 关闭由Init函数打开的串口 参数说明: 无需参数 调用例子: ClosePort(); =================================================*/ extern "C" __declspec(dllimport) void ClosePort(); /*=============================================================================================================== 函 数 名: ReveveChar 功 能: 每当串口接收到一个字符(字节)时就会自动触发和调用这个函数, 用户只需实现不必也不能去亲自调用, 注意:打开串口后,必须要调用SetReceiveFuntion(ReveveChar) 参数说明: data //接收到的是串口中的一个字节数据 port //端口号,表明是哪个端口接收到的数据 调用例子: 只要实现,无需自己调用。 实现处理数据可参考如下简单的例子,思想是边接收数据边处理 void ReveveChar(WPARAM data, LPARAM port) { static int RecevCount = 0; //用于接收字节数的计数 char str[512] = ""; sprintf(str,"%02x",data); //接收十六进制数,并格式化为字符形式 strTemp += str; RecevCount++; if (RecevCount >= 8) //接收到数据长度等于了协议长度,则开始进行协议的处理 { RecevCount = 0; strTemp = "接收到得数据协议为" + strTemp; AfxMessageBox(strTemp); strTemp = ""; } } 说明:本函数并非为导出函数,写在这里仅仅是起到声明一个函数的作用,用户也可以删除掉,自己声明和实现! ===============================================================================================================*/ void ReveveChar(WPARAM data, LPARAM port);
2024-01-17 15:05:23 10KB SerialPort SerialPort封装
1
功能如下: 1.支持同域与跨域通讯 2.传递的方法参数支持字符串,JSON,数组等。
2023-10-18 09:03:48 9KB iframe 跨域 cross
1
软件科技新闻通讯网站模板是一款整齐简洁好看的实时通讯类网站模板下载。.rar
2022-12-23 18:22:46 1.3MB 模板
Android应用源码-聊天通讯类安卓源代码(12例),可供学习设计参考。
Android安卓源码-串口&Socket通讯类源代码(5例),仅供开发及学习设计参考。
C# netMarketing类库:欧姆龙plc rs232通讯类演示 netMarkting类库可以直接在vs中使用nuget下载安装,完全免费使用,它是勇哥在工业自动化行业多年的积累。 netMarkting类库官方说明页:http://www.skcircle.com/?id=202 ========================== 此资料来自于网站《少有人走的路》 站长是:勇哥 网址:www.skcircle.com 官方QQ群:98596273 微信公众号:勇哥的机器视觉 勇哥从2009年至今一直工作在工业控制设备制造行业,愿奉献自己的从业经验,给新入行的朋友指路、和行业工程师们一起进步!
2022-10-20 16:10:15 7.46MB netMarketing类库 欧姆龙plc通讯类
1
替代E4A核心客户组件,支持多线程收发,自动分包组包,不粘包。可用于IM,网游,远控等多领域开发。
1
基于.net3.5,可用于Unity调用的基础类库:包括UDP网络通讯封装类,SerialPort串口通讯封装类,数据处理封装类,PID解算封装类,输出日志封装类等,便于操作运行
1
这是我用VC写的一个串口通信类,是静态库形式的,可随工程一起编译。里面还有在MFC中使用的简单范例,当然Win32程序也可以调用,因为设计时就是用纯API打造的,当初也是为Win32应用程序做的接口类。因为采用的是多线程的方式处理,对CPU的占用率也是很低很低的,运行效率还不错,使用也方便,还有类似于 VB 事件的概念。 看范例就知道了。
2022-07-26 13:12:26 3.34MB VC串口通讯类
1
点阵取模加串口通讯类,发送数据需要加入代码。
2022-05-06 21:06:27 2.31MB 点阵取模 加串口通讯类
1