SPI硬件实现-GD32
#include "w25qxx_spi.h"
void w25qxx_init(void){
// 使能外设时钟
w25qxx_rcu_init();
// IO口进行配置,使之复用为SPI0, PA4\PA5\PA6\PA7,NSS\SCK\MISO\MOSI
w25qxx_io_init();
// SPI0初始化
w25qxx_spi_init();
spi_enable(SPI0);
}
// 使能外设时钟
void w25qxx_rcu_init(void){
rcu_periph_clock_enable(RCU_GPIOA); //使能GPIOA时钟
rcu_periph_clock_enable(RCU_AF); //使能AF时钟
rcu_periph_clock_enable(RCU_SPI0); //使能SPI0时钟
}
// IO口进行配置,使之复用为SPI0, PA4\PA5\PA6\PA7,NSS\SCK\MISO\MOSI
void w25qxx_io_init(void){
gpio_init(GPIOA, GPIO_MODE_IN_FLOATING, GPIO_OSPEED_50MHZ, GPIO_PIN_6); // MISO
gpio_init(GPIOA, GPIO_MODE_AF_PP, GPIO_OSPEED_50MHZ, GPIO_PIN_5 | GPIO_PIN_7); // SCK\MOSI
gpio_init(GPIOA, GPIO_MODE_OUT_PP, GPIO_OSPEED_50MHZ, GPIO_PIN_4);// NSS片选口
}
// SPI0初始化
void w25qxx_spi_init(void){
spi_param