You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

64 lines
3.6 KiB
C#

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Runtime.InteropServices;
namespace USB2XXX
{
class USB2GPIO
{
//定义函数返回错误代码
public const Int32 GPIO_SUCCESS = (0); //函数执行成功
public const Int32 GPIO_ERR_NOT_SUPPORT = (-1); //适配器不支持该函数
public const Int32 GPIO_ERR_USB_WRITE_FAIL = (-2); //USB写数据失败
public const Int32 GPIO_ERR_USB_READ_FAIL = (-3); //USB读数据失败
public const Int32 GPIO_ERR_CMD_FAIL = (-4); //命令执行失败
/**
* @brief 将GPIO引脚设置为输入模式
* @param DevHandle 设备句柄
* @param PinMask 需要设置为输入模式的引脚每个bit位代表一个引脚对应bit位为1时改引脚对设置有效最低位为P0
* @param PuPd 0-浮空输入无上拉或者下拉1-上拉输入2-下拉输入
* @retval 函数执行状态小于0函数执行出错
*/
[DllImport("USB2XXX.dll")]
public static extern Int32 GPIO_SetInput(Int32 DevHandle,UInt32 PinMask, Byte PuPd);
/**
* @brief 将GPIO引脚设置为输出模式
* @param DevHandle 设备句柄
* @param PinMask 需要设置为输出模式的引脚每个bit位代表一个引脚对应bit位为1时改引脚对设置有效最低位对应P0
* @param PuPd 0-推挽输出无上拉或者下拉1-上拉输出2-下拉输出
* @retval 函数执行状态小于0函数执行出错
*/
[DllImport("USB2XXX.dll")]
public static extern Int32 GPIO_SetOutput(Int32 DevHandle,UInt32 PinMask, Byte PuPd);
/**
* @brief 将GPIO引脚设置为开漏模式该模式下可作为双向引脚
* @param DevHandle 设备句柄
* @param PinMask 需要设置为开漏模式的引脚每个bit位代表一个引脚对应bit位为1时改引脚对设置有效最低位对应P0
* @param PuPd 0-内部无上拉或者下拉1-使能上拉2-使能下拉
* @retval 函数执行状态小于0函数执行出错
*/
[DllImport("USB2XXX.dll")]
public static extern Int32 GPIO_SetOpenDrain(Int32 DevHandle,UInt32 PinMask, Byte PuPd);
/**
* @brief 设置GPIO引脚的输出状态
* @param DevHandle 设备句柄
* @param PinMask 需要输出状态的引脚每个bit位代表一个引脚对应bit位为1时改引脚对设置有效最低位对应P0
* @param PinValue 对应引脚的状态每个bit位代表一个引脚对应bit位为1输出高电平为0输出低电平最低位对应P0
* @retval 函数执行状态小于0函数执行出错
*/
[DllImport("USB2XXX.dll")]
public static extern Int32 GPIO_Write(Int32 DevHandle,UInt32 PinMask, UInt32 PinValue);
/**
* @brief 获取GPIO引脚的输入状态
* @param DevHandle 设备句柄
* @param PinMask 需要获取状态的引脚每个bit位代表一个引脚对应bit位为1时改引脚对设置有效最低位对应P0
* @param pPinValue 对应引脚的状态每个bit位代表一个引脚对应bit位为1引脚为高电平为0引脚为低电平最低位对应P0
* @retval 函数执行状态小于0函数执行出错
*/
[DllImport("USB2XXX.dll")]
public static extern Int32 GPIO_Read(Int32 DevHandle,UInt32 PinMask, ref UInt32 pPinValue);
}
}