以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  有关dll 库 使用的小疑问  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=178872)

--  作者:lzgt
--  发布时间:2022/7/25 13:11:00
--  有关dll 库 使用的小疑问
最近在用HUF RFID 读卡器,试着用foxtable 写个读写小程序,碰到dll 引用 无法打开端口的问题。以下设置&代码,点击按钮时却退出了foxtable程序,不知是那里错误。所以请教各位大佬指导下。先谢过!

UHFReader09.DLL动态连接库 关于函数的说明

3.1.2) OpenComPort():连接到指定串口

功能描述:

该函数用于指定串口初始化,并通过连接串口和读写器以创建通信连接。数据传输协议是57600bps8位数据,1位停止位,没有奇偶校验位。在调用其它函数之前,您必须先连接串口和读写器。

应用:

long  WINAPI OpenComPort(long Port, unsigned char *ComAdr, unsigned char * Baud,long FrmHandle);

参数:

Port:输入变量,COM1COM12常数。

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




--  作者:有点蓝
--  发布时间:2022/7/25 14:26:00
--  
我也一知半解。试试

foxtable 中全局代码:

Public Declare Function OpenComPort Lib "UHFReader09.dll" (ByVal Port As LongByval ComAdr$ByVal Baud As ByteByVal FrmHandle As LongAs Long


窗体按钮单击事件_打开端口事件为:(端口确定为com4)

打开端口代码

Dim Port As Long = 4   \'设置端口号

Dim ComAdr As new String(ComAdr, 20)    \'全局变量广播地址

ComAdr &HFF

Dim Baud As string = 5  \'设置串口波特率

FrmHandle = -1            \'置位,全局变量      

 

fCmdRet = OpenComPort(Port, ComAdr, Baud, FrmHandle)