初始化部分:
RCU_PeriphClkSet( RCU_GPIOI, ENABLE ) ;
GPIO_ModeSet( GPIOI, GPIO_PIN_0, GPIO_CTL_OUT, GPIO_PUD_PU ) ;
GPIO_OutOptSet( GPIOI, GPIO_PIN_0, GPIO_OM_PP, GPIO_OSPD_200MHZ ) ;
TOD_SPI_FPGA_CS_HI( ) ;
GPIO_ModeSet( GPIOI, GPIO_PIN_1 | GPIO_PIN_2 | GPIO_PIN_3, GPIO_CTL_AF, GPIO_PUD_FL ) ;
GPIO_OutOptSet( GPIOI, GPIO_PIN_1 | GPIO_PIN_2 | GPIO_PIN_3, GPIO_OM_PP, GPIO_OSPD_200MHZ ) ;
GPIO_AFSet( GPIOI, GPIO_PIN_1, GPIO_AF_SPI1 ) ;
GPIO_AFSet( GPIOI, GPIO_PIN_2, GPIO_AF_SPI1 ) ;
GPIO_AFSet( GPIOI, GPIO_PIN_3, GPIO_AF_SPI1 ) ;
RCU_PeriphClkSet( RCU_SPI1, ENABLE ) ;
SPI_InitParam.device_mode = SPI_MASTER ;
SPI_InitParam.trans_mode = SPI_TRANSMODE_FULLDUPLEX ;
SPI_InitParam.frame_size = SPI_FRAMESIZE_8BIT ;
SPI_InitParam.nss = SPI_NSSMODE_SOFT ;
SPI_InitParam.endian = SPI_ENDIAN_MSB ;
SPI_InitParam.cl** = SPI_CK_PL_LOW_PH_1EDGE ;
SPI_InitParam.prescale = SPI_PSC_2 ;
SPI_Init( SPI1, &SPI_InitParam ) ;
SPI_En( SPI1, ENABLE ) ;
收发部分:
TOD_SPI_FPGA_CS_LO( ) ;
TOD_SPI_waitTBE( err ) ;
SPI_DataTx( SPI1, data ) ;
TOD_SPI_waitRBNE( err ) ;
data = SPI_DataRx( SPI1 ) ;
TOD_SPI_FPGA_CS_HI( ) ;
|