• STM32F407 IO引脚复用器和映射 个人笔记


    基本概念

    1. stm32有一些内置外设,每个外设有一个复用功能AF(Alternate functions).
    2. stm32的每个io引脚东路有一个16路复用器,该复用器一端连该引脚,另外16端连AF0~AF15
    3. 该复用器可以通过GPIOx_AFRL(针对该组引脚的 0-7号引脚)和 GPIOx_AFRH(针对引脚 8-15)寄存器来配置,即选择哪个AF连接该io引脚

    如何知道每个io口复用了哪些AF

    并不是每一个io口都能任意选择所有AF, 由示意图也可以知道,AF1可能是两个TIM1或TIM2,AF3可能是TIM8~TIM11,显然每个io口每次只能复用一个外设
    那如何知道每个io口复用了哪些AF呢?
    方法一:.在芯片资料中的《STM32F407ZGT6.pdf》(datasheet)中,找到table 6. pin and ball definitions ,里面由一栏就是AF

    方法二:在原理图《Explorer STM32F4_V2.2_SCH.pdf》中,第二页MCU中可以看到,每个引脚里面写的就是其复用的AF:

    软件控制复用器选择哪个AF

    一组IO口的高、低八位分别由GPIOx_AFRHGPIOx_AFRL寄存器控制。
    下图对应GPIOx_AFRL (低8位)
    可以看到每个io引脚占用4位,这4位选择一个AF来复用

    端口复用为复用功能的配置过程:

    1.GPIO&复用外设的时钟使能

        RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA,ENABLE); //使能GPIOA时钟
        RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1,ENABLE);//使能USART1时钟
    

    2.通过GPIO_PinAFConfig()函数,配置GPIOx_AFRHGPIOx_AFRL寄存器,控制锁存器,将io口和外设相连
    ···
    //串口1对应引脚复用映射
    GPIO_PinAFConfig(GPIOA,GPIO_PinSource9,GPIO_AF_USART1); //GPIOA9复用为USART1
    GPIO_PinAFConfig(GPIOA,GPIO_PinSource10,GPIO_AF_USART1); //GPIOA10复用为USART1
    ···
    3.GPIO_Init()
    除了复用ADC和DAC这两个外设时的mode选模拟输入外,其余外设的mode全部选AF

    4.对应外设初始化

  • 相关阅读:
    MuJS官网示例讲解
    Windows下用Bochs编译运行Linux-0.11(转)
    mysql数据库设置远程连接权限
    Courses in Computer Science and Engineering
    docker-ce 安装和卸载
    实现自定义docker 镜像共享
    cmakelists.txt中配置openg环境出现: undefined reference to symbol 'glLightfv'
    ubuntu16.04如何查看内存和CPU的使用情况
    ROS
    QT_OPENGL-------- 5.model
  • 原文地址:https://www.cnblogs.com/YuQiao0303/p/10011599.html
Copyright © 2020-2023  润新知