OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3531|回复: 0

FAQ0092 SPI3 引脚设置方法

[复制链接]

55

主题

57

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
252
金钱
252
注册时间
2019-11-25
在线时间
28 小时
发表于 2021-2-19 21:05:39 | 显示全部楼层 |阅读模式
本帖最后由 tutu983618588 于 2022-5-7 19:32 编辑

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

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-8 10:08

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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