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

📄 usbecd.c

📁 USB通信测试软件 -- 与S3C44B0的下位机通信的软件. XP驱动------------ PDIUSBD12的PC机驱动程序.USB_Test---------S3C44B0X板的USB固件程
💻 C
📖 第 1 页 / 共 2 页
字号:
/*
;************************************************************************************************************
;*									  	 江西师范大学物理通讯电子学院
;*
;*                                     	      创  新  中  心
;*
;*--------------------------------------------- 文件信息 ----------------------------------------------------                                      
;* 文件名称 : USBecd.c
;* 文件功能 : 定义了一些对PDIUSBD12操作的函数
;* 补充说明 : USB设备控制驱动(PDIUSBD12 Equipment Control Drive)、与硬件有直接联系。
;*-------------------------------------------- 最新版本信息 -------------------------------------------------
;* 修改作者 : zhouhong
;* 修改日期 : 2006-11-8 
;* 版本声明 : V1.0.0
;*-------------------------------------------- 历史版本信息 -------------------------------------------------
;* 文件作者 : zhouhong   
;* 创建日期 : 2006-11-8   
;* 版本声明 : V1.0.0     
;*-----------------------------------------------------------------------------------------------------------
;************************************************************************************************************                         
;*/
#ifndef _USBECD_C_
#define _USBECD_C_

#include "..\INC\USBecd.h"

/*
*************************************************************************************************************
- 函数名称 : bus_delay(void)
- 函数说明 : 总线延时
- 输入参数 : 无
- 输出参数 : 无
*************************************************************************************************************
*/
void bus_delay(void)
{
	INT8U delay=5;
	while(delay--)
		;
}
/*
*************************************************************************************************************
- 函数名称 : outportc(INT8U Data)
- 函数说明 : 向PDIUSBD12发送命令子程序
- 输入参数 : Data 要发送的命令
- 输出参数 : 无
*************************************************************************************************************
*/
void outportc(INT8U Data)
{
	bus_delay();
	USBD12_COMMAND_ADDRESS=Data;
	
}

/*
*************************************************************************************************************
- 函数名称 : outportc(INT8U Data)
- 函数说明 : 向PDIUSBD12发送数据子程序
- 输入参数 : Data 要发送的数据
- 输出参数 : 无
*************************************************************************************************************
*/
void outportd(INT8U Data)
{
	bus_delay();
	USBD12_DATA_ADDRESS=Data;
}

/*
*************************************************************************************************************
- 函数名称 : outportc()
- 函数说明 : 从PDIUSBD12读取数据子程序
- 输入参数 : 无
- 输出参数 : 要读取的数据
*************************************************************************************************************
*/
INT8U inportd(void)
{
	bus_delay();
	return USBD12_DATA_ADDRESS;
}

/*
*************************************************************************************************************
- 函数名称 : D12_ReadChipID
- 函数说明 : 读取芯片ID号 
- 输入参数 : 无
- 输出参数 : 返加芯片ID号
*************************************************************************************************************
*/
INT16U D12_ReadChipID(void)
{
    INT8U i;
    INT16U chipID;
    outportc(USB_COMMAND_READ_CHIPID);			//发送读PDIUSBD12 芯片ID 命令
    i=inportd();		       					//读取ID号低位字节
    chipID=inportd();
    chipID=(chipID<<8)+i;						//组成16位的PDIUSBD12芯片ID号

	return chipID;    
}

/*
*************************************************************************************************************
- 函数名称 : D12_SetAddressEnable(INT8U bAddress,INT8U bEnable)
- 函数说明 : 设置PDIUSBD12地址/使能
- 输入参数 :  bAddress:地址    bEnable: 使能标志
- 输出参数 : 无
*************************************************************************************************************
*/
void D12_SetAddressEnable(INT8U bAddress,INT8U bEnable)
{
	outportc(USB_COMMAND_SET_ADDRESS_ENABLE);			//输出设置地址/使能命令
	if(bEnable)
		bAddress|=0x80;									//bit7 使能
	outportd(bAddress);									//输出地址
}

/*
*************************************************************************************************************
- 函数名称 : D12_SetEndpointEnable(INT8U bEnable)
- 函数说明 : 设置PDIUSBD12端点使能
- 输入参数 : bEnable:端点使能标志
- 输出参数 : 无
*************************************************************************************************************
*/
void D12_SetEndpointEnable(INT8U bEnable)
{
	outportc(USB_COMMAND_SET_ENDPOINT_ENABLE);		    //输出设置端点使能命令
	if(bEnable)
		outportd(0x01);									//设置端点使能
	else
		outportd(0x00);									//设置端点禁止
}

/*
*************************************************************************************************************
- 函数名称 : D12_SetMode(INT8U bConfig,INT8U bClkDiv)
- 函数说明 : 设置PDIUSBD12的模式
- 输入参数 : bConfig:配置字节,bClkDiv:时钟分频系数字节
- 输出参数 : 无
*************************************************************************************************************
*/
void D12_SetMode(INT8U bConfig,INT8U bClkDiv)
{
	outportc( USB_COMMAND_SET_MODE);				//输出设置模式命令
	outportd(bConfig);								//输出配置字节信息
	outportd(bClkDiv);								//输出时钟分频因数字节
}

/*
*************************************************************************************************************
- 函数名称 : D12_SetDMA(INT8U bMode)
- 函数说明 : 设置PDIUSBD12的DMA模式
- 输入参数 : bMode:DMA的模式
- 输出参数 : 无
*************************************************************************************************************
*/    
void D12_SetDMA(INT8U bMode)
{
	outportc(USB_COMMAND_SET_DMA);				//输出设置DMA工作模式命令
	outportd(bMode);    
}

/*
*************************************************************************************************************
- 函数名称 : D12_ReadInterruptRegister(void)
- 函数说明 : 读取PDIUSBD12中断寄存器的值.
- 输入参数 : 无
- 输出参数 : PDIUSBD12中断寄存器的值
*************************************************************************************************************
*/
INT16U D12_ReadInterruptRegister(void)
{
	INT8U i;
	INT16U interruptValue;

	outportc(USB_COMMAND_READ_INTERRUPT);			    //输出读取中断寄存器命令
	i=inportd();										//读取低8位							
    interruptValue=inportd();							//读取高8位
    interruptValue=(interruptValue<<8)+i;					//组合为16位

	return interruptValue;
}

/*
*************************************************************************************************************
- 函数名称 : D12_SelectEndpoint(INT8U bEndp)
- 函数说明 : PDIUSBD12选择端点
- 输入参数 : bEndp:端点号
- 输出参数 : 缓冲区状态,端点状态
*************************************************************************************************************
*/
INT8U D12_SelectEndpoint(INT8U bEndp)
{
	INT8U endpointStatus;

	outportc(USB_COMMAND_SELECT_ENDPOINT+bEndp);			//输出选择端点命令
	endpointStatus=inportd();								//读取端点状态

	return endpointStatus;
}

⌨️ 快捷键说明

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