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

📄 spi.h

📁 用AVR控制GPRM模块。用于远程通讯等等
💻 H
字号:
/*************************************
显示模式设置命令:00xxxB2B1B0 其中B2B1B0为显示位数减4的值
数据设置命令:    01XX0B3B2B1B0
数据显示列表:S15 S14 S13 S12 S11 S10 S9 S8 S7 S6 S5 S4 S3 S2 S1 S0
              

*************************************/


volatile uchar spi_n=0;
volatile uchar spi_ddr[8]={0};

/*************************************
功能:初始化SPI(从机,模式2,1/16分频)
参数:无
返回值:无
编写人:王志辉
时间:2007年6月2日
*************************************/
void init_SPI(void)
{
    //SPCR = (1<<SPIE)|(1<<SPE)|(1<<DORD)|(0<<MSTR)|(1<<CPOL)|(0<<CPHA)|(0<<SPR1)|(1<<SPR0);
    //SPSR = (0<<SPIF)|(0<<WCOL)|(0<<SPI2X);
	SPCR = (1<<SPIE)|(1<<SPE)|(1<<DORD)|(1<<CPOL)|(1<<CPHA)|(1<<SPR0);
	//SPIE -------------1SPI中断使能,0中断禁止
	//SPE--------------1使能SPI,0禁止SPI	
	//DORD -------------数据次序 1低位先发,0高位先发	
    // MSTR-------------1主机,0从机
	//CPOL,CPHA ----------SPI模式选择
	//SPI2X,SPI1X,SPI0X------SPI时钟频率设置(从机时不能高于系统时钟的1/4)
    //SPIF -------------SPI中断标志位
	//WCOL -------------写碰撞标志位

  //DDR_SPI=(1<<DD_MISO);//手动设置MISO为输入

}
/*************************************
功能:SPI从机时简单的数据接收(测试用)
参数:无
返回值:收到的数据
编写人:王志辉
时间:2007年6月2日
*************************************/
char SPI_slaveRecive(void)
{while(!(SPSR&(1<<SPIF)));//判断是否有数据输入
 return SPDR;//SPDR为SPI数据寄存器
}
/*************************************
功能:SPI中断
参数:无
返回值:无
编写人:王志辉
时间:2007年6月4日
*************************************/
SIGNAL(SIG_SPI)
{
 UDR1=SPDR;
 loop_until_bit_is_set(UCSR1A,UDRE1);
 UCSR1A|=(1<<UDRE1);
 SPDR=0xff;
}

⌨️ 快捷键说明

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