?? spi.c
字號:
/***************************************
*2008,浙江工業大學信息與控制研究所
*All rights reserved
*
*文件名稱:SPI.c
*摘 要:SPI的子程序實現
*
*當前版本:1.1
*作 者:王微
*完成日期:2008.4.22
****************************************/
#include"spi.h"
/*************************************************
函數功能:初始化SPI口
輸入參數:無
返回值:無
**************************************************/
void init_spi(void)
{
unsigned char temp;
DDRB|=(1<<MOSI)|(1<<SCK)|(1<<CSn);//設置MOSI、SCK和SS 為輸出,其他為輸入
DDRE|=(1<<VREGEN)|(1<<RST);
SPCR = (1<<SPE)|(1<<MSTR);//|(1<<SPR0);// 使能SPI,主機模式,設置時鐘速率為fck/4
SPSR = BIT(SPI2X); //SPI時鐘加倍
temp = SPSR; //!!! 讀一次SPSR為了清除SPIF位和WCOL位
temp = SPDR; //清空SPI,和中斷標志,使SPI空閑
}
/**************************************************
函數功能:寫SPI一個字節
輸入參數:SPI指令
返回值:對應指令的結果
**************************************************/
unsigned char SpiWrite(unsigned char data_spi)
{
unsigned char temp,temp1;
SPDR=data_spi;
while(!(SPSR & (1<<SPIF))){;}//等待傳輸結束
temp1=SPDR;
temp = SPSR;
return temp1;
}
/*******************************************
*函數功能:使能SPI口
*輸入參數:無
*輸出參數:無
*返 回 值:無
********************************************/
void enable_spi(void)
{
PORTB &=~(1<<CSn); //使能SPI口
}
/*******************************************
*函數功能:禁止SPI口
*輸入參數:無
*輸出參數:無
*返 回 值:無
********************************************/
void disable_spi(void)
{
PORTB |=(1<<CSn); //禁止SPI口
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -