最近在用HUF RFID 读卡器,试着用foxtable 写个读写小程序,碰到dll 引用 无法打开端口的问题。以下设置&代码,点击按钮时却退出了foxtable程序,不知是那里错误。所以请教各位大佬指导下。先谢过!
3.1.2)
OpenComPort():连接到指定串口
功能描述:
该函数用于指定串口初始化,并通过连接串口和读写器以创建通信连接。数据传输协议是57600bps,8位数据,1位停止位,没有奇偶校验位。在调用其它函数之前,您必须先连接串口和读写器。
应用:
long
WINAPI OpenComPort(long Port, unsigned char *ComAdr, unsigned char *
Baud,long FrmHandle);
参数:
Port:输入变量,COM1—COM12常数。
ComAdr:输入/输出变量,远距离读写器的地址。以广播地址(0xFF)调用此函数,函数将检测指定端口,并将检测到的连接在此端口上的读写器的实际地址回写到指针ComAdr所指变量中;以其它地址调用此函数,将检测指定端口上是否连接了具有指定ComAdr地址的读写器。
Baud:输入变量,用该值设置或更改串口通讯控件的波特率。
baudrate
|
实际波特率
|
0
|
9600bps
|
1
|
19200 bps
|
2
|
38400 bps
|
4
|
56000 bps
|
5
|
57600 bps
|
6
|
115200 bps
|
FrmHandle:输出变量,返回与读写器连接端口对应的句柄,应用程序通过该句柄可以操作连接在相应端口的读写器。如果打开不成功,返回的句柄值为-1.
COM1-COM12的定义如下:#define COM1 1 :#define COM2 2 ……… #define COM12 12
返回:如果该函数调用成功,返回一个零值。否则,返回非零值请查看其他返回值定义,返回的错误代码请查看错误代码定义。
foxtable 中全局代码:
Public Declare Function OpenComPort Lib "UHFReader09.dll" (ByVal Port As Long, ByRef ComAdr As Byte, ByVal Baud As Byte, ByVal FrmHandle As Long) As Long
窗体按钮单击事件_打开端口事件为:(端口确定为com4)
‘打开端口代码
Dim Port As Long : Port = 4 '设置端口号
ComAdr
= &HFF '全局变量广播地址
Dim Baud As Byte : Baud = 5 '设置串口波特率
FrmHandle
= -1 '置位,全局变量
fCmdRet
= OpenComPort(Port, ComAdr, Baud, FrmHandle)
If fCmdRet = 0 Then
MessageBox.Show("端口打开成功!")
Else
MessageBox.Show("端口打开失败!")
End If