SPI_Initial();是SPI总线的初始化配置,这个配置一般包括两个部分,一个是SPI单片机外设模块相关引脚的配置,比如CS引脚,MOSI MISO引脚,SCLK的引脚分配和配置。第二个部分是对SPI总线的配置,包括相位,时钟,数据宽度,波特率等内容的配置,详细的内容需要看一下你用的那个AVR单片机,看一下数据手册吧以及相关代码。
看看下面内容
//------------------------------------------------------------------------------ //这个是ATMEGA16作为主机的情况下的文件 //主机每隔1s发送数据0x55给从机,从机的D1指示灯每1s闪烁一次 #include"ioavr.h" #include"delayics.h" #include"macroandconst.h" //------------------------------------------------------------------------------ #define SPIF 7 //------------------------------------------------------------------------------ //端口初始化函数 void port_init() { DDRB=0XB0; //SCK、MOSI、SS置位为输出,MISO设置为输入 PORTB=0X00; //输出低电平,输入也是低电平 } //------------------------------------------------------------------------------ //SPI初始化函数 void spi_init() { SPCR=0x51; //使能SPI;时钟选择为16分频;时钟极性(CPOL)为低电平,起始沿为上升沿,结束沿为下降沿; //时钟相位(CPHA)在起始沿采样 } //------------------------------------------------------------------------------ //芯片初始化函数 void device_init() { port_init(); spi_init(); } //------------------------------------------------------------------------------ //SPI主机发送函数 void spi_master_send(uchar dat) { SPDR=dat; while(!(SPSR&(1< }