📄 spi.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 + -