⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 usbiox.h

📁 USB2I2C USB2SPI USB2ISP资料开发包
💻 H
📖 第 1 页 / 共 3 页
字号:
#define		mStateBitSLCT			0x00000800	// 只读可写,SLCT引脚输入状态,1:高电平,0:低电平
#define		mStateBitWAIT			0x00002000	// 只读可写,WAIT#引脚输入状态,1:高电平,0:低电平
#define		mStateBitDATAS			0x00004000	// 只写可读,DATAS#/READ#引脚输入状态,1:高电平,0:低电平
#define		mStateBitADDRS			0x00008000	// 只写可读,ADDRS#/ADDR/ALE引脚输入状态,1:高电平,0:低电平
#define		mStateBitRESET			0x00010000	// 只写,RESET#引脚输入状态,1:高电平,0:低电平
#define		mStateBitWRITE			0x00020000	// 只写,WRITE#引脚输入状态,1:高电平,0:低电平
#define		mStateBitSDA			0x00800000	// 只读,SDA引脚输入状态,1:高电平,0:低电平


#define		MAX_DEVICE_PATH_SIZE	128			// 设备名称的最大字符数
#define		MAX_DEVICE_ID_SIZE		64			// 设备ID的最大字符数


typedef		VOID	( CALLBACK	* mPmUSBIO_PACKET_LENGTH_INT_ROUTINE ) (  // 中断服务程序
	ULONG			iStatus );  // 中断状态数据,参考下面的位说明
// 位7-位0对应mUSBIO_PACKET_LENGTH的D7-D0引脚
// 位8对应mUSBIO_PACKET_LENGTH的ERR#引脚, 位9对应mUSBIO_PACKET_LENGTH的PEMP引脚, 位10对应mUSBIO_PACKET_LENGTH的INT#引脚, 位11对应mUSBIO_PACKET_LENGTH的SLCT引脚


HANDLE	WINAPI	USBIO_OpenDevice(  // 打开mUSBIO_PACKET_LENGTH设备,返回句柄,出错则无效
	ULONG			iIndex );  // 指定mUSBIO_PACKET_LENGTH设备序号,0对应第一个设备


VOID	WINAPI	USBIO_CloseDevice(  // 关闭mUSBIO_PACKET_LENGTH设备
	ULONG			iIndex );  // 指定mUSBIO_PACKET_LENGTH设备序号


ULONG	WINAPI	USBIO_GetVersion( );  // 获得DLL版本号,返回版本号


ULONG	WINAPI	USBIO_DriverCommand(  // 直接传递命令给驱动程序,出错则返回0,否则返回数据长度
	ULONG			iIndex,  // 指定mUSBIO_PACKET_LENGTH设备序号,V1.6以上DLL也可以是设备打开后的句柄
	mPWIN32_COMMAND	ioCommand );  // 命令结构的指针
// 该程序在调用后返回数据长度,并且仍然返回命令结构,如果是读操作,则数据返回在命令结构中,
// 返回的数据长度在操作失败时为0,操作成功时为整个命令结构的长度,例如读一个字节,则返回mWIN32_COMMAND_HEAD+1,
// 命令结构在调用前,分别提供:管道号或者命令功能代码,存取数据的长度(可选),数据(可选)
// 命令结构在调用后,分别返回:操作状态代码,后续数据的长度(可选),
//   操作状态代码是由WINDOWS定义的代码,可以参考NTSTATUS.H,
//   后续数据的长度是指读操作返回的数据长度,数据存放在随后的缓冲区中,对于写操作一般为0


ULONG	WINAPI	USBIO_GetDrvVersion( );  // 获得驱动程序版本号,返回版本号,出错则返回0


BOOL	WINAPI	USBIO_ResetDevice(  // 复位USB设备
	ULONG			iIndex );  // 指定mUSBIO_PACKET_LENGTH设备序号


BOOL	WINAPI	USBIO_GetDeviceDescr(  // 读取设备描述符
	ULONG			iIndex,  // 指定mUSBIO_PACKET_LENGTH设备序号
	PVOID			oBuffer,  // 指向一个足够大的缓冲区,用于保存描述符
	PULONG			ioLength );  // 指向长度单元,输入时为准备读取的长度,返回后为实际读取的长度


BOOL	WINAPI	USBIO_GetConfigDescr(  // 读取配置描述符
	ULONG			iIndex,  // 指定mUSBIO_PACKET_LENGTH设备序号
	PVOID			oBuffer,  // 指向一个足够大的缓冲区,用于保存描述符
	PULONG			ioLength );  // 指向长度单元,输入时为准备读取的长度,返回后为实际读取的长度


BOOL	WINAPI	USBIO_SetIntRoutine(  // 设定中断服务程序
	ULONG			iIndex,  // 指定mUSBIO_PACKET_LENGTH设备序号
	mPmUSBIO_PACKET_LENGTH_INT_ROUTINE	iIntRoutine );  // 指定中断服务程序,为NULL则取消中断服务,否则在中断时调用该程序


BOOL	WINAPI	USBIO_ReadInter(  // 读取中断数据
	ULONG			iIndex,  // 指定mUSBIO_PACKET_LENGTH设备序号
	PULONG			iStatus );  // 指向一个双字单元,用于保存读取的中断状态数据,见下行
// 位7-位0对应mUSBIO_PACKET_LENGTH的D7-D0引脚
// 位8对应mUSBIO_PACKET_LENGTH的ERR#引脚, 位9对应mUSBIO_PACKET_LENGTH的PEMP引脚, 位10对应mUSBIO_PACKET_LENGTH的INT#引脚, 位11对应mUSBIO_PACKET_LENGTH的SLCT引脚


BOOL	WINAPI	USBIO_AbortInter(  // 放弃中断数据读操作
	ULONG			iIndex );  // 指定mUSBIO_PACKET_LENGTH设备序号


BOOL	WINAPI	USBIO_SetParaMode(  // 设置并口模式
	ULONG			iIndex,  // 指定mUSBIO_PACKET_LENGTH设备序号
	ULONG			iMode );  // 指定并口模式: 0为EPP模式/EPP模式V1.7, 1为EPP模式V1.9, 2为MEM模式


BOOL	WINAPI	USBIO_InitParallel(  // 复位并初始化并口,RST#输出低电平脉冲
	ULONG			iIndex,  // 指定mUSBIO_PACKET_LENGTH设备序号
	ULONG			iMode );  // 指定并口模式: 0为EPP模式/EPP模式V1.7, 1为EPP模式V1.9, 2为MEM模式, >= 0x00000100 保持当前模式


BOOL	WINAPI	USBIO_ReadData0(  // 从0#端口读取数据块
	ULONG			iIndex,  // 指定mUSBIO_PACKET_LENGTH设备序号
	PVOID			oBuffer,  // 指向一个足够大的缓冲区,用于保存读取的数据
	PULONG			ioLength );  // 指向长度单元,输入时为准备读取的长度,返回后为实际读取的长度


BOOL	WINAPI	USBIO_ReadData1(  // 从1#端口读取数据块
	ULONG			iIndex,  // 指定mUSBIO_PACKET_LENGTH设备序号
	PVOID			oBuffer,  // 指向一个足够大的缓冲区,用于保存读取的数据
	PULONG			ioLength );  // 指向长度单元,输入时为准备读取的长度,返回后为实际读取的长度


BOOL	WINAPI	USBIO_AbortRead(  // 放弃数据块读操作
	ULONG			iIndex );  // 指定mUSBIO_PACKET_LENGTH设备序号


BOOL	WINAPI	USBIO_WriteData0(  // 向0#端口写出数据块
	ULONG			iIndex,  // 指定mUSBIO_PACKET_LENGTH设备序号
	PVOID			iBuffer,  // 指向一个缓冲区,放置准备写出的数据
	PULONG			ioLength );  // 指向长度单元,输入时为准备写出的长度,返回后为实际写出的长度


BOOL	WINAPI	USBIO_WriteData1(  // 向1#端口写出数据块
	ULONG			iIndex,  // 指定mUSBIO_PACKET_LENGTH设备序号
	PVOID			iBuffer,  // 指向一个缓冲区,放置准备写出的数据
	PULONG			ioLength );  // 指向长度单元,输入时为准备写出的长度,返回后为实际写出的长度


BOOL	WINAPI	USBIO_AbortWrite(  // 放弃数据块写操作
	ULONG			iIndex );  // 指定mUSBIO_PACKET_LENGTH设备序号


BOOL	WINAPI	USBIO_GetStatus(  // 通过mUSBIO_PACKET_LENGTH直接输入数据和状态
	ULONG			iIndex,  // 指定mUSBIO_PACKET_LENGTH设备序号
	PULONG			iStatus );  // 指向一个双字单元,用于保存状态数据,参考下面的位说明
// 位7-位0对应mUSBIO_PACKET_LENGTH的D7-D0引脚
// 位8对应mUSBIO_PACKET_LENGTH的ERR#引脚, 位9对应mUSBIO_PACKET_LENGTH的PEMP引脚, 位10对应mUSBIO_PACKET_LENGTH的INT#引脚, 位11对应mUSBIO_PACKET_LENGTH的SLCT引脚, 位23对应mUSBIO_PACKET_LENGTH的SDA引脚
// 位13对应mUSBIO_PACKET_LENGTH的BUSY/WAIT#引脚, 位14对应mUSBIO_PACKET_LENGTH的AUTOFD#/DATAS#引脚,位15对应mUSBIO_PACKET_LENGTH的SLCTIN#/ADDRS#引脚


BOOL	WINAPI	USBIO_ReadI2C(  // 从I2C接口读取一个字节数据
	ULONG			iIndex,  // 指定mUSBIO_PACKET_LENGTH设备序号
	UCHAR			iDevice,  // 低7位指定I2C设备地址
	UCHAR			iAddr,  // 指定数据单元的地址
	PUCHAR			oByte );  // 指向一个字节单元,用于保存读取的字节数据


BOOL	WINAPI	USBIO_WriteI2C(  // 向I2C接口写入一个字节数据
	ULONG			iIndex,  // 指定mUSBIO_PACKET_LENGTH设备序号
	UCHAR			iDevice,  // 低7位指定I2C设备地址
	UCHAR			iAddr,  // 指定数据单元的地址
	UCHAR			iByte );  // 待写入的字节数据


BOOL	WINAPI	USBIO_EppReadData(  // EPP方式读数据: WR#=1, DS#=0, AS#=1, D0-D7=input
	ULONG			iIndex,  // 指定mUSBIO_PACKET_LENGTH设备序号
	PVOID			oBuffer,  // 指向一个足够大的缓冲区,用于保存读取的数据
	PULONG			ioLength );  // 指向长度单元,输入时为准备读取的长度,返回后为实际读取的长度


BOOL	WINAPI	USBIO_EppReadAddr(  // EPP方式读地址: WR#=1, DS#=1, AS#=0, D0-D7=input
	ULONG			iIndex,  // 指定mUSBIO_PACKET_LENGTH设备序号
	PVOID			oBuffer,  // 指向一个足够大的缓冲区,用于保存读取的地址数据
	PULONG			ioLength );  // 指向长度单元,输入时为准备读取的长度,返回后为实际读取的长度


BOOL	WINAPI	USBIO_EppWriteData(  // EPP方式写数据: WR#=0, DS#=0, AS#=1, D0-D7=output
	ULONG			iIndex,  // 指定mUSBIO_PACKET_LENGTH设备序号
	PVOID			iBuffer,  // 指向一个缓冲区,放置准备写出的数据
	PULONG			ioLength );  // 指向长度单元,输入时为准备写出的长度,返回后为实际写出的长度


BOOL	WINAPI	USBIO_EppWriteAddr(  // EPP方式写地址: WR#=0, DS#=1, AS#=0, D0-D7=output
	ULONG			iIndex,  // 指定mUSBIO_PACKET_LENGTH设备序号
	PVOID			iBuffer,  // 指向一个缓冲区,放置准备写出的地址数据
	PULONG			ioLength );  // 指向长度单元,输入时为准备写出的长度,返回后为实际写出的长度


BOOL	WINAPI	USBIO_EppSetAddr(  // EPP方式设置地址: WR#=0, DS#=1, AS#=0, D0-D7=output
	ULONG			iIndex,  // 指定mUSBIO_PACKET_LENGTH设备序号
	UCHAR			iAddr );  // 指定EPP地址


BOOL	WINAPI	USBIO_MemReadAddr0(  // MEM方式读地址0: WR#=1, DS#/RD#=0, AS#/ADDR=0, D0-D7=input
	ULONG			iIndex,  // 指定mUSBIO_PACKET_LENGTH设备序号
	PVOID			oBuffer,  // 指向一个足够大的缓冲区,用于保存从地址0读取的数据
	PULONG			ioLength );  // 指向长度单元,输入时为准备读取的长度,返回后为实际读取的长度


BOOL	WINAPI	USBIO_MemReadAddr1(  // MEM方式读地址1: WR#=1, DS#/RD#=0, AS#/ADDR=1, D0-D7=input
	ULONG			iIndex,  // 指定mUSBIO_PACKET_LENGTH设备序号
	PVOID			oBuffer,  // 指向一个足够大的缓冲区,用于保存从地址1读取的数据
	PULONG			ioLength );  // 指向长度单元,输入时为准备读取的长度,返回后为实际读取的长度


BOOL	WINAPI	USBIO_MemWriteAddr0(  // MEM方式写地址0: WR#=0, DS#/RD#=1, AS#/ADDR=0, D0-D7=output
	ULONG			iIndex,  // 指定mUSBIO_PACKET_LENGTH设备序号
	PVOID			iBuffer,  // 指向一个缓冲区,放置准备向地址0写出的数据
	PULONG			ioLength );  // 指向长度单元,输入时为准备写出的长度,返回后为实际写出的长度


BOOL	WINAPI	USBIO_MemWriteAddr1(  // MEM方式写地址1: WR#=0, DS#/RD#=1, AS#/ADDR=1, D0-D7=output
	ULONG			iIndex,  // 指定mUSBIO_PACKET_LENGTH设备序号
	PVOID			iBuffer,  // 指向一个缓冲区,放置准备向地址1写出的数据
	PULONG			ioLength );  // 指向长度单元,输入时为准备写出的长度,返回后为实际写出的长度


BOOL	WINAPI	USBIO_SetExclusive(  // 设置独占使用当前mUSBIO_PACKET_LENGTH设备
	ULONG			iIndex,  // 指定mUSBIO_PACKET_LENGTH设备序号
	ULONG			iExclusive );  // 为0则设备可以共享使用,非0则独占使用


BOOL	WINAPI	USBIO_SetTimeout(  // 设置USB数据读写的超时
	ULONG			iIndex,  // 指定mUSBIO_PACKET_LENGTH设备序号
	ULONG			iWriteTimeout,  // 指定USB写出数据块的超时时间,以毫秒mS为单位,0xFFFFFFFF指定不超时(默认值)
	ULONG			iReadTimeout );  // 指定USB读取数据块的超时时间,以毫秒mS为单位,0xFFFFFFFF指定不超时(默认值)


BOOL	WINAPI	USBIO_ReadData(  // 读取数据块
	ULONG			iIndex,  // 指定mUSBIO_PACKET_LENGTH设备序号
	PVOID			oBuffer,  // 指向一个足够大的缓冲区,用于保存读取的数据
	PULONG			ioLength );  // 指向长度单元,输入时为准备读取的长度,返回后为实际读取的长度


BOOL	WINAPI	USBIO_WriteData(  // 写出数据块
	ULONG			iIndex,  // 指定mUSBIO_PACKET_LENGTH设备序号

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -