GPIO有配为AF功能的,用的PB1-->CLK, PA13-->MISO, PA14-->MOSI, PA15-->NSS;
void a7196_gpio_init(void)
{
/* enable the SPI1_SCK clock */
rcu_periph_clock_enable(SPI1_SCK_PORT_CLK);
/* configure SPI1_SCK port */
gpio_mode_set(SPI1_SCK_PORT, GPIO_MODE_AF, GPIO_PUPD_NONE, SPI1_SCK_PIN);
gpio_output_options_set(SPI1_SCK_PORT, GPIO_OTYPE_PP, GPIO_OSPEED_50MHZ, SPI1_SCK_PIN);
gpio_af_set(SPI1_SCK_PORT, GPIO_AF_6, SPI1_SCK_PIN);
/* enable the SPI1_MISO clock */
rcu_periph_clock_enable(SPI1_MISO_PORT_CLK);
/* configure SPI1_MISO port */
gpio_mode_set(SPI1_MISO_PORT, GPIO_MODE_AF, GPIO_PUPD_NONE, SPI1_MISO_PIN | SPI1_MOSI_PIN /*| SPI1_NSS_PIN*/);
gpio_output_options_set(SPI1_MISO_PORT, GPIO_OTYPE_PP, GPIO_OSPEED_50MHZ, SPI1_MISO_PIN | SPI1_MOSI_PIN /*| SPI1_NSS_PIN*/);
gpio_af_set(SPI1_MISO_PORT, GPIO_AF_6, SPI1_MISO_PIN | SPI1_MOSI_PIN /*| SPI1_NSS_PIN*/);
gpio_mode_set(SPI1_MISO_PORT, GPIO_MODE_INPUT, GPIO_PUPD_NONE, SPI1_MISO_PIN);
/* enable the SPI1_NSS clock */
rcu_periph_clock_enable(SPI1_NSS_PORT_CLK);
/* configure SPI1_NSS port */
gpio_mode_set(SPI1_NSS_PORT, GPIO_MODE_OUTPUT, GPIO_PUPD_PULLUP, SPI1_NSS_PIN);
gpio_output_options_set(SPI1_NSS_PORT, GPIO_OTYPE_PP, GPIO_OSPEED_50MHZ, SPI1_NSS_PIN);
A7196_CS_SET;
/* enable the GIO2 clock */
rcu_periph_clock_enable(WTR_PORT_CLK);
/* configure GIO2 port */
gpio_mode_set(WTR_PORT, GPIO_MODE_INPUT, GPIO_PUPD_NONE, WTR_PIN);
} |