spi.h

来自「STC12LE5412RC单片机上通过nRF905芯片实现数据无线收发功能的源码」· C头文件 代码 · 共 77 行

H
77
字号
#include "reg52stc.h"
void SPIInit(void);					  //
//void SPIWrite(unsigned char);
//unsigned char SPIRead(void);
//void SPIMasterIdle(void);
unsigned char SPIReadWrite(unsigned char);

//*****************************************************//
//函数名:
//输入参数:
//输出参数:
//功能描述:
//*****************************************************//
void SPIInit(void)
{
//   P3M0  = P3M0&0xe3; //CD,AM,DR to dual port
//   P3M1  = P3M1&0xe3;
   AUXR  = 0x37;  //允许spi中断
   P1M0  = 0x00;  //preserved for 0x00 40 a0
   P1M1  = 0x00;  //set CSN to be dual port, MOSI and SCK are push pull for master in active,MISO is high impedance
   SPCTL = 0xd1;  //0xd1,CSN to decide if client,SPI enable,MSB first,SPICLK is high while idle,cpu_clock/4
   SPSTAT= 0xc0;  //clear SPIF and WCOL
}
//*****************************************************//
//函数名:
//输入参数:
//输出参数:
//功能描述:
//*****************************************************//
unsigned char SPIReadWrite(unsigned char wdata)
{
  unsigned char tdata;  
  SPSTAT=0xc0; //try
  SPDAT=wdata;
  while((SPSTAT&0x80)==0);
  tdata=SPDAT;
  return tdata;
}
//*****************************************************//
//函数名:
//输入参数:
//输出参数:
//功能描述:
//*****************************************************//
/*void SPIWrite(unsigned char wdata)
{
  unsigned char i;
  SPDAT=wdata;
  for(i=0;i<5;i++);
  while((SPSTAT&0x80)==0);
  SPSTAT=0xc0;   //reset SPIF and WCOL
}*/
//*****************************************************//
//函数名:
//输入参数:
//输出参数:
//功能描述:
//*****************************************************//
/*void SPIMasterIdle(void)
{
  P1M0=P1M0|0xA0; //set MOSI and SCK high impedance to avoid confliction
}*/

//*****************************************************//
//函数名:
//输入参数:
//输出参数:
//功能描述:
//*****************************************************//
/*unsigned char SPIRead(void)
{
   unsigned char rdata;
   while((SPSTAT&0x80)==0);
   rdata=SPDAT;
   SPSTAT=0xc0;
   return rdata;
}*/

⌨️ 快捷键说明

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