您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 其它行业文档 > pic18f4550的usb应用例程
typedefint.h#defineUSE_USB_BUS_SENSE_IO//-------------------------------USB端点定义#define_EP01_OUT0x01#define_EP01_IN0x81#define_EP02_OUT0x02#define_EP02_IN0x82#define_EP03_OUT0x03#define_EP03_IN0x83#define_EP04_OUT0x04#define_EP04_IN0x84#define_EP05_OUT0x05#define_EP05_IN0x85#define_EP06_OUT0x06#define_EP06_IN0x86#define_EP07_OUT0x07#define_EP07_IN0x87#define_EP08_OUT0x08#define_EP08_IN0x88#define_EP09_OUT0x09#define_EP09_IN0x89#define_EP10_OUT0x0A#define_EP10_IN0x8A#define_EP11_OUT0x0B#define_EP11_IN0x8B#define_EP12_OUT0x0C#define_EP12_IN0x8C#define_EP13_OUT0x0D#define_EP13_IN0x8D#define_EP14_OUT0x0E#define_EP14_IN0x8E#define_EP15_OUT0x0F#define_EP15_IN0x8F//-------------------------------USB各种标准请求类型#defineGET_STATUS0//主机请求一个设备、接口或端点的特性状态#defineCLR_FEATURE1//主机请求禁止一个设备、接口或端点上的特征#defineSET_FEATURE3//主机请求启用一个在设备、接口或端点上的特征#defineSET_ADR5//主机指定一个地址来与设备通信#defineGET_DSC6//主机请求一个指定的描述符#defineSET_DSC7//主机新增一个描述符,或是更新一个存在的描述符#defineGET_CFG8//主机请求目前设备配置的数值#defineSET_CFG9//指示设备使用选择的配置#defineGET_INTF10//如果设备支持的配置支持多个互不相关设置的端口,主机请求目前的设置#defineSET_INTF11//如果设备支持多个互不相关设置的接口,主机请求设备使用一个指定的设置#defineSYNCH_FRAME12//设备与报告一个端点的同步帧#defineDEVICE_REMOTE_WAKEUP0x01//设备远程唤醒#defineENDPOINT_HALT0x00//端点挂起/*EndpointTransferType*/#define_CTRL0x00//ControlTransfer#define_ISO0x01//IsochronousTransfer#define_BULK0x02//BulkTransfer#define_INT0x03//InterruptTransfer/*DescriptorTypes*/#defineDSC_DEV0x01#defineDSC_CFG0x02#defineDSC_STR0x03#defineDSC_INTF0x04#defineDSC_EP0x05/*ConfigurationAttributes*/#define_DEFAULT0x017//DefaultValue(Bit7isset)#define_SELF0x016//Self-powered(Supportsifset)#define_RWU0x015//RemoteWakeup(Supportsifset)//-------------------------------USB类型定义/*MUID=MicrochipUSBClassID用来指明usb的那个类型获得EP0数据的流通*/#defineMUID_NULL0//无#defineMUID_USB91//USB控制传输#defineMUID_HID2//HID#defineMUID_CDC3//海量传输//-------------------------------端点状态定义#defineOUT0#defineIN1#definePIC_EP_NUM_MASK0b01111000#definePIC_EP_DIR_MASK0b00000100#defineEP00_OUT((0x003)|(OUT2))#defineEP00_IN((0x003)|(IN2))#defineEP01_OUT((0x013)|(OUT2))#defineEP01_IN((0x013)|(IN2))#defineEP02_OUT((0x023)|(OUT2))#defineEP02_IN((0x023)|(IN2))#defineEP03_OUT((0x033)|(OUT2))#defineEP03_IN((0x033)|(IN2))#defineEP04_OUT((0x043)|(OUT2))#defineEP04_IN((0x043)|(IN2))#defineEP05_OUT((0x053)|(OUT2))#defineEP05_IN((0x053)|(IN2))#defineEP06_OUT((0x063)|(OUT2))#defineEP06_IN((0x063)|(IN2))#defineEP07_OUT((0x073)|(OUT2))#defineEP07_IN((0x073)|(IN2))#defineEP08_OUT((0x083)|(OUT2))#defineEP08_IN((0x083)|(IN2))#defineEP09_OUT((0x093)|(OUT2))#defineEP09_IN((0x093)|(IN2))#defineEP10_OUT((0x0A3)|(OUT2))#defineEP10_IN((0x0A3)|(IN2))#defineEP11_OUT((0x0B3)|(OUT2))#defineEP11_IN((0x0B3)|(IN2))#defineEP12_OUT((0x0C3)|(OUT2))#defineEP12_IN((0x0C3)|(IN2))#defineEP13_OUT((0x0D3)|(OUT2))#defineEP13_IN((0x0D3)|(IN2))#defineEP14_OUT((0x0E3)|(OUT2))#defineEP14_IN((0x0E3)|(IN2))#defineEP15_OUT((0x0F3)|(OUT2))#defineEP15_IN((0x0F3)|(IN2))//-------------------------------缓冲期描述符状态定义/*BufferDescriptorStatusRegisterInitializationParameters*/#define_BSTALL0x04//缓冲器停止始能#define_DTSEN0x08//数据套索同步使能#define_INCDIS0x10//地址递增禁止#define_KEN0x20//保持保存所有权使能#define_DAT00x00//包期待下一个#define_DAT10x40//包期待下一个#define_DTSMASK0x40//如果DTSEN没有使能,保持置1#define_USIE0x80//SIE拥有缓冲区#define_UCPU0x00//CPU拥有缓冲区//-------------------------------控制传输常量定义/*ControlTransferStates*///控制传输状态定义#defineWAIT_SETUP0//等待状态#defineCTRL_TRF_TX1//控制传输发送数据状态#defineCTRL_TRF_RX2//控制传输接收数据状态/*USBPID:TokenTypes-Seechapter8intheUSBspecification*///PID令牌#defineSETUP_TOKEN0b00001101//主机到设备的控制管道设置事务#defineOUT_TOKEN0b00000001//主机到设备的数据事务#defineIN_TOKEN0b00001001//设备到主机的数据事务/*bmRequestTypeDefinitions*/#defineHOST_TO_DEV0//主机到设备(数据方向)#defineDEV_TO_HOST1//设备到主机(数据方向)#defineSTANDARD0x00//标准类别#defineCLASS0x01//特定USB类别定义,HID的请求属于这一类#defineVENDOR0x02//厂商自定义请求#defineRCPT_DEV0#defineRCPT_INTF1#defineRCPT_EP2#defineRCPT_OTH3//-------------------------------HID常量定义/*HID*/#defineHID_INTF_ID0x00//HID接口ID号#defineHID_UEPUEP1#defineHID_BD_OUTep1Bo//HID输出事务端点#defineHID_INT_OUT_EP_SIZE8//输入事务端点缓冲区大小#defineHID_BD_INep1Bi//HID输入事务端点#defineHID_INT_IN_EP_SIZE8//输出事务端点缓冲区大小#defineHID_NUM_OF_DSC1//HID描述符个数#defineHID_RPT01_SIZE47//HID报表描述符大小#defineHID_INTF0x03#defineHID_INPUT_REPORT_BYTES2//输出报表大小#defineHID_OUTPUT_REPORT_BYTES2//输入报表大小#defineHID_FEATURE_REPORT_BYTES2//特征报表大小/*ClassDescriptorTypes*/#defineDSC_HID0x21#defineDSC_RPT0x22#defineDSC_PHY0x23//HID特定请求#defineGET_REPORT0x01#defineGET_IDLE0x02#defineGET_PROTOCOL0x03#defineSET_REPORT0x09#defineSET_IDLE0x0A#defineSET_PROTOCOL0x0B//--------------------------------端点数以及EP0缓冲区字节数定义#defineEP0_BUFF_SIZE8//8,16,32,or64#defineMAX_NUM_INT1//为跟踪交替设置,中断端点最大个数#defineMAX_EP_NUMBER1//端点号定义,本例用到端点0和1//--------------------------------端点N的初始化配置字#defineEP_CTRL0x06//配置SETUP事务并是能输入输出#defineEP_OUT0x0C//配置使能输出#defineEP_IN0x0A//配置使能输入#defineEP_OUT_IN0x0E//配置使能输入输出#defineHSHK_EN0x10//使能握手信号#define_RAM0//数据区区别定义#define_ROM1//-----------
本文标题:pic18f4550的usb应用例程
链接地址:https://www.777doc.com/doc-4484192 .html