没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
试读
6页
以上简要介绍了大部分的串口通信api 函数,笔者所写的串口通信软件用的是事件通知方式,该方式 是windows2000 下效率较高的一种方式。而且只熟悉这些api 函数也还是不够的,该机制下还要牵涉到多线 程和消息机制,其中读写串口的动作是由主线程来完成的,比如说操作者按下发送数据的按钮之后,相应函 数马上将某特定区域里面的数据发送出去,所以说用api 函数写串口发送数据的功能是相对较简单的。收数 据的时候就要麻烦一点,在打开串口后首先主线程要设置要监视的串口通信事件,然后将监视线程打开,用 来监视主线程设置的这些串口通信事件是否已发生,当其中的某个事件发生后, 监视线程马上将该消息发送 给主线程,其中监视线程在发送消息之前要确保主线程在收到消息后肯定的知道串口究竟发生了什么样的事 件,然后根据不同的事件类型进行处理
资源推荐
资源详情
资源评论
API 串口操作
1. 用途:打开串口
原型:HANDLE CreateFile(LPCTSTR lpFileName,
DWORD dwDesiredAccess,
DWORD dwShareMode,
LPSECURITY_ATTRIBUTES lpSecurityAttributes
DWORD dwCreationDistribution,
DWORD dwFlagsAndAttributes,
HANDLE hTemplateFile);
参数说明:
-lpFileName:要打开的文件名称。对串口通信来说就是 COM1 或 COM2。
-dwDesiredAccess:读写模式设置。此处应该用 GENERIC_READ 及 GENERIC_WRITE。
-dwShareMode:串口共享模式。此处不允许其他应用程序共享,应为 0。
-lpSecurityAttributes:串口的安全属性,应为 0,表示该串口不可被子程序继承。
-dwCreationDistribution:创建文件的性质,此处为 OPEN_EXISTING.
-dwFlagsAndAttributes:属性及相关标志,这里使用异步方式应该用 FILE_FLAG_OVERLAPPED。
-hTemplateFile:此处为 0。
操作说明:若文件打开成功,串口即可使用了,该函数返回串口的句柄,以后对串口操作时即可使用该
句柄。
举例:HANDLE hComm;
hComm=CreateFile("COM1", //串口号
GENERIC_READ|GENERIC_WRITE, //允许读写 0, //通讯设备必须以独占方式打开
NULL, //无安全属性
OPEN_EXISTING, //通讯设备已存在 FILE_FLAG_OVERLAPPED, //异步 I/O 0); //通讯设备不能用模板打
开 hComm 即为函数返回的串口 1 的句柄。
2 . CloseHandle()
用途:关闭串口
原型:BOOL CloseHandle(HANDLE hObjedt)
参数说明:
-hObjedt:串口句柄
操作说明:成功关闭串口时返回 true,否则返回 false
举例:CloseHandle(hComm);
3. GetCommState()
用途:取得串口当前状态
原型:BOOL GetCommState(HANDLE hFile,
LPDCB lpDCB);
参数说明:
-hFile:串口句柄
-lpDCB:设备控制块(Device Control Block)结构地址。此结构中含有和设备相关的参数。此处是与串口相
关的参数。由于参数非常多,当需要设置串口参数 时,通常是先取得串口的参数结构,修改部分参数后再将
参数结构写入。
在此仅介绍少数的几个常用的参数:
DWORD BaudRate:串口波特率
DWORD fParity:为 1 的话激活奇偶校验检查
DWORD Parity:校验方式,值 0~4 分别对应无校验、奇校验、偶校验、校验置位、校验清零
DWORD ByteSize:一个字节的数据位个数,范围是 5~8
DWORD StopBits:停止位个数,0~2 分别对应 1 位、1.5 位、2 位停止位操作举例:DCB ComDCB; //串
TOP3098
- 粉丝: 59
- 资源: 13
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
- 1
- 2
- 3
- 4
- 5
- 6
前往页