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

📄 usb_function.#2

📁 源码 : KIEL C 单片机 : C8051F320 功能 : U盘 (64M) 关键字 : C8051F320,U盘,NANDFLASH,FAT,SCH 描述 : 源码完全可运行
💻 #2
字号:
#include "c8051F320.h"
#include "stdio.h"
#include "intrins.h"
/////////////////////////////
#include "Usb_FunDec.h"
#include "Usb_Parameter.h"
#include "Usb_Register.h"
#include "Usb_Request.h"
//////////////////////////////////////////////////////////////////////////////////////
void Usb_Init()
{
	UWrite_Byte(POWER, 0x08);       // 异步复位

    UWrite_Byte(IN1IE, 0x07);       // 允许端点0中断和端点1IN中断
    UWrite_Byte(OUT1IE,0x07);		// 允许端点2OUT中断
    UWrite_Byte(CMIE, 0x07);        // 允许复位中断,禁止挂起中断和恢复中断
   	USB0XCN=0xe0;					// USB收发器使能,上拉电阻使能,全速,正常工作方式
	UWrite_Byte(CLKREC,0x80);		// USB时钟恢复使能,正常校准方式,全速方式

	EIE1 |= 0x02;                   // 允许USB中断
	EA = 1;  					// 开中断中断
	UWrite_Byte(POWER,0x01);		// 禁止ISO,允许USB工作、禁止挂起功能
}
                    
void Fifo_Read(unsigned char addr, unsigned int uNumBytes, unsigned char *pData){
   	unsigned int i;
   	USB0ADR  = (addr & 0x3f);        		//设置地址   
   	while(USB0ADR & 0x80)	//判断是否结束
	{}             
   	for(i=0;i< uNumBytes;i++)
   	{
   		USB0ADR |= 0x80; 		//启动读操作                  
        while(USB0ADR & 0x80)	//判断是否结束
		{}          
        pData[i] = USB0DAT;              
   	}
   	USB0ADR = 0;            	//停止读,将地址清零               
}void Fifo_Write(unsigned char addr, unsigned int uNumBytes, unsigned char *pData)
{
   int i;
   USB0ADR  = addr;        		//设置地址           
   for(i=0;i< uNumBytes;i++)
   {
        while(USB0ADR & 0x80)	//判断是否结束
		{}          
        USB0DAT=pData[i];              
   }
   USB0ADR = 0;            		//地址清零           
                                          
}
///////////////////////////////////////////////////////////////////////////////////////////////////

⌨️ 快捷键说明

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