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

📄 spi_master.c

📁 AVR的SPI的通信例子
💻 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 + -