/*====================================================================================================== 作 者: 许明龙 单 位: 兰州交通大学软件工程专业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
进过几天的安装和测试,触摸屏wince6.0的系统终于用labview开发和单片机stm32 链接上了,可以发送和接收
1
基于Verilog_HDL的UART串行通讯模块设计及仿真串行接口是连接FPGA和PC机的一种简单方式。这个项目向大家展示了如果使用FPGA来创建RS-232收发器。
2024-01-16 02:19:44 996KB UART 串行通讯
1
Socket通讯例子,采用异步流模式 服务器端 1.SocketServer中,有个uo_Socket_Server类型的数组Connects,实现多个连接管理。 2.uo_Socket_Server实例是通过w_1.tab_1.OpenTab()打开的。 3.SocketNotify为自定义事件pbm_custom01。 4.ue_SocketNotify为自定义事件。 客户端 1.很简单
2024-01-15 18:40:21 2.32MB PBSOCKET UDP
1
中兴通讯DSLAM能够满足送抵模式下的业务开展要求,通过采用IGMPSNOOPING++,能够实现IPTV组播业务运营中的业务认证、业务计费、报文复制、安全控制、业务监控、服务质量保证等功能。
2024-01-14 10:16:08 25KB 信息技术
1
AnyChat for Android采用JNI接口技术,提供纯JAVA接口,支持Android 2.1、Android 2.2 Android 2.3以及Android 4.x等平台。
2024-01-13 10:25:32 5.67MB Android开发
1
PIC单片机对485通讯程序C语言编程程序完整版
2024-01-12 15:39:48 10KB PIC单片机 C语言编程
1
C# 实现与汇川H5U PLC通讯示例 通讯协议为Modbus-TCP 包括 线圈读写,单线圈、多线圈等 包含寄存器地址读写,单地址,多地址等
2024-01-12 12:53:37 164KB Modbus-TCP
1
本标准规定了道路运输车辆卫星定位系统车载终端(以下简称终端)与监管/监控平台(以下简称平台)之间的通讯协议与数据格式,包括协议基础、通信连接、消息处理、协议分类与说明及数据格式。 本标准适用于道路运输车辆卫星定位系统车载终端和平台之间的通信。
2024-01-10 08:56:43 9.94MB jt808
1
ModBus通讯的设计和实现,VB
2024-01-08 16:13:44 134KB ModBus
1