SPI3 引脚设置方法
FAQ0092
常见问题解答
SPI3引脚设置方法
Questions:如何设置 SPI3 引脚?
Answer:
需要开启对应 GPIO 时钟、开启复用时钟、将 IO 配置为复用功能、设置重映射等相应的操作。
以 AT32F403 为例,将 PA15/PB3/PB4/PB5 作为 SPI3 主机使用,需要设置如下:
//开启 GPIOA、GPIOB 时钟、开启复用时钟、开启 SPI3 时钟
crm_periph_clock_enable(CRM_GPIOA_PERIPH_CLOCK,TRUE);
crm_periph_clock_enable(CRM_GPIOB_PERIPH_CLOCK,TRUE);
crm_periph_clock_enable(CRM_IOMUX_PERIPH_CLOCK,TRUE);
crm_periph_clock_enable(CRM_SPI3_PERIPH_CLOCK,TRUE);
//设置 PA15、PB3、PB5 为复用输出,如果 NSS 选择软件方式控制,则 PA15 设置为推挽输出
gpio_init_type gpio_initstructure;
gpio_default_para_init(&gpio_initstructure);
/* spi3 nss pin */
gpio_initstructure.gpio_out_type
gpio_initstructure.gpio_drive_strength =GPIO_DRIVE_STRENGTH_STRONGER;
gpio_initstructure.gpio_mode = GPIO_MODE_MUX;
= GPIO_OUTPUT_PUSH_PULL;
gpio_initstructure.gpio_pins=GPIO_PINS_15;
gpio_init(GPIOA, &gpio_initstructure);
/* spi3 mosi pin */
gpio_initstructure.gpio_pins=GPIO_PINS_5;
gpio_init(GPIOB,&gpio_initstructure);
/* spi3 sck pin */
gpio_initstructure.gpio_pins=GPIO_PINS_3;
gpio_init(GPIOB,&gpio_initstructure);
//设置 PB4 为输入
/* spi3 miso pin */
gpio_initstructure.gpio_pull
gpio_initstructure.gpio_mode
= GPIO_PULL_NONE;
= GPIO_MODE_INPUT;
gpio_initstructure.gpio_pins=GPIO_PINS_4;
gpio_init(GPIOB,&gpio_initstructure);
//设置重映射
gpio_pin_remap_config(SWJTAG_MUX_100, TRUE);
以 AT32F403A 为例,将 PA4/PC10/ PC11/ PC12 作为 SPI3 主机使用,需要设置如下:
//开启 GPIOA、GPIOC 时钟、开启复用时钟、开启 SPI3 时钟
crm_periph_clock_enable(CRM_GPIOA_PERIPH_CLOCK,TRUE);
crm_periph_clock_enable(CRM_GPIOC_PERIPH_CLOCK,TRUE);
crm_periph_clock_enable(CRM_IOMUX_PERIPH_CLOCK,TRUE);
crm_periph_clock_enable(CRM_SPI3_PERIPH_CLOCK,TRUE);
//设置 PA4、PC10、PC12 为复用输出,如果 NSS 选择软件方式控制,则 PA4 设置为推挽输出
gpio_init_type gpio_initstructure;
gpio_default_para_init(&gpio_initstructure);
2022.2.23
第 1 页
版本 2.0.0