?? usb_function.#2
字號(hào):
#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); // 異步復(fù)位
UWrite_Byte(IN1IE, 0x07); // 允許端點(diǎn)0中斷和端點(diǎn)1IN中斷
UWrite_Byte(OUT1IE,0x07); // 允許端點(diǎn)2OUT中斷
UWrite_Byte(CMIE, 0x07); // 允許復(fù)位中斷,禁止掛起中斷和恢復(fù)中斷
USB0XCN=0xe0; // USB收發(fā)器使能,上拉電阻使能,全速,正常工作方式
UWrite_Byte(CLKREC,0x80); // USB時(shí)鐘恢復(fù)使能,正常校準(zhǔn)方式,全速方式
EIE1 |= 0x02; // 允許USB中斷
EA = 1; // 開(kāi)中斷中斷
UWrite_Byte(POWER,0x01); // 禁止ISO,允許USB工作、禁止掛起功能
}
void Fifo_Read(unsigned char addr, unsigned int uNumBytes, unsigned char *pData){
unsigned int i;
USB0ADR = (addr & 0x3f); //設(shè)置地址
while(USB0ADR & 0x80) //判斷是否結(jié)束
{}
for(i=0;i< uNumBytes;i++)
{
USB0ADR |= 0x80; //啟動(dòng)讀操作
while(USB0ADR & 0x80) //判斷是否結(jié)束
{}
pData[i] = USB0DAT;
}
USB0ADR = 0; //停止讀,將地址清零
}void Fifo_Write(unsigned char addr, unsigned int uNumBytes, unsigned char *pData)
{
int i;
USB0ADR = addr; //設(shè)置地址
for(i=0;i< uNumBytes;i++)
{
while(USB0ADR & 0x80) //判斷是否結(jié)束
{}
USB0DAT=pData[i];
}
USB0ADR = 0; //地址清零
}
///////////////////////////////////////////////////////////////////////////////////////////////////
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -