打印
[其它]

FAQ0092 SPI3 引脚设置方法

[复制链接]
771|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 ArterySW 于 2022-5-7 19:29 编辑

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_OUTPUT_PUSH_PULL;
        gpio_initstructure.gpio_drive_strength = GPIO_DRIVE_STRENGTH_STRONGER;
        gpio_initstructure.gpio_mode = GPIO_MODE_MUX;
        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_PULL_NONE;
        gpio_initstructure.gpio_mode = 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);


        /* spi3 nss pin */
        gpio_initstructure.gpio_out_type = GPIO_OUTPUT_PUSH_PULL;
        gpio_initstructure.gpio_drive_strength = GPIO_DRIVE_STRENGTH_STRONGER;
        gpio_initstructure.gpio_mode = GPIO_MODE_MUX;
        gpio_initstructure.gpio_pins = GPIO_PINS_4;
        gpio_init(GPIOA, &gpio_initstructure);
        /* spi3 mosi pin */
        gpio_initstructure.gpio_pins = GPIO_PINS_12;
        gpio_init(GPIOC, &gpio_initstructure);
        /* spi3 sck pin */
        gpio_initstructure.gpio_pins = GPIO_PINS_10;
        gpio_init(GPIOC, &gpio_initstructure);
        //设置 PC11 为输入
        /* spi3 miso pin */
        gpio_initstructure.gpio_pull = GPIO_PULL_NONE;
        gpio_initstructure.gpio_mode = GPIO_MODE_INPUT;
        gpio_initstructure.gpio_pins = GPIO_PINS_11;
        gpio_init(GPIOC, &gpio_initstructure);
        //设置重映射
        gpio_pin_remap_config(SPI3_GMUX_0011, TRUE);


类型:MCU 应用
适用型号:AT32F403,AT32F403A,AT32F407,AT32F435,AT32F437, AT32F425
主功能:SPI3
次功能:无

FAQ0092_SPI3引脚设置方法_V2.0.0.pdf

279.26 KB

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

53

主题

132

帖子

2

粉丝