spi.c

来自「AVR Devolpment Board」· C语言 代码 · 共 31 行

C
31
字号
#include "avr/io.h"

#define DUMP           0xFF

void SPI_Init(void)
{
	DDRB|= (1<<PB4)|(1<<PB5)|(1<<PB7);    /* PB4:SS  PB5:MOSI  PB6:MISO  PB7:SCK */
	DDRB&=~(1<<PB6);
	SPCR = (1<<SPE)|(1<<DORD)|(1<<MSTR)|(0<<CPOL)|(0<<CPHA)|(0<<SPR1)|(0<<SPR0);/* DORD = 1 : LSB otherwise MSB */
	SPSR = (1<<SPI2X);
}


void SPI_Write(unsigned char Data)
{
	SPDR=Data;
	while(!(SPSR&0x80));
}

unsigned char SPI_Read(void)
{
	unsigned char Data;
	DDRB&=~(1<<PB5);
	SPDR=DUMP;
	while(!(SPSR&0x80));
	Data=SPDR;
	DDRB|= (1<<PB5);
	return Data;
}

⌨️ 快捷键说明

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