首页 / 软件开发 / C++ / 在CB6下基于api函数编写串口通信程序简介
在CB6下基于api函数编写串口通信程序简介2008-01-051-在C++ Builder 6.0下基于api函数编写串口通信程序简介:在dos/win95/win98的年代,操作对串口是不保护的,也就是说将串口的的资源完全开放给用户,用户可以用直接操作硬件的函数(比如说TC2.0下的inport()和outport()函数) 跟串口直接打交道,这时候用户使用直接操作串口的函数怎样"折磨"串口都是没有问题的,操作系统根本就不管不问,对串口操作所造成的一切后果都是用户一个人承担的,这时候用户对串口具有高度自由的支配权;但是,这种情况好景不长,从win2000操作系统开始,微软为了"照顾好"计算机上的硬件,开始实施了对硬件的保护策略,也就是说任何用户在他的操作系统下企图操纵串口时必须经过他的同意方可进行,其实也就是变相的将用户往必须使用他的通信api函数才能操作串口这条"羊肠小路"上赶(当然也有别的方法操作串口,但那些并非我等普通用户能研究明白的),形象一点说就好像你想怎样操作串口的意图必须经过win2000的翻译(其实是win2000的设备驱动程序)才能转达给串口一样,基于这一点我们说(其实是很多资料上说的)win2000下通过api函数操作串口是具有"设备无关性的",什么意思呢?就是说你想怎样操作串口就用相应的api函数告诉操作系统你想对串口干什么,然后操作系统就把你的意思转告给串口让其做出相应的动作,相对于dos/win95/win98下来说,据我理解也就相当于你原来写的直接操作串口的函数在win2000下他替你完成了,但是你必须用win2000通信api函数清楚地向操作系统表达清楚你到底想干什么,所以说在这种情况下要想写好串口驱动程序你就必须至少弄明白win2000下的通信api函数都是干什么的方可,啰里啰唆唠叨了这么多... ...sorry,还没完呢,至少还有一件事我想说,原来在dos/win95/win98系统下有好多高手用c/c++对串口进行直接操作是非常熟练的,尤其是dos时代的turbo 2.0操作串口的高手他们写的串口驱动程序直到win98的时候还用的非常洋洋得意,但是到了win2000的时候,他们的程序突然不好使了,而他们有的可能还会因为知识结构上的滞后始终弄不明白怎么回事儿,兄弟们,你们该明白了吧?闲话少叙,下面介绍笔者写串口通信函数时用到的各个api函数---------