叠操作结果。
如果规定了读写操作的超时,那么当超过规定时间后,#5 成员会变成有信号的。
因 此 , 在 超 时 发 生 后 , %-,>" 和 25!* 都 会 结 束 等 待 。
%-,>" 的 $!"%! 参数会规定一个等待超时,该函数实际等待的时间是
两个超时的最小值。注意 25!* 不能设置等待的时限,因此如果 #5 成员
无信号,则该函数将一直等待下去。
在调用 和 之前,线程应该调用 %% 函数清除错误标志。
该函数负责报告指定的错误和设备的当前状态。
调用 *-% 函数可以终止正在进行的读写操作,该函数还会清除输入或输出缓冲
区中的内容。
?调用 函数实现串行通信编程
% ! 操作系统对系统底层操作采取了屏蔽的策略,禁止应用程序直接访问计算机
端口,而由设备驱动程序统一管理,% ! 封装了 % ! 的通信机制,这种方式称为
通信应用程序接口 "%%--3"!/。% !@A<<< 提供的
一般都支持 位的操作,又称为 ,程序员可以利用 的通信函数
进行编程,不用对硬件直接进行操作使得应用程序的编制更加方便。
??; 常用通信函数
在进行串口通信时,经常需要用到下列一些 函数:
/:用于打开一个文件访问串口;
2%/:获取串口的当前配置,放入设备控制块 ) 中;
%/B根据 ) 重新配置串口参数;
%%*!/:设置串口读写操作的溢出时间;
/:从串口的输入缓冲区读取数据;
/:向串口的输出缓冲区写入数据;
%$!C/:监视指定通信资源上的事件;
%5/:等待通信事件发生;
%!/:关闭由 函数打开的串口。
以上这些函数的原形可在参考文献D;E中找到。
;F在 ::)*G?< 下基于 函数编写串口通信程序简介:
在 %! @H @I 的年代,操作系统对串口是不保护的,也就是说将串口的的资源完全开
放给用户,用户可以用直接操作硬件的函数比如说?< 下的 %/和 %*%/函数/跟
串口直接打交道,这时候用户使用直接操作串口的函数怎样 J折磨J串口都是没有问题的,
操作系统根本就不管不问,对串口操作所造成的一切后果都是用户一个人承担的,这时候
用户对串口具有高度自由的支配权;但是,这种情况好景不长,从 <<< 操作系统开始,
微软为了J照顾好J计算机上的硬件,开始实施了对硬件的保护策略,也就是说任何用户在
他的操作系统下企图操纵串口时必须经过他的同意方可进行,其实也就是变相的将用户往
必须使用他的通信 函数才能操作串口这条J羊肠小路J上赶当然也有别的方法操作串口,
但那些并非我等普通用户能研究明白的/,形象一点说就好像你想怎样操作串口的意图必须
经过 <<< 的翻译其实是 <<< 的设备驱动程序/才能转达给串口一样,基于这一点我
们说其实是很多资料上说的/ <<< 下通过 函数操作串口是具有J设备无关性的J,什
么意思呢?就是说你想怎样操作串口就用相应的 函数告诉操作系统你想对串口干什么,