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:如果想要发送八位数据,只需要把收发函数中注释部分打开此外还需修改一下控制寄存器的配置即可。

原文地址:https://www.cnblogs.com/fcy1/p/12936928.html