C51 USB1.1开发源码及相关开发工具和文档

  • q6_706851
    了解作者
  • 166.8KB
    文件大小
  • zip
    文件格式
  • 0
    收藏次数
  • VIP专享
    资源类型
  • 0
    下载次数
  • 2022-06-13 10:25
    上传日期
C51 USB1.1开发源码及相关开发工具和文档
C51 USB1.1开发源码及相关开发工具和文档.zip
内容介绍
/* //************************************************************************* // // File Name: ISR.C // Revision: V0.1 // Use library: USB51S.LIB // Note: USB51S.LIB不带DMA控制功能 //************************************************************************* */ #include <stdio.h> #include <string.h> #include <reg51.h> /* special function register declarations */ #include "isr.h" #include "mainloop.h" /* //************************************************************************* // Public static data //************************************************************************* */ EPPFLAGS bEPPflags; CONTROL_XFER ControlData; /* ISR static vars */ unsigned char idata GenEpBuf[EP1_PACKET_SIZE]; unsigned char idata EpBuf[EP2_PACKET_SIZE]; IO_REQUEST idata ioRequest; //厂商请求入口地址 code void (*VendorDeviceRequest[])(void) = { reserved, reserved, reserved, reserved, reserved, reserved, reserved, reserved, reserved, reserved, reserved, reserved, reserved, reserved, reserved, reserved }; //USB总线重新连接(先断开,再连接)子程序 void reconnect_USB(void) { unsigned long clk_cnt; MCU_LED0 = 0;//亮LED显示(实际应用中可去掉) MCU_LED1 = 0;//(实际应用中可去掉) D12SUSPD = 0; disconnect_USB(); for (clk_cnt=0;clk_cnt<=0x9000;clk_cnt++) {} connect_USB(); MCU_LED0 = 1;//灭LED显示(实际应用中可去掉) MCU_LED1 = 1;//(实际应用中可去掉) } //断开USB总线连接 void disconnect_USB(void) { D12_SetMode(D12_NOLAZYCLOCK, D12_SETTOONE | D12_CLOCK_12M); } //连接到USB总线 void connect_USB(void) { DISABLE; bEPPflags.value = 0; ENABLE; D12_SetDMA(0x0);//设置D12工作模式 D12_SetMode(D12_NOLAZYCLOCK|D12_SOFTCONNECT, D12_SETTOONE | D12_CLOCK_12M); } //总线复位中断服务子程序 void bus_reset(void) { //可添加用户代码(进行检测到总线复位的操作) } //DMA操作结束中断服务子程序 void dma_eot(void) { //可添加用户代码(进行检测DMA操作结束的操作) } //端点1输出中断操作 void ep1_txdone(void) { D12_ReadLastTransactionStatus(3);//复位中断寄存器 //可添加用户代码(进行检测端点号3IN令牌的操作) } //端点1输入中断操作 void ep1_rxdone(void) { unsigned char len; D12_ReadLastTransactionStatus(2);//复位中断寄存器 len = D12_ReadEndpoint(2, sizeof(GenEpBuf), GenEpBuf);//读取端点1接收数据 if (len != 0) bEPPflags.bits.ep1_rxdone = 1;//标志端点1接收到数据 } //端点2输出中断操作 void ep2_txdone(void) { D12_ReadLastTransactionStatus(5);//复位中断寄存器 //可添加用户代码(进行检测端点号5IN令牌的操作) } //端点1输入中断操作 void ep2_rxdone(void) { unsigned char len; D12_ReadLastTransactionStatus(4);//复位中断寄存器 len = D12_ReadEndpoint(4, 64, EpBuf);//读取端点2接收数据 if (len != 0) bEPPflags.bits.ep2_rxdone = 1;//标志端点1接收到数据 }
评论
    相关推荐
    • pic开发工具
      PIC 开发工具-----------------------------------------
    • 开发工具
      开发工具 sentinel-dashboard-1.8.2.jar
    • 闪屏开发工具
      闪屏工具,在现有工具基础上开发,加入了时间控制功能,并简化调用语句,只需要SplashObject.GetSplash(8000)一句即可完成,8000为闪屏时间,另外,相关图片放在Resources文件夹里,改下名称替换即可
    • 苹果开发工具
      一个OC开发工具,希望大家共享,我在网上找了好久才找到
    • 串口开发工具
      串口开发工具,包含串口监控和虚拟串口添加软件,串口开发必备
    • opc开发工具
      opc开发工具,首先安装OPC_2.0_Core_Components-Setup驱动(压缩包内含)
    • 开发工具
      更多功能截图 博文链接:https://yiminghe.iteye.com/blog/241541
    • 开发工具
      开发工具
    • 开发工具
      tools_dev
    • wap开发工具
      wap手机网页开发工具包,里面有3个wap开发工具。可以可视化开发。 wap手机网页开发工具包,里面有3个wap开发工具。可以可视化开发。