📄 sy0905.htm
字号:
<html>
<head>
<title>无标题文档</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
</head>
<body bgcolor="#FFFFFF" text="#000000">
<p><font color="#0000FF">使用Windows API进行串口编程</font></p>
<p>(一)实验目的<br>
使用Windows API和多线程技术操作串口</p>
<p>(二)实验内容<br>
学会使用多线程技术监视串口状态,并利用Windows API控制串口。</p>
<p>(三)要点提示<br>
1、可以使用ClearCommError得到串口的状态,该函数可以返回一个COMSTAT类型的值表示串口当前的状态,其中cbInQue域表示串口读缓冲区中有多少字节的数据。</p>
<p>2、使用工作者线程即可,使用AfxBeginThread启动线程。线程可以不断调用ClearCommError函数监视串口状态。</p>
<p>3、主程序关闭时必须通知线程退出,以保证所有资源被及时释放。可以使用事件对象,也可以简单的使用一个用volatile修饰的BOOL型变量来同步主辅线程。volatile表示该变量不会为了优化而缓存到寄存器中,这样程序每次使用该变量时,都会到内存读取。</p>
<p>4、主程序通知线程退出后可以使用WaitForSingleObject等待线程退出。</p>
<p>(四)示例程序<br>
在主机的COM1和COM2已连线的情况下,点击“发送”时,程序向COM1写数据。由于程序打开了COM2后就启动了一个线程监视COM2的状态,当COM2收到数据时,程序马上就可以自动将数据读出并显示出来。</p>
<p>示例程序<a href="comm3.rar">下载</a><br>
</p>
</body>
</html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -