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

📄 stm32f10x_usb.hpp

📁 STM32 USB HID
💻 HPP
字号:
#ifndef __STM32F10x_USB_HPP__
#define __STM32F10x_USB_HPP__
//-----------------------------------------------------------------------------
#include"common.h"
//-----------------------------------------------------------------------------
enum EP_TYPE{BULK,CONTROL,ISO,INTERRUPT};
enum EP_STAT{DISABLED,STALL,NAK,VALID};
//-----------------------------------------------------------------------------
#define ACK VALID
//-----------------------------------------------------------------------------
class EPxR
{
	public:
		volatile unsigned long* WORD;
		volatile unsigned long* BITS;
	public:
		unsigned int ID;
		EPxR(unsigned int id);
	public:
		void TYPE(EP_TYPE Value);
		void STAT_RX_TX(EP_STAT RxValue,
		                EP_STAT TxValue);
		void KIND(unsigned int Value);
		void Clear_CTR_RX(void);
		void Clear_CTR_TX(void);
	public:
		void Set_COUNT_RX(unsigned short Value);
	public:
		volatile Four_Byte* Rx_Buffer;			
		volatile unsigned long* Tx_Buffer;			
	public:
		void Send(unsigned short* pBuffer,unsigned int Length);
};
//-----------------------------------------------------------------------------
class stm32f10x_usb
{
	public:
		EPxR EP0R;
		EPxR EP1R;
	public:
		stm32f10x_usb(void);
		void Configuration(void);
	public:
		void SetAddress(unsigned short Value);
	public:
		unsigned int Reserived_Data;			
};
//-----------------------------------------------------------------------------
extern stm32f10x_usb usb0;
//-----------------------------------------------------------------------------
#define  CNTR						(*((volatile unsigned long*)0x40005C40))
#define  ISTR						(*((volatile unsigned long*)0x40005C44))
#define  FNR						(*((volatile unsigned long*)0x40005C48))
#define  DADDR					(*((volatile unsigned long*)0x40005C4C))
#define  BTABLE					(*((volatile unsigned long*)0x40005C50))

#define  CNTR_BITS			((volatile unsigned long*)(0x42000000+(0x00005c40<<5)))
#define  ISTR_BITS			((volatile unsigned long*)(0x42000000+(0x00005c44<<5)))
#define  FNR_BITS				((volatile unsigned long*)(0x42000000+(0x00005c48<<5)))
#define  DADDR_BITS			((volatile unsigned long*)(0x42000000+(0x00005c4C<<5)))
#define  BTABLE_BITS		((volatile unsigned long*)(0x42000000+(0x00005c50<<5)))

#define  EP0_ADDR_TX		(*((volatile unsigned long*)(BTABLE+0x40006000)))
#define  EP0_COUNT_TX		(*((volatile unsigned long*)(BTABLE+0x40006004)))
#define  EP0_ADDR_RX		(*((volatile unsigned long*)(BTABLE+0x40006008)))
#define  EP0_COUNT_RX		(*((volatile unsigned long*)(BTABLE+0x4000600C)))

#define  EP1_ADDR_TX		(*((volatile unsigned long*)(BTABLE+0x40006010)))
#define  EP1_COUNT_TX		(*((volatile unsigned long*)(BTABLE+0x40006014)))
#define  EP1_ADDR_RX		(*((volatile unsigned long*)(BTABLE+0x40006018)))
#define  EP1_COUNT_RX		(*((volatile unsigned long*)(BTABLE+0x4000601C)))

#define  EP2_ADDR_TX		(*((volatile unsigned long*)(BTABLE+0x40006020)))
#define  EP2_COUNT_TX		(*((volatile unsigned long*)(BTABLE+0x40006024)))
#define  EP2_ADDR_RX		(*((volatile unsigned long*)(BTABLE+0x40006028)))
#define  EP2_COUNT_RX		(*((volatile unsigned long*)(BTABLE+0x4000602C)))

#define  EP3_ADDR_TX		(*((volatile unsigned long*)(BTABLE+0x40006030)))
#define  EP3_COUNT_TX		(*((volatile unsigned long*)(BTABLE+0x40006034)))
#define  EP3_ADDR_RX		(*((volatile unsigned long*)(BTABLE+0x40006038)))
#define  EP3_COUNT_RX		(*((volatile unsigned long*)(BTABLE+0x4000603C)))
//CNTR-------------------------------------------------------------------------
#define CTRM 		  15
#define ERRM 		  13

#define WKUPM 		12
#define SUSPM 		11
#define RESETM 		10

#define SOFM 			9
#define ESOFM 		8
#define RESUME		4
#define PWDN 			1
#define FRES 			0
//ISTR-------------------------------------------------------------------------
#define CTR      	15
#define PMAOVR   	14
#define ERR       13
#define WKUP      12

#define SUSP      11
#define ISR_RESET 10
#define SOF      	 9
#define ESOF    	 8

#define DIR      	 4

#define EP_ID_3 	 3
#define EP_ID_2    2
#define EP_ID_1    1
#define EP_ID_0    0
//EPxR-------------------------------------------------------------------------
#define CTR_RX    	15
#define DTOG_RX     14

#define STAT_RX_1 	13
#define STAT_RX_0   12

#define SETUP   		11

#define EP_TYPE_1 	10
#define EP_TYPE_0    9

#define EP_KIND 	 	 8
#define CTR_TX       7
#define DTOG_TX      6

#define STAT_TX_1 	 5
#define STAT_TX_0    4

#define EA_3 	     	 3
#define EA_2         2
#define EA_1     	 	 1
#define EA_0         0
//-----------------------------------------------------------------------------
void USB_Configuration(void);
//-----------------------------------------------------------------------------
extern unsigned int  EPxR_STATUS;
extern unsigned int* pEPxR_STATUS;
//-----------------------------------------------------------------------------
#endif

⌨️ 快捷键说明

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