SPI4 主机配置如何配置???
403A,,,,,,SPI4主机模拟配置,映射到PB7,8,9,上,CS必须是PB6么?其他引脚能做cs用么?????remap以后,求教 void spigpio_config(void)
{
gpio_init_type gpio_initstructure;
crm_periph_clock_enable(CRM_GPIOB_PERIPH_CLOCK, TRUE);
crm_periph_clock_enable(CRM_GPIOE_PERIPH_CLOCK, TRUE);
crm_periph_clock_enable(CRM_IOMUX_PERIPH_CLOCK, TRUE);
crm_periph_clock_enable(CRM_SPI4_PERIPH_CLOCK, TRUE);
gpio_default_para_init(&gpio_initstructure);
/* spi4 sck pin */
gpio_initstructure.gpio_out_type = GPIO_OUTPUT_PUSH_PULL;
gpio_initstructure.gpio_drive_strength = GPIO_DRIVE_STRENGTH_STRONGER;
//gpio_initstructure.gpio_pull = GPIO_PULL_UP;
gpio_initstructure.gpio_mode = GPIO_MODE_MUX;
gpio_initstructure.gpio_pins = GPIO_PINS_7;
gpio_init(GPIOB, &gpio_initstructure);
/* spi4 mosi pin */
gpio_initstructure.gpio_pins = GPIO_PINS_9;
gpio_init(GPIOB, &gpio_initstructure);
/* spi4 miso pin */
gpio_initstructure.gpio_pull = GPIO_PULL_NONE;
gpio_initstructure.gpio_mode = GPIO_MODE_INPUT;
gpio_initstructure.gpio_pins = GPIO_PINS_8;
gpio_init(GPIOB, &gpio_initstructure);
/* spi4 CS/RST pin */
gpio_initstructure.gpio_pull = GPIO_PULL_UP;
gpio_initstructure.gpio_mode = GPIO_MODE_OUTPUT;
gpio_initstructure.gpio_pins = GPIO_PINS_0 | GPIO_PINS_1 ;
gpio_init(GPIOE, &gpio_initstructure);
/* int pin */
gpio_initstructure.gpio_pull = GPIO_PULL_UP;
gpio_initstructure.gpio_mode = GPIO_MODE_INPUT;
gpio_initstructure.gpio_pins = GPIO_PINS_2;
gpio_init(GPIOE, &gpio_initstructure);
gpio_pin_remap_config(SPI4_GMUX_0010,TRUE);
gpio_bits_write(GPIOE,GPIO_PINS_0,TRUE);
gpio_bits_write(GPIOE,GPIO_PINS_1,TRUE);
}
void spi_config(void)
{
spi_init_type spi_init_struct;
spigpio_config();
crm_periph_clock_enable(CRM_SPI4_PERIPH_CLOCK, TRUE);
spi_default_para_init(&spi_init_struct);
spi_init_struct.transmission_mode = SPI_TRANSMIT_FULL_DUPLEX;
spi_init_struct.master_slave_mode = SPI_MODE_MASTER;
spi_init_struct.mclk_freq_division = SPI_MCLK_DIV_64;
spi_init_struct.first_bit_transmission = SPI_FIRST_BIT_MSB;
spi_init_struct.frame_bit_num = SPI_FRAME_8BIT;
spi_init_struct.clock_polarity = SPI_CLOCK_POLARITY_LOW;
spi_init_struct.clock_phase = SPI_CLOCK_PHASE_2EDGE;
spi_init_struct.cs_mode_selection = SPI_CS_SOFTWARE_MODE;
spi_init(SPI4, &spi_init_struct);
spi_enable(SPI4, TRUE);
}
SPI4 发送命令
while(spi_i2s_flag_get(SPI4, SPI_I2S_TDBE_FLAG) == RESET);
spi_i2s_data_transmit(SPI4, d);
while(spi_i2s_flag_get(SPI4,SPI_I2S_RDBF_FLAG ) == RESET);
return spi_i2s_data_receive(SPI4); CS也可以remap成其他引脚(如下图),但也可以使用软件CS,即使用任意IO作为CS脚,由软件代码去拉
muyichuan2012 发表于 2023-10-8 15:56
CS也可以remap成其他引脚(如下图),但也可以使用软件CS,即使用任意IO作为CS脚,由软件代码去拉
...
GMUX选择0010或者0011,默认cs是PB6,还能用其他脚代替么? 也可以使用软件CS,即,使用任意IO作为CS脚,由软件代码去
页:
[1]