硬汉嵌入式论坛

 找回密码
 立即注册
查看: 4223|回复: 0
收起左侧

[客户分享] FAQ0092 SPI3 引脚设置方法

[复制链接]

22

主题

16

回帖

82

积分

初级会员

积分
82
发表于 2021-2-19 21:06:51 | 显示全部楼层 |阅读模式
本帖最后由 tutu 于 2022-5-7 19:28 编辑

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, 下载次数: 9

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-6-18 20:43 , Processed in 0.154560 second(s), 31 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表