一、问题描述
1.GD32F103RCT6(高密度芯片)在配置SPI2的重映射时,发现程序中没有对应的映射函数;但是查看文档中确实可以配置。
1)GD32F103RCT6(高密度芯片)包含3个SPI
2)SPI2的重映射引脚(可以配置)
3)寄存器中显示(可以配置)
4)gd32f10x_gpio.h文件中的重映射配置---此版本是GD32F10x_Demo_Suites_V2.1.0(但是程序中不能进行配置)
二、问题所在
1.gd32f10x_gpio.h文件中没有包含SPI2的重映射配置。
2.下载新版GD32F10x_Demo_Suites_V2.1.1资料包,查看gd32f10x_gpio.h,发现已支持SPI2的重映射(官方的注释需要改啊)
三、解决办法
1.需要下载最新版的,更新驱动库。
2.最终程序
#define EX_FLASH_CS_PIN GPIO_PIN_15
#define EX_FLASH_CS_GPIO GPIOA
#define EX_FLASH_CS_GPIO_CLK RCU_GPIOA
#define EX_FLASH_MOSI_PIN GPIO_PIN_12
#define EX_FLASH_MISO_PIN GPIO_PIN_11
#define EX_FLASH_CLK_PIN GPIO_PIN_10
#define EX_FLASH_GPIO GPIOC
#define EX_FLASH_GPIO_CLK RCU_GPIOC
static void ex_flash_pin_init(void)
{
rcu_periph_clock_enable(EX_FLASH_CS_GPIO_CLK);
rcu_periph_clock_enable(EX_FLASH_GPIO_CLK);
rcu_periph_clock_enable(RCU_AF);
gpio_init(EX_FLASH_CS_GPIO, GPIO_MODE_OUT_PP, GPIO_OSPEED_50MHZ, EX_FLASH_CS_PIN);
gpio_pin_remap_config(GPIO_SWJ_SWDPENABLE_REMAP,ENABLE);
gpio_init(EX_FLASH_GPIO_CLK, GPIO_MODE_AF_PP, GPIO_OSPEED_50MHZ, EX_FLASH_CLK_PIN | EX_FLASH_MOSI_PIN);
gpio_init(EX_FLASH_GPIO_CLK, GPIO_MODE_IN_FLOATING, GPIO_OSPEED_50MHZ, EX_FLASH_MISO_PIN);
gpio_pin_remap_config(GPIO_SPI2_REMAP,ENABLE);
SPI_FLASH_CS_HIGH();
}



