void spi_config(void)
{
spi_parameter_struct spi_init_struct;
/* deinitilize SPI and the parameters */
spi_i2s_deinit(SPI0);
// spi_i2s_deinit(SPI2);
spi_struct_para_init(&spi_init_struct);
/* SPI0 parameter config */
spi_init_struct.trans_mode = SPI_TRANSMODE_FULLDUPLEX;/*SPI_TRANSMODE_BDTRANSMIT;//*/
spi_init_struct.device_mode = SPI_MASTER;
spi_init_struct.frame_size = SPI_FRAMESIZE_8BIT;
spi_init_struct.clock_polarity_phase = SPI_CK_PL_HIGH_PH_2EDGE;
spi_init_struct.nss = SPI_NSS_SOFT;
spi_init_struct.prescale = SPI_PSC_128;
spi_init_struct.endian = SPI_ENDIAN_LSB;
spi_init(SPI0, &spi_init_struct);
/* SPI2 parameter config */
spi_init_struct.device_mode = SPI_SLAVE;
spi_init_struct.nss = SPI_NSS_SOFT;
spi_init(SPI2, &spi_init_struct);
spi_nss_internal_high(SPI0);
spi_nss_internal_low(SPI2);
}
void gpio_config(void)
{
/* SPI0 GPIO config:SCK/PA5, MISO/PA6, MOSI/PA7 */
GPIO_BOP(GPIOA) = GPIO_PIN_4;
gpio_init(GPIOA, GPIO_MODE_OUT_PP, GPIO_OSPEED_50MHZ, GPIO_PIN_4 );
gpio_init(GPIOA, GPIO_MODE_AF_PP, GPIO_OSPEED_50MHZ, GPIO_PIN_5 | GPIO_PIN_7);
gpio_init(GPIOA, GPIO_MODE_IN_FLOATING, GPIO_OSPEED_50MHZ, GPIO_PIN_6);
/* SPI2 GPIO config:SCK/PC10, MISO/PC11, MOSI/PC12 */
gpio_pin_remap_config(GPIO_SPI2_REMAP, ENABLE);
gpio_init(GPIOC, GPIO_MODE_IN_FLOATING, GPIO_OSPEED_50MHZ, GPIO_PIN_10 | GPIO_PIN_12);
gpio_init(GPIOC, GPIO_MODE_AF_PP, GPIO_OSPEED_50MHZ, GPIO_PIN_11);
} |