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

📄 example_281xspi_ffdlb.c

📁 通过CC2500无线射频芯片接收无线数据
💻 C
字号:

	   #include "DSP281x_Device.h"     // DSP281x Headerfile Include File
#include "DSP281x_Examples.h" 
//#include "DSP28_Globalprototypes.h"  // DSP281x Examples Include File
#include "include.h"


extern char paTable[];
extern char paTableLen;
char rxBuffer[3];
char i=0;
char l,m,n;
char a[20];
char b[20];
char addr[20];
char len=3;
char status,pkt;
char start;

// Prototype statements for functions found within this file.
// interrupt void ISRTimer2(void);
void delay_loop(void);

void spi_init(void);


void main(void)
{
   
   
// Step 1. Initialize System Control:
// PLL, WatchDog, enable Peripheral Clocks
// This example function is found in the DSP281x_SysCtrl.c file.
   InitSysCtrl();
  // SysCtrlRegs.HISPCP.all=0x0001;
  // SysCtrlRegs.LOSPCP.all=0x0002;

   InitPieCtrl();

   IER = 0x0000;
   IFR = 0x0000;

   InitPieVectTable();
	

 EALLOW;
   
	
	    /*端口供电设置*/
	   	GpioMuxRegs.GPAMUX.all=0x0000;
		GpioMuxRegs.GPADIR.all=0xFFFF;
		GpioDataRegs.GPADAT.all=0xFFFF;
	    GpioMuxRegs.GPDMUX.all=0x0000;
	    GpioMuxRegs.GPDDIR.all=0xFFFF;
		GpioDataRegs.GPDDAT.all=0xFFFF;								// Port F MUX - x000 0000 0000 1111
   EDIS;

// Step 3. Clear all interrupts and initialize PIE vector table:
// Disable CPU interrupts 
   DINT;

  spi_init();
  delay_loop();
    /*CC2500上电复位*/
 	TI_CC_PowerupResetCCxxxx();

	/*配置CC2500芯片*/
 	writeRFSettings(); 

    TI_CC_SPIWriteBurstReg(TI_CCxxx0_PATABLE,paTable,paTableLen);
	//	for(k=0;k<20;k++)
//	{a[k]=0;b[k]=0;}

	TI_CC_SPIStrobe(TI_CCxxx0_SRX); 

	while(1)
	{

		if(TI_CC_SPIReadStatus(TI_CCxxx0_PKTSTATUS)&0x0008)
		{
			RFReceivePacket(rxBuffer,&len);
		    if(rxBuffer[1]==0x0001) start=1;
      
            if(start)
            {   
              a[i]=rxBuffer[2];
              b[i]=rxBuffer[1];
              addr[i]=rxBuffer[0];
 
               i++; 
               if(i==20)
               { i=0;start=0;}
            }  
		}
		 TI_CC_SPIStrobe(TI_CCxxx0_SRX);
		//  status=TI_CC_SPIReadStatus(TI_CCxxx0_MARCSTATE); 
	}								   

} 	


// Step 7. Insert all local Interrupt Service Routines (ISRs) and functions here:	

void delay_loop()
{
    long      i;
    for (i = 0; i < 200; i++) {}
}


void spi_init()
{  
    SpiaRegs.SPICCR.bit.SPISWRESET=0; 
	SpiaRegs.SPICCR.bit.SPICHAR=7;
	SpiaRegs.SPICCR.bit.CLKPOLARITY=0;
	SpiaRegs.SPICCR.bit.SPILBK=0;        
	SpiaRegs.SPICTL.all =0x000E;    		    


	SpiaRegs.SPIBRR =0x007F; 
	SpiaRegs.SPIFFTX.bit.SPIFFENA=0;

	EALLOW;
	GpioMuxRegs.GPFMUX.bit.SPISIMOA_GPIOF0=1;
	GpioMuxRegs.GPFMUX.bit.SPISOMIA_GPIOF1=1;
	GpioMuxRegs.GPFMUX.bit.SPICLKA_GPIOF2=1;
	GpioMuxRegs.GPFMUX.bit.SPISTEA_GPIOF3=0;
	GpioMuxRegs.GPFDIR.bit.GPIOF0=1;
	GpioMuxRegs.GPFDIR.bit.GPIOF1=0;
	GpioMuxRegs.GPFDIR.bit.GPIOF2=1;
	GpioMuxRegs.GPFDIR.bit.GPIOF3=1;
	EDIS;
		
    SpiaRegs.SPICCR.bit.SPISWRESET=1;		          
              
}

⌨️ 快捷键说明

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