如何用createfile打开串口

binskywz 2003-03-28 05:07:14
谁能正确用VB写出createfile打开com2的声明、及语句;
我这样做为什么打开不了:
Public Const GENERIC_READ = &H80000000
Public Const GENERIC_WRITE = &H40000000
Public Const OPEN_EXISTING = 3
Public Declare Function CreateFile Lib "kernel32" Alias "CreateFileA" (ByVal lpFileName As String, ByVal dwDesiredAccess As Long, ByVal dwShareMode As Long, lpSecurityAttributes As Long, ByVal dwCreationDisposition As Long, ByVal dwFlagsAndAttributes As Long, ByVal hTemplateFile As Long) As Long
...全文
165 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
binskywz 2003-03-29
  • 打赏
  • 举报
回复
参数改为long或any时,
lHandle 总是=-1,打开串口失败
binskywz 2003-03-29
  • 打赏
  • 举报
回复
改过了,都不行,
你试过了的吗?
用户 昵称 2003-03-28
  • 打赏
  • 举报
回复
如果你发现“参数未定义”之类的错误,需要修改api的声明,简单的修改为long,再不行就用any。
用户 昵称 2003-03-28
  • 打赏
  • 举报
回复
同步示例代码
Private Function OpenThePort(cPort as String,cBaud as String,cParity as String,cData as String,tStops as String)As Boolean
Dim lResult as Long
Dim lHandle as Long
Dim DCB_COMM as DCB
Dim cDCBConfig as String
lHandle = CreateFile(cPort,GENERIC_READ Or GENERIC_WRITE,0&,0&,OPEN_EXISTING,0&,0&)
If lHandle = -1 Then ’打开串口失败
OpenThePort = False
MsgBox “串口可能正被其他应用程序占用!”
lResult = CloseHandle(lHandle) ’先关闭串口后再打开
If lResult = 0 Then
OpenThePort
Exit Function
End If
End If
cDCBConfig.band = 2400 ’设置DCB
cDCBConfig.parity = None
cDCBConfig.data = 8
cDCBConfig.stop = 1
lResult = BuildCommDCB(cDCBConfig,DCB_COMM) ’按用户设定配置一个DCB结构
If lResult = 0 Then
OpenThePort = False
MsgBox “无法建立DCB设备控制块”
Exit Function
End If
lResult = SetCommState(lHandle,DCB_Comm) ’实际设置一个串口的DCB
If lResult = 0 Then
OpenThePort = False
MsgBox “无法建立DCB设备控制块”
Exit Function
End If
OpenThePort = True
End Function

1,486

社区成员

发帖
与我相关
我的任务
社区描述
VB API
社区管理员
  • API
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧