请帮忙看一下用API写的串口模块问题出在哪,不能发送和接收
时间:2011-11-26
来源:互联网
'发送数据
Public Function SendData(bytBuffer() As Byte, lngSize As Long) As Long
Dim m As Integer
On Error GoTo ToExit '打开错误陷阱
'------------------------------------------------
If (m_Handle = 0) Then
SendData = 1
Exit Function
End If
Dim dwBytesWritten As Long
Dim bWriteStat As Long
Dim ComStats As ComStat
Dim dwErrorFlags As Long
dwBytesWritten = lngSize
Call ClearCommError(m_Handle, dwErrorFlags, ComStats)
bWriteStat = WriteFile(m_Handle, bytBuffer(0), lngSize, dwBytesWritten, m_OverlappedWrite)
If bWriteStat = 0 Then
If GetLastError() = ERROR_IO_PENDING Then
Call GetOverlappedResult(m_Handle, m_OverlappedWrite, dwBytesWritten, 1) '等待直到发送完毕
End If
Else
dwBytesWritten = 0
End If
SendData = dwBytesWritten
'------------------------------------------------
Exit Function
'----------------
ToExit:
SendData = -1
End Function
'读取数据
Public Function ReadData(bytBuffer() As Byte, lngSize As Long, Optional Overtime As Long = 3000) As Long
On Error GoTo ToExit '打开错误陷阱
'------------------------------------------------
If (m_Handle = 0) Then
ReadData = 1
Exit Function
End If
Dim lngBytesRead As Long
Dim fReadStat As Long
Dim dwRes As Long
lngBytesRead = lngSize
'读数据
fReadStat = ReadFile(m_Handle, bytBuffer(0), lngSize, lngBytesRead, m_OverlappedRead)
If fReadStat = 0 Then
If GetLastError() = ERROR_IO_PENDING Then '重叠 I/O 操作在进行中
dwRes = WaitForSingleObject(m_OverlappedRead.hEvent, Overtime) '等待,直到超时
Select Case dwRes
Case WAIT_OBJECT_0: '读完成
If GetOverlappedResult(m_Handle, m_OverlappedRead, lngBytesRead, 0) = 0 Then
'错误
ReadData = -2
Exit Function
End If
Case WAIT_TIMEOUT: '超时
ReadData = -1
Exit Function
Case Else: 'WaitForSingleObject 错误
End Select
End If
End If
ReadData = lngBytesRead
'------------------------------------------------
Exit Function
'----------------
ToExit:
ReadData = -1
End Function
作者: chenyubo1977 发布时间: 2011-11-26
楼主,你把你的代码传到资源中,大家下来看看,这样看累!
作者: Veron_04 发布时间: 2011-11-26
已经上传了
作者: chenyubo1977 发布时间: 2011-11-26
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28