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

📄 spi_config.c

📁 菜鸟,详细NRF24E1运用,程序,电路
💻 C
字号:
#include "reg24le1.h"
#include "config.h"

//给主SPI接口的一些状态的宏定义
#define txFifoReady  (SPIMSTAT&0X01)
#define rxDataReady  (SPIMSTAT&0X04)
#define txFifoEmpty  (SPIMSTAT&0x02)
#define rxFifoFull   (SPIMSTAT&0x08)
//给从SPI接口的一些状态的宏定义
#define csnHigh      (SPISSTAT&0x20)
#define csnLow       (SPISSTAT&0x10)
#define spiSlaveDone (SPISSTAT&0x01)


//定义函数
void mspiconfig()   /*SPI的配置函数*/
{
SPIMCON0=(0x01<<4)|0x01;/*配置SPI时钟为1/4·ckMCU, MSBit first, LSBit last. 使能SPI*/
SPIMCON1=0x0f;/*禁止所有SPI中断 */
}
//配置从SPI接口的寄存器
void sspiconfig()
{
SPISCON0=0x01;	  //使能SLAVE SPI
}
//主机传输一个数据
unsigned char transmit(unsigned char dat)
{
 unsigned da;
 CSN=0;
 if(txFifoReady)
 SPIMDAT=dat;
/* else 
 {
 while(!txFifoReady);
  SPIMDAT=dat;
 }
 if(rxDataReady)
 da=SPIMDAT	;
 CSN=1;	  */
 delay(5);
 return da;
}
//从机接受一个数据
unsigned char getdat()
{
unsigned char dat;
if(spiSlaveDone)//如果有传输
dat=SPISDAT;
return dat;
}

/*配置对应的IO口*/
void ioconfig()
{
//master spi
P1DIR&=0xC3;/*配置P12,P13,P14,P15为输出*/
P1DIR|=0X40;//P16为输入
CSN=1;

//slave spi
P1DIR&=0xfe; //配置SSPI的端口方向P00输出 SCSN
P1DIR|=0X02; //MISO

P0DIR|=0X80; //MOSI
P0DIR|=0X20; //SCLK

P0DIR|=0X01; //配置P00为按键输入
P00=1;
LED=0;       /*低输出*/
}
/*配置串口*/
void uart()
{
    CLKCTRL = 0x28;			    /*设置16M时钟*/	
	CLKLFCTRL = 0x01; 			/*设置32.768K时钟*/

	P0DIR &= 0xF7;				/* P03 (TxD) 输出 */
  	P0DIR |= 0x10;     			// P04 (RxD) 输入 */
	P0|=0x18;	 
		
	S0CON = 0x50;  
   	PCON |= 0x80; 				// SMOD = 1
  	WDCON |= 0x80;   			// Select internal baud rate generator 
	
	S0RELL = 0xFB; 	
  	S0RELL = 0xF3;              // BAUD_38K4 	
}

/*延时函数*/
void delay(unsigned int dx)
{
int dj;
 for(;dx>0;dx--)
   for(dj=120;dj>0;dj--)
     {
	 ;
	 }
}

/*打印一个字符*/
void putch(char ch)
{
S0BUF=ch;
while(!TI0);
TI0=0;
}
/*字符串的显示*/
void puts(char *str)
{
while(*str!='\0')
{
putch(*str++);
}
}

unsigned char keyscan()
{
static char f=0;
P0CON=0XD0;   //设置P00为输入
if(!P00)
{
delay(5);
if(!P00)
  {
  while(!P00);
  if(f)
  f=0;
  else
  f=1;
  return (f);
  }

}
 return f;
}



⌨️ 快捷键说明

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