fesc_5554_fspi.c
来自「MPC5554处理器的初始化例程」· C语言 代码 · 共 58 行
C
58 行
/*************************************************************************/
/* FUNCTION : general FPGA-SPI Operations */
/* PURPOSE : */
/* INPUT NOTES : */
/* RETURN NOTES : None */
/* WARNING : None */
/*************************************************************************/
void init_FPGA_SPI(void)
{ uint8_t i;
for(i=0;i<8;i++)
{
SXC.CH[i].SXC_CR.B.TCFC = 1;
SXC.CH[i].SXC_CR.B.RDFC = 1;
}
for(i=0;i<6;i++) SXC.CH[i].SPI_BAUD_REG.B.BAUD = 25; // 120MHz/(32*25) = 150Kbps
SXC.CH[6].SPI_BAUD_REG.B.BAUD = 5; // 120MHz/(32*5) = 750Kbps
SXC.CH[7].SPI_BAUD_REG.B.BAUD = 5;
}
uint8_t FPGA_SPI_ready_send(uint8_t ch)
{
if(SXC.CH[ch].SXC_SR.B.BUSY==0) return(1);
else return(0);
}
uint8_t FPGA_SPI_ready_read(uint8_t ch)
{
if(SXC.CH[ch].SXC_SR.B.RDF==1) return(1);
else return(0);
}
void FPGA_SPI_Send(uint8_t ch,uint8_t TxDATA)
{ SXC.CH[ch].SXC_CR.B.TCFC = 1;
SXC.CH[ch].SPI_HOST_DATA_REG.B.DATA = TxDATA;
SXC.CH[ch].SXC_CR.B.SEND = 1;
}
uint8_t FPGA_SPI_Read(uint8_t ch)
{
SXC.CH[ch].SXC_CR.B.RDFC = 1;
return(SXC.CH[ch].SPI_HOST_DATA_REG.B.DATA);
}
uint8_t FPGA_SPI_Swap(uint8_t ch,uint8_t TxDATA)
{
if((SXC.CH[ch].SXC_SR.B.BUSY == 0) && (SXC.CH[3].SXC_SR.B.TCF == 0))
SXC.CH[ch].SPI_HOST_DATA_REG.B.DATA = TxDATA;
SXC.CH[ch].SXC_CR.B.SEND = 1;
while(SXC.CH[ch].SXC_SR.B.BUSY == 1){}
SXC.CH[ch].SXC_CR.B.TCFC = 1;
SXC.CH[ch].SXC_CR.B.RDFC = 1;
return(SXC.CH[ch].SPI_HOST_DATA_REG.B.DATA);
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?