使用win32 API 实现串口通信 (二)

通常对于串口通信协议规定,有命令帧与应答帧。

1、协议规定,如头+命令字+数据块长度+数据块+校验。

对于协议规定的具体帧,可以为每一个帧,建立一个结构体数据,用于存储我将要接收的数据,这样我们可以事先建立多个结构体,通常大概会建立10到50不等,这与通信的数据协议有关。

2、现在我们要考虑的是如何将一个完整的数据帧去掉头、命令字、校验,存入结构体中,以便我们可以直接使用结构体中数据成员,也方便使用。通常C++的做法是使用运算符重载进行复制,将一个我们接收到buffer数据帧,复制到结构体中。

时间: 2024-11-06 10:01:39

使用win32 API 实现串口通信 (二)的相关文章

在VB中利用API进行串口通信

本文转自http://blog.csdn.net/lyserver/article/details/4153335 '* ******************************************************* *'*    程序名称:basComm.bas'*    程序功能:在VB中利用API进行串口通信'*    作者:lyserver'*    联系方式:http://blog.csdn.net/lyserver'* ************************

利用win32 api实现进程通信---通过剪切板

// c#中win32 api的调用 //windows 消息机制的原理 //clipboard viewer chain. using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using System.Runtime.I

串口通信(基础)

参考文章:http://www.cnblogs.com/aierong/archive/2009/08/21/1551589.html http://www.cnblogs.com/procoder/archive/2009/04/07/1430871.html http://blog.csdn.net/cy757/article/details/4474930 SerialPort Class Windows 7 虚拟串口 VSPD 6 最近总结了串口(COM)读写操作的三种方式:第1种方式是

串口通信IN C++(适用于Microsoft Visual Studio 2010/2012/2013 ,VC++6.0 )

                 向无数拼命工作的 程序猿 及 攻城狮 致敬! 软硬件平台简介 CPU:P4 2G及以上兼容于80x86架构的中央处理器 内存:1G及以上 硬盘:80G及以上 网卡:100M及以上 操作系统:Windows XP及以上 软件:VS2010/2012/2013  Visual C++ 6.0  Keil uVision3-4   STC_ISP_V488/友善串口助手 硬件:众多.不胜数 2.总体设计思想 串口通讯把数据的字节分解成单个的二进制比特流依次传输,其

深入浅出VC++串口编程之基于Win32 API

1.API描述 在WIN32 API中,串口使用文件方式进行访问,其操作的API基本上与文件操作的API一致. 打开串口 Win32 中用于打开串口的API 函数为CreateFile,其原型为: HANDLE CreateFile ( LPCTSTR lpFileName, //将要打开的串口逻辑名,如COM1 或COM2 DWORD dwAccess, //指定串口访问的类型,可以是读取.写入或两者并列 DWORD dwShareMode, //指定共享属性,由于串口不能共享,该参数必须置为

奶爸业余单片机学习之:UART串口通信学习笔记(二)

/************************************** 串口通信实验* 晶振11.0592MHz* 波特率9600bps* 中断方式实现:单片机接收电脑数据,加1后发送回电脑***************************************/ #include<reg52.h> unsigned char dat; /**********串口通信配置*******************/void UART_CONFIG(unsigned long baud

MSIL 教程(二):数组、分支、循环、使用不安全代码和如何调用Win32 API(转)

转自:http://www.cnblogs.com/Yahong111/archive/2007/08/16/857574.html 续上文[翻译]MSIL 教程(一) ,本文继续讲解数组.分支.循环.使用不安全代码和如何调用Win32 API 数组 本程序分配一个int型的数组并给他的元素赋值,然后打印出元素和数组的长度. 命令: newarr type— 生成一个元素类型为type 的数组.数组的大小必须在调用该命令前装入堆栈.该命令会把一个数组的引用装入堆栈. stelem.i4— 给一个

串口通信属性及事件解析

RS-232串口,串口按位(bit)发送和接收字节.尽管比按字节(byte)的并行通信慢,但是串口可以在使用一根线发送数据的同时用另一根线接收数据.典型地,串口用于ASCII码字符的传输.通信使用3根线完成:(1)地线,(2)发送,(3)接收. 本文以c#中的SerialPort类为例,分析串口各参数及事件,其他平台串口库的操作类似. 专门串口通信的朋友,建议参看<Visual C++串口通信工程开发实例导航>.   一.属性 1. PortName 串口名    默认值COM1 串口对于操作

用VC6.0实现上位机串口通信

串口是常用的计算机与外部串行设备之间的数据传输通道,由于串行通信方便易行,所以应用广泛.我们可以利用Windows API 提供的通信函数编写出高可移植性的串行通信程序.本实例介绍在Visual C++6.0下如何利用Win32 API 实现串行通信程序.程序编译运行后的界面效果如图一所示: 图一.串口通信示例程序 一.实现方法 在Win16中,可以利用OpenComm().CloseComm()和WriteComm()等函数打开.关闭和读写串口.但在Win32中,串口和其他通信设备均被作为文件