crm_periph_clock_enable(CRM_IOMUX_PERIPH_CLOCK, TRUE);
/* enable gpioe periph clock */
crm_periph_clock_enable(CRM_GPIOE_PERIPH_CLOCK, TRUE);
/* enable spi4 periph clock */
crm_periph_clock_enable(CRM_SPI4_PERIPH_CLOCK, TRUE);
gpio_init_type gpio_init_struct;
spi_init_type spi_init_struct;
gpio_default_para_init(&gpio_init_struct);
spi_default_para_init(&spi_init_struct);
gpio_pin_remap_config(SPI4_MUX, TRUE);
/* configure the cs pin */
gpio_init_struct.gpio_drive_strength = GPIO_DRIVE_STRENGTH_MODERATE;
gpio_init_struct.gpio_out_type = GPIO_OUTPUT_PUSH_PULL;
gpio_init_struct.gpio_mode = GPIO_MODE_OUTPUT;
gpio_init_struct.gpio_pins = GPIO_PINS_15 ;
gpio_init_struct.gpio_pull = GPIO_PULL_NONE;
gpio_init(GPIOE, &gpio_init_struct);
/* configure the MOSI pin */
gpio_init_struct.gpio_drive_strength = GPIO_DRIVE_STRENGTH_MODERATE;
gpio_init_struct.gpio_out_type = GPIO_OUTPUT_PUSH_PULL;
gpio_init_struct.gpio_mode = GPIO_MODE_MUX;
gpio_init_struct.gpio_pins = GPIO_PINS_11 |GPIO_PINS_14;
gpio_init_struct.gpio_pull = GPIO_PULL_NONE;
gpio_init(GPIOE, &gpio_init_struct);
/* configure the MISO pin */
gpio_init_struct.gpio_drive_strength = GPIO_DRIVE_STRENGTH_MODERATE;
gpio_init_struct.gpio_mode = GPIO_MODE_INPUT;
gpio_init_struct.gpio_pins = GPIO_PINS_13;
gpio_init_struct.gpio_pull = GPIO_PULL_UP;
gpio_init(GPIOE, &gpio_init_struct);
/* configure param */
spi_init_struct.transmission_mode = SPI_TRANSMIT_FULL_DUPLEX;
spi_init_struct.master_slave_mode = SPI_MODE_MASTER;
spi_init_struct.frame_bit_num = SPI_FRAME_8BIT;
spi_init_struct.first_bit_transmission = SPI_FIRST_BIT_MSB;
spi_init_struct.mclk_freq_division = SPI_MCLK_DIV_128;
// spi_init_struct.clock_polarity = SPI_CLOCK_POLARITY_HIGH;
// spi_init_struct.clock_phase = SPI_CLOCK_PHASE_2EDGE;
spi_init_struct.clock_polarity = SPI_CLOCK_POLARITY_LOW;
spi_init_struct.clock_phase = SPI_CLOCK_PHASE_1EDGE;
spi_init_struct.cs_mode_selection = SPI_CS_SOFTWARE_MODE;
spi_init(SPI4, &spi_init_struct);
/* configure the cs pin output */
// nvic_priority_group_config(NVIC_PRIORITY_GROUP_4);
spi_enable(SPI4, AT_TRUE); |