全球旧事资料 分类
1、串口通信编程步骤a打开串口
b配置串口c读写串口
d关闭串口2、代码实例及解析a打开串口
Wi
dows系统中对于文件的操作进行了扩充,无论是文件、通信设备、命名管道、磁盘和控制台,都是使用CreateFile函数打开或者创建。打开串口的方式有两种同步IO方式打开、重叠IO方式打开。同步IO方式,发出IO操作请求的API函数将一直被阻塞,直到IO操作完成后,才能继续向下执行,在采用多线程进行编程时,要注意避免线程被阻塞。重叠IO方式,发出IO操作请求,的API可以立即返回,系统在后台运行IO操作,这样可以避免API函数被阻塞。同步IO方式打开
HANDLEhComhComCreateFile“COM1”串口名称GENERIC_READGENERIC_WRITE允许读写0独占方式NULLOPEN_EXISTING打开而不是创建0同步方式NULLifhComHANDLE1MessageBox“打开COM失败!”retur
FALSEMessageBox“打开COM成功!”
fretur
TRUE
重叠IO方式打开
HANDLEhComhComCreateFile“COM1”串口名称GENERIC_READGENERIC_WRITE允许读写0独占方式NULLOPEN_EXISTING打开而不是创建FILE_ATTRIBUTE_NORMALFILE_FLAG_OVERLAPPED重叠IO方式打开NULLifhComINVALID_HANDLE_VALUEMessageBox“打开COM失败!”retur
FALSEMessageBox“打开COM成功!”retur
TRUE
b配置串口串口打开后,还要进行相应的配置,这里主要讨论:DCB配置、IO缓冲区设置、超时设置。DCB结构中包含了诸如波特率、数据位数、奇偶校验和停止位等重要的串口信息。Wi
32系统文件wi
baseh定义了DCB结构使用的串口配置常量。应用程序可以通过GetCommState函数获得串口的当前配置信息,然后根据自身的要求进行相应的修改,然后再通过SetCommState将修改好的信息填充到串口的DCB中。设置IO缓冲区的大小,Wi
32系统采用系统IO缓冲区来暂存串口的数据数据。如果通信的速率较高,那么应用程序应该设较大的系统IO缓冲区。调用SetupComm函数可以设置输入输出缓冲区的大小。设置超时,设置超时的作用:当在指定的时间内没有读取或者发送指定数量的字符时,ReadFile或者WriteFile函数的操作仍然能够结束,不会出现无限等待
f的情况。读写串口的传输超时有两种:间隔超时和总超时。间隔超时是指在接收时两个字符之间的最大延迟。总超时是指读写操作总共花费的最大时间。写操作只支持总超时,而读操作两种超时均支持。COMMTIMEOUTS结构中的数据成员值都是以毫秒为单位的,总超时的计算公式是:总超时时间系数要求读写的字符数时间常量。例如,要要读r
好听全球资料 返回顶部