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

📄 ch365dll.h

📁 CAN总线通讯模块
💻 H
📖 第 1 页 / 共 2 页
字号:
	mPWIN32_COMMAND	oCommand,  // 指向一个足够大的缓冲区,用于保存读取的命令结构
	ULONG			iCmdIndex );  // 中断命令序号,为1或者2


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


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


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则误差较大


#ifdef __cplusplus
}
#endif

#endif		// _CH365_DLL_H

⌨️ 快捷键说明

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