串口通讯实例(转)
串口通讯
最近在搞 的串口通讯, 里面没有线程的概念,所以 对串口的读写只能在
一个进程里面,这样
如果串口的缓存有问题,就会导致报告丢失(正好是我们遇到的),我们来看
看支持线程的 是如何来解决这个问题的。
本文介绍了一个简单的通过串口实现全双工通讯的 类库,该类库大大的
简化了对串口进行操作的过程。
本 类库主要包括:与其他应用程序的接口
用来保存从串口所接收数据的缓冲区
从串口读取数据的程序。另外本类库还提供了一个例程
作为示范。在下面的内容中将逐一对这几个部分进行详
细介绍。
是本类库与其他应用程序的接口。该类库中定义了 的
构造方法以及初始化串口,从串口读取数据,往串口写入数据以及关闭串口的
函数。具体介绍如下:
!"#$%#&'
本函数构造一个指向特定串口的 ,该串口由参数 $%#&' 所指
定。$%#&'(表示 )*,$%#&'(表示 )*,由此类推。
!"#&#+
本函数初始化所指定的串口并返回初始化结果。如果初始化成功返回 ,否则
返回。初始化的结果是该串口被 独占性使用,其参数被设置为
,-.。如果串口被成功初始化,则打开一个进程读取从串口传入的数
据并将其保存在缓冲区中。
!"#/$%##0/#1
本函数从串口缓冲区中读取指定长度的一个字符串。参数 0/#1 指定所返
回字符串的长度。
!"%2#$%##/*3/
本函数向串口发送一个字符串。参数 *3/ 是需要发送的字符串。
!"%%3$%#
本函数停止串口检测进程并关闭串口。
的源代码如下:
"4/35
666 %#%75
666 %##75
666 %#"%75
666877