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

📄 cc2500.h

📁 采用STC MCU(5410) + TI CC2500 做的无线对讲系统.2.4G 频段 有效距离15m.Keil uv 3下的源码
💻 H
字号:
#ifndef		__CC2500_H__
#define		__CC2500_H__
#include"io.h"
#include"audio.h"
#ifdef		_CC2500_C_
	#define		Extern 
#else
	#define		Extern 		extern 
#endif
#define		TI_CCxx_SI_HI()				TI_CCxx_SI=1;
#define		TI_CCxx_SI_LOW()			TI_CCxx_SI=0;

#define		TI_CCxx_SO_HI()				TI_CCxx_SO=1;
#define		TI_CCxx_SO_LOW()			TI_CCxx_SO=0;

#define		TI_CCxx_SCLK_HI()			TI_CCxx_SCLK=1;
#define		TI_CCxx_SCLK_LOW()			TI_CCxx_SCLK=0;

#define		TI_CCxx_CSn_Dis()			TI_CCxx_CSn=1;
#define		TI_CCxx_CSn_En()			TI_CCxx_CSn=0;
//---------------------------------- Defeine Ti CCxx Register Address -----------------------
#define TI_CCxx_IOCFG2       0x00        // GDO2 output pin configuration
#define TI_CCxx_IOCFG1       0x01        // GDO1 output pin configuration
#define TI_CCxx_IOCFG0       0x02        // GDO0 output pin configuration
#define TI_CCxx_FIFOTHR      0x03        // RX FIFO and TX FIFO thresholds
#define TI_CCxx_SYNC1        0x04        // Sync word, high byte
#define TI_CCxx_SYNC0        0x05        // Sync word, low byte
#define TI_CCxx_PKTLEN       0x06        // Packet length
#define TI_CCxx_PKTCTRL1     0x07        // Packet automation control
#define TI_CCxx_PKTCTRL0     0x08        // Packet automation control
#define TI_CCxx_ADDR         0x09        // Device address
#define TI_CCxx_CHANNR       0x0A        // Channel number
#define TI_CCxx_FSCTRL1      0x0B        // Frequency synthesizer control
#define TI_CCxx_FSCTRL0      0x0C        // Frequency synthesizer control
#define TI_CCxx_FREQ2        0x0D        // Frequency control word, high byte
#define TI_CCxx_FREQ1        0x0E        // Frequency control word, middle byte
#define TI_CCxx_FREQ0        0x0F        // Frequency control word, low byte
#define TI_CCxx_MDMCFG4      0x10        // Modem configuration
#define TI_CCxx_MDMCFG3      0x11        // Modem configuration
#define TI_CCxx_MDMCFG2      0x12        // Modem configuration
#define TI_CCxx_MDMCFG1      0x13        // Modem configuration
#define TI_CCxx_MDMCFG0      0x14        // Modem configuration
#define TI_CCxx_DEVIATN      0x15        // Modem deviation setting
#define TI_CCxx_MCSM2        0x16        // Main Radio Cntrl State Machine config
#define TI_CCxx_MCSM1        0x17        // Main Radio Cntrl State Machine config
#define TI_CCxx_MCSM0        0x18        // Main Radio Cntrl State Machine config
#define TI_CCxx_FOCCFG       0x19        // Frequency Offset Compensation config
#define TI_CCxx_BSCFG        0x1A        // Bit Synchronization configuration
#define TI_CCxx_AGCCTRL2     0x1B        // AGC control
#define TI_CCxx_AGCCTRL1     0x1C        // AGC control
#define TI_CCxx_AGCCTRL0     0x1D        // AGC control
#define TI_CCxx_WOREVT1      0x1E        // High byte Event 0 timeout
#define TI_CCxx_WOREVT0      0x1F        // Low byte Event 0 timeout
#define TI_CCxx_WORCTRL      0x20        // Wake On Radio control
#define TI_CCxx_FREND1       0x21        // Front end RX configuration
#define TI_CCxx_FREND0       0x22        // Front end TX configuration
#define TI_CCxx_FSCAL3       0x23        // Frequency synthesizer calibration
#define TI_CCxx_FSCAL2       0x24        // Frequency synthesizer calibration
#define TI_CCxx_FSCAL1       0x25        // Frequency synthesizer calibration
#define TI_CCxx_FSCAL0       0x26        // Frequency synthesizer calibration
#define TI_CCxx_RCCTRL1      0x27        // RC oscillator configuration
#define TI_CCxx_RCCTRL0      0x28        // RC oscillator configuration
#define TI_CCxx_FSTEST       0x29        // Frequency synthesizer cal control
#define TI_CCxx_PTEST        0x2A        // Production test
#define TI_CCxx_AGCTEST      0x2B        // AGC test
#define TI_CCxx_TEST2        0x2C        // Various test settings
#define TI_CCxx_TEST1        0x2D        // Various test settings
#define TI_CCxx_TEST0        0x2E        // Various test settings
// a seperate register
#define TI_CCxx_PATABLE      0x3E

// Strobe commands
#define TI_CCxx_SRES         0x30        // Reset chip.
#define TI_CCxx_SFSTXON      0x31        // Enable/calibrate freq synthesizer
#define TI_CCxx_SXOFF        0x32        // Turn off crystal oscillator.
#define TI_CCxx_SCAL         0x33        // Calibrate freq synthesizer & disable
#define TI_CCxx_SRX          0x34        // Enable RX.
#define TI_CCxx_STX          0x35        // Enable TX.
#define TI_CCxx_SIDLE        0x36        // Exit RX / TX
#define TI_CCxx_SAFC         0x37        // AFC adjustment of freq synthesizer
#define TI_CCxx_SWOR         0x38        // Start automatic RX polling sequence
#define TI_CCxx_SPWD         0x39        // Enter pwr down mode when CSn goes hi
#define TI_CCxx_SFRX         0x3A        // Flush the RX FIFO buffer.
#define TI_CCxx_SFTX         0x3B        // Flush the TX FIFO buffer.
#define TI_CCxx_SWORRST      0x3C        // Reset real time clock.
#define TI_CCxx_SNOP         0x3D        // No operation.

// Status registers
#define TI_CCxx_PARTNUM      0xf0        // Part number
#define TI_CCxx_VERSION      0xf1        // Current version number
#define TI_CCxx_FREQEST      0xf2        // Frequency offset estimate
#define TI_CCxx_LQI          0xf3        // Demodulator estimate for link quality
#define TI_CCxx_RSSI         0xf4        // Received signal strength indication
#define TI_CCxx_MARCSTATE    0xf5        // Control state machine state
#define TI_CCxx_WORTIME1     0xf6        // High byte of WOR timer
#define TI_CCxx_WORTIME0     0xf7        // Low byte of WOR timer
#define TI_CCxx_PKTSTATUS    0xf8        // Current GDOx status and packet status
#define TI_CCxx_VCO_VC_DAC   0xf9        // Current setting from PLL cal module
#define TI_CCxx_TXBYTES      0xfA        // Underflow and # of bytes in TXFIFO
#define TI_CCxx_RXBYTES      0xfB        // Overflow and # of bytes in RXFIFO

// CCxx FIFO OPeration
#define	FIFO_BURST_Read		0xff
#define	FIFO_BURST_Write	0x7f

#define	FIFO_SINGLE_Read	0xbf
#define FIFO_SINGLE_Write	0x3f
//-------------------------------- CC start define ----------------------------------
#define			Star_CCxx()		TI_CCxx_CSn_En();while(TI_CCxx_SO)
#define			Stop_CCxx()		TI_CCxx_CSn_Dis()
/**************************************************************
	.	CC2500 register write operation macro define 
***************************************************************/
#define		CC_Reg_Write(_addr,_cmd)\
			Star_CCxx();\
			SPIDAT=_addr&0x7F;\
			while(!(SPISTAT&0x80));\
			SPISTAT=0xC0;\
			SPIDAT=_cmd;\
			while(!(SPISTAT&0x80));\
			SPISTAT=0xC0;\
			Stop_CCxx();
/**************************************************************
	.	CC2500 register read opreation macro define
***************************************************************/
#define		CC_Reg_Read(_addr)\
			Star_CCxx();\
			SPIDAT=_addr|0x80;\
			while(!(SPISTAT&0x80));\
			SPISTAT=0xC0;\	
			SPIDAT=0xFF;\
			while(!(SPISTAT&0x80));\
			CCTemp=SPIDAT;\
			SPISTAT=0xC0;\	
			Stop_CCxx();
/**************************************************************
	.	CC2500 Command wite operation
***************************************************************/
#define		CC_Cmd_Write(_cmd)\
			Star_CCxx();\
			SPIDAT=_cmd&0x3F;\
			while(!(SPISTAT&0x80));\
			SPISTAT=0xC0;\
			Stop_CCxx();
/**************************************************************
	.	CC2500 FIFO Burst Read operation 
***************************************************************/						
#define		CC_FIFO_Burst_Read()\
			CCLength=56;\
			Star_CCxx();\
			SPIDAT=0xFF;\
			while(!(SPISTAT&0x80));\
			SPISTAT=0xC0;\
			while(CCLength){\
				SPIDAT=0xFF;\
				CCLength--;\
				while(!(SPISTAT&0x80));\
				PCMReceive[PCMReceiveSave]=SPIDAT;\
				PCMReceiveSave++;\
				PCMReceiveSave&=0x7F;\
				SPISTAT=0xC0;\								
			}\
			CCLength=0;\
			while(CCLength!=5){\
				SPIDAT=0xFF;\				
				while(!(SPISTAT&0x80));\									
				MessageReceive[CCLength]=SPIDAT;\
				CCLength++;\
				SPISTAT=0xC0;\													
			}\
			Stop_CCxx();			
/**************************************************************
	.	CC2500 Single Read operation
**************************************************************/			
#define		CC_FIFO_Single_Read()\
			Star_CCxx();\
			SPIDAT=0xBF;\
			while(!(SPISTAT&0x80));\
			SPISTAT=0xC0;\	
			SPIDAT=0xFF;\
			while(!(SPISTAT&0x80));\
			CCTemp=SPIDAT;\
			SPISTAT=0xC0;\
			Stop_CCxx();
/**************************************************************
	.	Cc2500 Burst Write 
**************************************************************/								
#define		CC_FIFO_Burst_Write()\
			CCLength=56;\
			Star_CCxx();\
			SPIDAT=0x7F;\
			while(!(SPISTAT&0x80));\
			SPISTAT=0xC0;\
			while(CCLength){\
				SPIDAT=PCMTransmit[PCMTransmitSend];\
				PCMTransmitSend++;\
				PCMTransmitSend&=0x7F;\
				CCLength--;\
				while(!(SPISTAT&0x80));\
				SPISTAT=0xC0;\	
			}\
			CCLength=0;\
			while(CCLength!=5){\
				SPIDAT=MessageTransmit[CCLength];\
				CCLength++;\
				while(!(SPISTAT&0x80));\
				SPISTAT=0xC0;\						
			}\		
			Stop_CCxx();
/*************************************************************
	.	CC2500 Single Write
**************************************************************/						
#define		CC_FIFO_Single_Write(_dat)\
			Star_CCxx();\
			SPIDAT=0x3F;\
			while(!(SPISTAT&0x80));\
			SPISTAT=0xC0;\			
			SPIDAT=_dat;\
			while(!(SPISTAT&0x80));\
			SPISTAT=0xC0;\	
			Stop_CCxx();			
					
Extern unsigned char data CCTemp;	// cc2500 read out data 
Extern unsigned char data CCLength;// cc2500 length

Extern void TI_CCxx_Reset(void);
Extern void TI_CC_RegInit(void);
			
#undef		Extern
#endif	












⌨️ 快捷键说明

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