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

📄 ch365dll.h

📁 南京沁恒电子有限公司USB通用设备接口芯片资料
💻 H
📖 第 1 页 / 共 2 页
字号:


BOOL	WINAPI	CH365ReadIoWord(  // 从I/O端口读取一个字
	PVOID			iAddr,  // 指定I/O端口的地址
	PUSHORT			oWord );  // 指向一个字单元,用于保存读取的字数据


BOOL	WINAPI	CH365ReadIoDword(  // 从I/O端口读取一个双字
	PVOID			iAddr,  // 指定I/O端口的地址
	PULONG			oDword );  // 指向一个双字单元,用于保存读取的双字数据


BOOL	WINAPI	CH365WriteIoByte(  // 向I/O端口写入一个字节
	PVOID			iAddr,  // 指定I/O端口的地址
	UCHAR			iByte );  // 待写入的字节数据


BOOL	WINAPI	CH365WriteIoWord(  // 向I/O端口写入一个字
	PVOID			iAddr,  // 指定I/O端口的地址
	USHORT			iWord );  // 待写入的字数据


BOOL	WINAPI	CH365WriteIoDword(  // 向I/O端口写入一个双字
	PVOID			iAddr,  // 指定I/O端口的地址
	ULONG			iDword );  // 待写入的双字数据


BOOL	WINAPI	CH365ReadMemByte(  // 从存储器读取一个字节
	PVOID			iAddr,  // 指定存储器的地址,虚拟地址
	PUCHAR			oByte );  // 指向一个字节单元,用于保存读取的字节数据


BOOL	WINAPI	CH365ReadMemDword(  // 从存储器读取一个双字
	PVOID			iAddr,  // 指定存储器的地址,虚拟地址
	PULONG			oDword );  // 指向一个双字单元,用于保存读取的双字数据


BOOL	WINAPI	CH365WriteMemByte(  // 向存储器写入一个字节
	PVOID			iAddr,  // 指定存储器的地址,虚拟地址
	UCHAR			iByte );  // 待写入的字节数据


BOOL	WINAPI	CH365WriteMemDword(  // 向存储器写入一个双字
	PVOID			iAddr,  // 指定存储器的地址,虚拟地址
	ULONG			iDword );  // 待写入的双字数据


BOOL	WINAPI	CH365ReadConfig(  // 从配置空间读取一个字节数据
	PVOID			iOffset,  // 指定偏移地址
	PUCHAR			oByte );  // 指向一个字节单元,用于保存读取的字节数据


BOOL	WINAPI	CH365WriteConfig(  // 向配置空间写入一个字节数据
	PVOID			iOffset,  // 指定偏移地址
	UCHAR			iByte );  // 待写入的字节数据


BOOL	WINAPI	CH365SetA15_A8(  // 设置高地址,即设置A15-A8的输出
	UCHAR			iA15_A8 );  // 位7-位0对应A15-A8的输出,1为高电平,0为低电平


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


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


HANDLE	WINAPI	CH365mOpenDevice(  // 打开CH365设备,返回句柄,出错则无效
	ULONG			iIndex,  // 指定CH365设备序号,0对应第一个设备
	BOOL			iEnableMemory,  // 是否需要支持存储器
	BOOL			iEnableInterrupt );  // 是否需要支持中断


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


ULONG	WINAPI	CH365mDriverCommand(  // 直接传递命令给驱动程序,出错则返回0,否则返回数据长度
	ULONG			iIndex,  // 指定CH365设备序号
	mPWIN32_COMMAND	ioCommand );  // 命令结构的指针
// 该程序在调用后返回数据长度,并且仍然返回命令结构,如果是读操作,则数据返回在命令结构中,
// 返回的数据长度在操作失败时为0,操作成功时为整个命令结构的长度,例如读一个字节,则返回mWIN32_COMMAND_HEAD+1,
// 命令结构在调用前,分别提供:命令功能代码,起始地址(可选),存取数据的长度(可选),
// 命令结构在调用后,分别返回:操作状态代码,返回的基址(可选),后续数据的长度(可选),
//   操作状态代码是由WINDOWS定义的代码,可以参考NTSTATUS.H,
//   返回的基址只适用于下列命令:获取I/O基址,获取存储器基址,获取中断号,对于其它命令则保持输入时的起始地址
//   后续数据的长度是指读操作返回的数据长度,数据存放在随后的缓冲区中,对于写操作一般为0


BOOL	WINAPI	CH365mGetIoBaseAddr(  // 获取I/O端口的基址
	ULONG			iIndex,  // 指定CH365设备序号
	mPCH365_IO_REG	*oIoBaseAddr );  // 保存I/O端口基址的单元地址


BOOL	WINAPI	CH365mSetIoBaseAddr(  // 设定I/O端口的基址
	ULONG			iIndex,  // 指定CH365设备序号
	mPCH365_IO_REG	iIoBaseAddr );  // 指定I/O端口基址


BOOL	WINAPI	CH365mGetMemBaseAddr(  // 获取存储器的基址
	ULONG			iIndex,  // 指定CH365设备序号
	mPCH365_MEM_REG	*oMemBaseAddr );  // 保存存储器基址的单元地址


BOOL	WINAPI	CH365mSetMemBaseAddr(  // 设定存储器的基址
	ULONG			iIndex,  // 指定CH365设备序号
	mPCH365_MEM_REG	iMemBaseAddr );  // 指定存储器基址,为0则关闭存储器,为-1则自动设定


BOOL	WINAPI	CH365mGetIntLine(  // 获取中断号
	ULONG			iIndex,  // 指定CH365设备序号
	PULONG			oIntLine );  // 保存中断号的单元地址


BOOL	WINAPI	CH365mSetIntLine(  // 设定中断号
	ULONG			iIndex,  // 指定CH365设备序号
	ULONG			iIntLine );  // 指定中断号,为0则关闭中断,为-1则自动检测并设定


BOOL	WINAPI	CH365mWaitInterrupt(  // 等待中断事件
	ULONG			iIndex );  // 指定CH365设备序号


BOOL	WINAPI	CH365mAbortWaitInt(  // 放弃等待中断
	ULONG			iIndex );  // 指定CH365设备序号


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


BOOL	WINAPI	CH365mReadIntCommand(  // 读取中断命令缓冲区
	ULONG			iIndex,  // 指定CH365设备序号
	mPWIN32_COMMAND	oCommand,  // 指向一个足够大的缓冲区,用于保存读取的命令结构
	ULONG			iCmdIndex );  // 中断命令序号,为1或者2


BOOL	WINAPI	CH365mWriteIntCommand(  // 写入中断命令缓冲区
	ULONG			iIndex,  // 指定CH365设备序号
	mPWIN32_COMMAND	iCommand,  // 指向作为中断命令的命令结构
	ULONG			iCmdIndex );  // 中断命令序号,为1或者2


BOOL	WINAPI	CH365mReadIoByte(  // 从I/O端口读取一个字节
	ULONG			iIndex,  // 指定CH365设备序号
	PVOID			iAddr,  // 指定I/O端口的地址
	PUCHAR			oByte );  // 指向一个字节单元,用于保存读取的字节数据


BOOL	WINAPI	CH365mReadIoWord(  // 从I/O端口读取一个字
	ULONG			iIndex,  // 指定CH365设备序号
	PVOID			iAddr,  // 指定I/O端口的地址
	PUSHORT			oWord );  // 指向一个字单元,用于保存读取的字数据


BOOL	WINAPI	CH365mReadIoDword(  // 从I/O端口读取一个双字
	ULONG			iIndex,  // 指定CH365设备序号
	PVOID			iAddr,  // 指定I/O端口的地址
	PULONG			oDword );  // 指向一个双字单元,用于保存读取的双字数据


BOOL	WINAPI	CH365mWriteIoByte(  // 向I/O端口写入一个字节
	ULONG			iIndex,  // 指定CH365设备序号
	PVOID			iAddr,  // 指定I/O端口的地址
	UCHAR			iByte );  // 待写入的字节数据


BOOL	WINAPI	CH365mWriteIoWord(  // 向I/O端口写入一个字
	ULONG			iIndex,  // 指定CH365设备序号
	PVOID			iAddr,  // 指定I/O端口的地址
	USHORT			iWord );  // 待写入的字数据


BOOL	WINAPI	CH365mWriteIoDword(  // 向I/O端口写入一个双字
	ULONG			iIndex,  // 指定CH365设备序号
	PVOID			iAddr,  // 指定I/O端口的地址
	ULONG			iDword );  // 待写入的双字数据


BOOL	WINAPI	CH365mReadMemByte(  // 从存储器读取一个字节
	ULONG			iIndex,  // 指定CH365设备序号
	PVOID			iAddr,  // 指定存储器的地址,虚拟地址
	PUCHAR			oByte );  // 指向一个字节单元,用于保存读取的字节数据


BOOL	WINAPI	CH365mReadMemDword(  // 从存储器读取一个双字
	ULONG			iIndex,  // 指定CH365设备序号
	PVOID			iAddr,  // 指定存储器的地址,虚拟地址
	PULONG			oDword );  // 指向一个双字单元,用于保存读取的双字数据


BOOL	WINAPI	CH365mWriteMemByte(  // 向存储器写入一个字节
	ULONG			iIndex,  // 指定CH365设备序号
	PVOID			iAddr,  // 指定存储器的地址,虚拟地址
	UCHAR			iByte );  // 待写入的字节数据


BOOL	WINAPI	CH365mWriteMemDword(  // 向存储器写入一个双字
	ULONG			iIndex,  // 指定CH365设备序号
	PVOID			iAddr,  // 指定存储器的地址,虚拟地址
	ULONG			iDword );  // 待写入的双字数据


BOOL	WINAPI	CH365mReadConfig(  // 从配置空间读取一个字节数据
	ULONG			iIndex,  // 指定CH365设备序号
	PVOID			iOffset,  // 指定偏移地址
	PUCHAR			oByte );  // 指向一个字节单元,用于保存读取的字节数据


BOOL	WINAPI	CH365mWriteConfig(  // 向配置空间写入一个字节数据
	ULONG			iIndex,  // 指定CH365设备序号
	PVOID			iOffset,  // 指定偏移地址
	UCHAR			iByte );  // 待写入的字节数据


BOOL	WINAPI	CH365mSetA15_A8(  // 设置高地址,即设置A15-A8的输出
	ULONG			iIndex,  // 指定CH365设备序号
	UCHAR			iA15_A8 );  // 位7-位0对应A15-A8的输出,1为高电平,0为低电平


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


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


BOOL	WINAPI	CH365DelayUS(  // 延时指定微秒
	ULONG			iDelay );  // 指定要延时的微秒数,如果延时小于10则误差较大


BOOL	WINAPI	CH365mAccessBlock(  // 读取或者写入数据块
	ULONG			iIndex,  // 指定CH365设备序号
	ULONG			iAccessMode,  // 参考下面的说明
	PVOID			iAddr,  // 指定I/O端口或者存储器的地址
	PVOID			ioBuffer,  // 指向输入或者输出的缓冲区
	ULONG			iLength );  // 数据块长度,也就是读取或者写入的字节数,长度不超过32KB
// iAccessMode 定义如下
// #define		mFuncReadIoByte			0x00000010	// 读取输入输出端口,在同一个端口地址以字节为单位连续读取,最大长度32KB
// #define		mFuncReadIoWord			0x00000011	// 读取输入输出端口,在同一个端口地址以字为单位连续读取,最大长度32KB
// #define		mFuncReadIoDword		0x00000012	// 读取输入输出端口,在同一个端口地址以双字为单位连续读取,最大长度32KB
// #define		mFuncReadIoBlock		0x00000013	// 读取输入输出端口,每读取一个字节,端口地址加一,最大长度240B(从偏移地址00H读到EFH)
// #define		mFuncWriteIoByte		0x00000014	// 写入输入输出端口,在同一个端口地址以字节为单位连续写入,最大长度32KB
// #define		mFuncWriteIoWord		0x00000015	// 写入输入输出端口,在同一个端口地址以字为单位连续写入,最大长度32KB
// #define		mFuncWriteIoDword		0x00000016	// 写入输入输出端口,在同一个端口地址以双字为单位连续写入,最大长度32KB
// #define		mFuncWriteIoBlock		0x00000017	// 写入输入输出端口,每写入一个字节,端口地址加一,最大长度240B(从偏移地址00H写到EFH)
// #define		mFuncReadMemByte		0x00000018	// 读取存储器/寄存器,以字节为单位连续读,每读取一个字节,地址加一,最大长度32KB(从偏移地址0000H读到7FFFH)
// #define		mFuncReadMemWord		0x00000019	// 读取存储器/寄存器,以字为单位连续读,每读取一个字,地址加二,最大长度32KB(从偏移地址0000H读到7FFFH)
// #define		mFuncReadMemDword		0x0000001a	// 读取存储器/寄存器,以双字为单位连续读,每读取一个字节,地址加四,最大长度32KB(从偏移地址0000H读到7FFFH)
// #define		mFuncWriteMemByte		0x0000001c	// 写入存储器/寄存器,以字节为单位连续写,每读取一个字节,地址加一,最大长度32KB(从偏移地址0000H写到7FFFH)
// #define		mFuncWriteMemWord		0x0000001d	// 写入存储器/寄存器,以字为单位连续写,每读取一个字,地址加二,最大长度32KB(从偏移地址0000H写到7FFFH)
// #define		mFuncWriteMemDword		0x0000001e	// 写入存储器/寄存器,以双字为单位连续写,每读取一个双字,地址加四,最大长度32KB(从偏移地址0000H写到7FFFH)
// 其它方式不支持,上述定义在文件CH365DLL.H中


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


#ifdef __cplusplus
}
#endif

#endif		// _CH365_DLL_H

⌨️ 快捷键说明

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