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

📄 spi.c

📁 教你学习arm,自己慢慢消化吧
💻 C
字号:
#include<stdio.h>
#include<lpc213x.h>

typedef unsigned char uint8;
typedef unsigned long uint32;

void delay(uint8 g );

void ssp_init(void){
SSPCR0=(0x01<<8)|			//8位数据桢,spi方式,总线时钟高电平有效,
       (0x00<<7)|		   //第一个时钟跳变上升沿有效,scr=1.
		 (0x01<<6)|
		 (0x00<<4)|
		 (0x07<<0);
SSPCR1=(0x00<<3)|			//正常模式,ssp使能,允许读写器件,主机模式。
       (0x00<<2)|
		 (0x01<<1)|
		 (0x00<<0);

SSPCPSR=0x52;	        //spi时钟为15m/(0x52(scr+1)) 
SSPIMSC=0x07;			  //当Rx FIFO满时,超时,至少一半为满时该位置位。
SSPICR=0x03;				//清除超时和接收已满中断

}



void ssp_inits(void){
SSPCR0=(0x05<<8)|
       (0x00<<7)|
		 (0x01<<6)|
		 (0x00<<4)|
		 (0x07<<0);
SSPCR1=(0x00<<3)|
       (0x01<<2)|
		 (0x01<<1)|
		 (0x00<<0);

SSPCPSR=0x52;
SSPIMSC=0x07;
SSPICR=0x03;
}

uint8  SSP_SendData(uint8 data){
IO0CLR=1<<22;
SSPDR=data;
while((SSPSR&0x01)==0);	//发送不为空时。
IO0SET=1<<22;
return(SSPDR);

}
uint8  ssp_readdata(){
IO0CLR=1<<22;
while((SSPSR&0x01)==0);
IO0SET=1<<22;
return(SSPDR);
}

void delay(uint8 g ){
uint32 i;
for(;g>0;g--)
for(i=0;i<20000;i++);
}

⌨️ 快捷键说明

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