[研电赛技术支持]

GD32 GPIO配置问题

[复制链接]
3878|1
手机看帖
扫描二维码
随时随地手机跟帖
qianyixing25|  楼主 | 2021-7-12 18:53 | 显示全部楼层 |阅读模式
本帖最后由 qianyixing25 于 2021-7-13 09:18 编辑

GD32E507系列,如何配置GPIO的备用2功能,芯片手册中有标明,但是用户手册中相关章节寄存器却没有这些功能。手册中说明了备用功能的配置方法“有些备用功能需要通过AFIO_PCFA~AFIO_PCFE和AFIO_PCFG寄存器进行配置”

3131E615-1792-4874-8B60-8BAB2C914AD6.jpeg
比如,PA2管脚,Alternate1功能为CMP1_OUT,Alternate2功能有串口、ADC、TIMER等,如图。


AC02E180-77B8-4E59-A5AD-FDC586FFC891.jpeg
但是,对应的AFIO寄存器只能选择CMP功能,如图。
4506370D-DA66-4EE8-8923-8FBA7F345F7D.jpeg

使用特权

评论回复
qianyixing25|  楼主 | 2021-7-13 10:05 | 显示全部楼层
今天翻看Firmware Library中的例程,比如SPI IO口的配置:void gpio_config(void)
{
    /* SPI0 GPIO config:SCK/PA5, MOSI/PA7 */
    gpio_init(GPIOA, GPIO_MODE_AF_PP, GPIO_OSPEED_50MHZ, GPIO_PIN_5 | GPIO_PIN_7);
    /* config PA3 as SPI0_NSS */
    gpio_init(GPIOA, GPIO_MODE_OUT_PP, GPIO_OSPEED_50MHZ, GPIO_PIN_3);

    gpio_pin_remap_config(GPIO_SPI2_REMAP,ENABLE);
    /* SPI2 GPIO config: NSS/PA4, SCK/PC10, MISO/PC11 */
    gpio_init(GPIOC, GPIO_MODE_IN_FLOATING, GPIO_OSPEED_50MHZ, GPIO_PIN_10 |GPIO_PIN_11);
    gpio_init(GPIOA, GPIO_MODE_IN_FLOATING, GPIO_OSPEED_50MHZ, GPIO_PIN_4);
}


DATASHEET中PA5的功能描述:
Default: PA5
Alternate1: USBHS_ULPI_CK
Alternate2: SPI0_SCK, ADC01_IN5, DAC_OUT1,CMP1_IM5, CMP3_IM5, CMP5_IM5

gpio_init()函数怎么通过配置GPIO_CTL寄存器MDy位实现AF功能,这个理解了,但是程序中没有操作AFIO_PCFx寄存器进行功能配置,MPU是如何知道要选择哪个备用功能呢?
而且即便操作AFIO_PCFA寄存器,相应bit也没有选择SPI功能的选项
bit10    PA5_AFCFG        PA5 AF 功能配置位
                                    该位由软件置位和清除。
                                    0:不配置 PA5 备用功能到 USBHS
                                     1:配置 PA5 备用功能到 USBHS。


使用特权

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

本版积分规则

5

主题

12

帖子

0

粉丝