F28335 SPI配置及收發數據


一、配置SPI寄存器

void SPIA_Init(void){
EALLOW;
SysCtrlRegs.PCLKCR0.bit.SPIAENCLK = 1; // SPI-A
EDIS;
InitSpiaGpio();
SpiaRegs.SPIFFTX.all=0xE040;
SpiaRegs.SPIFFRX.all=0x204f;
SpiaRegs.SPIFFCT.all=0x0;
SpiaRegs.SPICCR.all =0x047; // Reset on, rising
SpiaRegs.SPICTL.all =0x001F; // Enable master
SpiaRegs.SPIBRR =0x007F;
SpiaRegs.SPICCR.all =0x00C7; // Relinquish SPI
SpiaRegs.SPIPRI.bit.FREE = 1; // Set so
}

二、數據收發函數

Uint16 SPIA_SendReciveData(Uint16 dat){
//Uint16 temp = 0;
//temp = dat<<8;
//SpiaRegs.SPITXBUF = temp;
SpiaRegs.SPITXBUF = dat;
while(SpiaRegs.SPIFFRX.bit.RXFFST !=1);
//return (SpiaRegs.SPIRXBUF>>8);
return (SpiaRegs.SPIRXBUF);
}
PS:如果想要發送八位數據,只需要把收發函數中注釋部分打開此外還需修改一下控制寄存器的配置即可。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM