|
|
using System;
|
|
|
using System.Collections.Generic;
|
|
|
using System.Linq;
|
|
|
using System.Text;
|
|
|
using System.Runtime.InteropServices;
|
|
|
|
|
|
namespace USB2XXX
|
|
|
{
|
|
|
class USB2UART
|
|
|
{
|
|
|
//定义函数返回错误代码
|
|
|
public const Int32 UART_SUCCESS = (0); //函数执行成功
|
|
|
public const Int32 UART_ERR_NOT_SUPPORT = (-1); //适配器不支持该函数
|
|
|
public const Int32 UART_ERR_USB_WRITE_FAIL = (-2); //USB写数据失败
|
|
|
public const Int32 UART_ERR_USB_READ_FAIL = (-3); //USB读数据失败
|
|
|
public const Int32 UART_ERR_CMD_FAIL = (-4); //命令执行失败
|
|
|
//数据位宽
|
|
|
public const Byte UART_WORD_LENGTH_8BIT = 0;
|
|
|
public const Byte UART_WORD_LENGTH_9BIT = 1;
|
|
|
//停止位
|
|
|
public const Byte UART_STOP_BITS_1 = 0;
|
|
|
public const Byte UART_STOP_BITS_05 = 1;
|
|
|
public const Byte UART_STOP_BITS_2 = 2;
|
|
|
public const Byte UART_STOP_BITS_15 = 3;
|
|
|
//奇偶校验位
|
|
|
public const Byte UART_PARITY_NO = 0;
|
|
|
public const Byte UART_PARITY_EVEN = 4;
|
|
|
public const Byte UART_PARITY_ODD = 6;
|
|
|
//TE控制信号输出
|
|
|
public const Byte UART_TE_DISEN = 0x00;
|
|
|
public const Byte UART_TE_EN_LOW = 0x80;
|
|
|
public const Byte UART_TE_EN_HIGH = 0x81;
|
|
|
//定义初始化UART初始化数据类型
|
|
|
public struct UART_CONFIG
|
|
|
{
|
|
|
public UInt32 BaudRate; //波特率
|
|
|
public Byte WordLength; //数据位宽,0-8bit,1-9bit
|
|
|
public Byte StopBits; //停止位宽,0-1bit,1-0.5bit,2-2bit,3-1.5bit
|
|
|
public Byte Parity; //奇偶校验,0-No,4-Even,6-Odd
|
|
|
public Byte TEPolarity; //TE输出控制,0x80-输出TE信号,且低电平有效,0x81-输出TE信号,且高电平有效,0x00不输出TE信号
|
|
|
}
|
|
|
[DllImport("USB2XXX.dll")]
|
|
|
public static extern Int32 UART_Init(Int32 DevHandle, Byte Channel, ref UART_CONFIG pConfig);
|
|
|
[DllImport("USB2XXX.dll")]
|
|
|
public static extern Int32 UART_WriteBytes(Int32 DevHandle,Byte Channel,Byte[] pWriteData,Int32 DataSize);
|
|
|
[DllImport("USB2XXX.dll")]
|
|
|
public static extern Int32 UART_WriteBytesAsync(Int32 DevHandle,Byte Channel,Byte[] pWriteData,Int32 DataSize);
|
|
|
[DllImport("USB2XXX.dll")]
|
|
|
public static extern Int32 UART_ReadBytes(Int32 DevHandle, Byte Channel, Byte[] pReadData, Int32 TimeOutMs);
|
|
|
}
|
|
|
}
|