初始化:<br />SPCR = (1 << 2) | // BitEnable<br /> (0 << 3) | // CPHA = 0, 数据在SCK 的第一个时钟沿采样<br /> (0 << 4) | // CPOL = 0, SCK 为高有效<br /> (1 << 5) | // MSTR = 1, SPI 处于主模式<br /> (0 << 6) | // LSBF = 0, SPI 数据传输MSB (位7)在先<br /> (1 << 7) |// SPIE = 0, SPI 中断被允许<br /> (0x00<<8); //11:8 BITS<br /> //0000 16 bits per transfer<br /><br />中断读取:<br />WORD Data;<br /> Data = SPDR;<br />即是16位的数据。<br />如果采用8位传输<br />则分两次:<br /><br />S0SPDR=DATA;<br />while ( !(S0SPSR & SPIF) ){}<br />*p=S0SPDR;<br /><br />S0SPDR=DATA;<br />while ( !(S0SPSR & SPIF) ){}<br />*(++p)=S0SPDR;<br />
|