master.c

来自「LPC2106的双机SPI通讯.」· C语言 代码 · 共 47 行

C
47
字号
#include <lpc210x.h>
#define CS 1<<8
#define LED 1<<9
#define uchar unsigned char
uchar wdat[10]={0,1,2,3,4,5,6,7,8,9};
uchar rdat[10];

uchar SpiSendData(uchar data);
/*******************************************************************************
*名称: MSpiIni()
*功能: 初始化SPI接口,设置为主机	 
*******************************************************************************/
void SpiIni(void)
{ S0SPCCR=0x52;            //设置SPI时钟分频	 位0必须为0,S0SPCCR必须大于8	  
  S0SPCR =0x20;            //设置SPI接口模式,MSTR=1,CPOL=1,CPHA=0,LSBF=0
}
/*******************************************************************************
*名称: MSendData()
*功能: 向SPI总线发送数据   
*******************************************************************************/
uchar SpiSendData(uchar data)
{ 
  IOCLR  =CS;
  S0SPDR=data;
  while((S0SPSR&0x80)==0);                  //等待SPIF置位,即等待数据发送完毕 
  IOSET  =CS;
  return S0SPDR;    
}

void delay(unsigned int n)
{while(n--);
}
int main(void)
{ uchar i;
  PINSEL0=0x00005500;                 //设置SPI引脚连接	 
  PINSEL1=0x00000000;
  IODIR	 =(CS|LED);
  IOSET  =CS;
  SpiIni();
  delay(10000);

  for(i=0;i<10;i++)
  rdat[i]=SpiSendData(wdat[i]);
  IOSET = LED;
  while(1);		
}

⌨️ 快捷键说明

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