📄 spi_master.c
字号:
#include "SPI_Master.h"
void SPIInit(void)
{
volatile INT8U temp;
DDRB |= (1<<MOSI)|(1<<SCK)|(1<<SS); //MISO=input and MOSI,SCK,SS = output
DDRB &=~(1<<MISO);
PORTB|= (1<<SCK)|(1<<MOSI)|(1<<SS);
SPCR = (1<<SPE)|(1<<MSTR)|(1<<SPR0); //SPI允许,主机模式,MSB,不允许SPI中断,极性方式00,1/2系统时钟速率
SPSR = 1<<SPI2X;
temp = SPSR;
temp = SPDR; //清空SPI,和中断标志,使SPI空闲
}
void SPIPutChar(INT8U data)
{
PORTB&=~(1<<SS);
SPDR=data;
while(!(SPSR&(1<<SPIF)));
PORTB|=1<<SS;
}
INT8U SPIGetChar(void)
{
INT8U data;
PORTB&=~(1<<SS);
SPDR=0;
while(!(SPSR&(1<<SPIF)));
PORTB|=1<<SS;
data=SPDR;
data=SPDR;
return data;
}
/*-------------------------------End Of File-------------------------------*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -