精华内容
下载资源
问答
  • 不同复用功能的重映射
    千次阅读
    2022-04-20 18:17:59

    目录

    端口复用的概念

     内置外设的概念

    端口复用的概念

    端口复用的配置

    配置示例(串口1)

    复用GPIO的配置 

    STM32中文参考手册 110页

    端口重映射概念 

    端口重映射概念

    部分重映射

    完全重映射

    AFIO时钟

    开启AFIO情况

    重映射端口配置 


    端口复用的概念

     内置外设的概念

    • 除单片机内核外,单片机内部可实现功能的设备,如串口,ADC 等

    端口复用的概念

    • 为了节省单片机资源,采取内部外设引脚与GPIO引脚共用同一引脚,当GPIO做内部外设使用时叫做 复用

    端口复用的配置

    配置示例(串口1)

    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);//①IO时钟使能
    
    RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1, ENABLE);//②外设时钟使能
    
    //③初始化IO为对应的模式
    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9; //PA.9//复用推挽输出
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; 
    GPIO_Init(GPIOA, &GPIO_InitStructure);
      
    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10;//PA10 PA.10 浮空输入
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;//浮空输入
    GPIO_Init(GPIOA, &GPIO_InitStructure);  
    

    复用GPIO的配置 

    STM32中文参考手册 110页

    端口重映射概念 

    端口重映射概念

    • 内部外设除其默认的复用端口外,还可以通过重映射,将其功能映射到其他端口

    部分重映射

    • 功能外设的部分引脚重新映射,还有一部分引脚是原来的默认引脚

    完全重映射

    • 功能外设的所有引脚都重新映射

    下表为例 

    AFIO时钟

    开启AFIO情况

    • AFIO_MAPR:配置复用功能重映射
    • AFIO_EXTICRX:配置外部中断线映射
    • AFIO_EVCR:   配置EVENTOUT事件输出 

    重映射端口配置 

    1. 使能GPIO时钟(重映射后的IO);
    2. 使能功能外设时钟(例如串口1);
    3. 使能AFIO时钟。重映射必须使能AFIO时钟:
    4. RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE);
    5. 开启重映射。
    6. GPIO_PinRemapConfig(GPIO_Remap_USART1, ENABLE);

    更多相关内容
  • 文章内容为STM32的GPIO的复用功能重映射功能相关知识。
  • STM32端口复用重映射

    千次阅读 2021-05-21 20:07:53
    也就是说,一个GPIO如果可以复用为内置外设的功能引脚,那么当这个GPIO作为内置外设使用的时候,就叫做复用 简单来说就是 咱们的板子上有很多的引脚,这些引脚本来是你作为普通的输入输出使用的(就是你自己这是这个...

    参考正点原子视频

    端口复用

    STM32有很多内置外设,这些外设的外部引脚都是与GPIO复用的。也就是说,一个GPIO如果可以复用为内置外设的功能引脚,那么当这个GPIO作为内置外设使用的时候,就叫做复用

    简单来说就是 咱们的板子上有很多的引脚,这些引脚本来是你作为普通的输入输出使用的(就是你自己这是这个引脚的功能),但是咱们芯片的内置外设也需要与外界进行信息交流啊啊,但是引脚就这么多(比如咱们mini板子只有51个外接引脚),如果每个内置外设都要占用引脚的话,普通的引脚就不够用了,所以这个时候伟大的人类想到了一个办法,就是一个引脚,平常可以做普通的引脚,但是它还有另一个隐藏的身份,就是某个内置外设的输入输出引脚,当你需要用到这个外设的时候,这个普通的引脚就可以变成相关外设的引脚(就相当于中国的建设兵团,平常是农民,打仗的时候就是军人,但还是同一个人)。这就是端口复用。那么端口复用有什么用处呢?之前就说过了,如果内置外设都要单独占用一个引脚的话,普通的引脚就很少了,所以端口复用使得引脚的利用最大化。

    内置外设

    还记得单片机吧(就是那个黑片片),你可以把它当做一个人,人都知道有脑袋,和身体各个器官(废话),那么芯片也是一样的芯片的大脑就是微处理器,它的作用就是接收命令和发出命令(就相当于有了尿意大脑就接收到了命令要尿尿,就对你的膀胱发出命令,我要尿尿,手动滑稽),它没有实现命令的能力,该怎么办呢?芯片里的其他部分就是实现命令的设备(只是这些设备很小而已),它们就相当于咱们身体的五脏啊、肌肉啊、膀胱啊之类的器官(别说啥肌肉不是器官,我喜欢说咬我啊,略略略),比如说ADC、DAC之类的(不懂这些是啥吧,我也不知道,一点一点慢慢搞吧)。这些东西就叫内置外设

    例如串口1的发送接收引脚是PA9,PA10,当我们把PA9,PA10不用作GPIO,而是做复用功能串口1的发送接收引脚的时候,叫端口复用
    在这里插入图片描述

    端口复用配置过程

    以PA9,PA10配置为串口1为例

    GPIO端口时钟使能

    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);
    

    复用外设时钟使能
    比如你要将端口PA9,PA10复用为串口,所以要使能串口时钟

    RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1,ENABLE);
    

    端口模式配置。GPIO_Init()函数
    查表:《STM32中文参考手册V10》,P110的表格

    端口复用配置过程

    在这里插入图片描述

    GPIO引脚输入输出结构体

    typedef enum
    { 
      GPIO_Mode_AIN = 0x0,//模拟输入
      GPIO_Mode_IN_FLOATING = 0x04,//浮空输入
      GPIO_Mode_IPD = 0x28,//带下拉输入
      GPIO_Mode_IPU = 0x48,//带上拉输入
      GPIO_Mode_Out_OD = 0x14,//开漏输出
      GPIO_Mode_Out_PP = 0x10,//推挽输出
      GPIO_Mode_AF_OD = 0x1C,//复用功能的开漏输出
      GPIO_Mode_AF_PP = 0x18//复用功能的推挽输出
    }GPIOMode_TypeDef;
    

    PA9,PA10复用为串口1配置过程

    RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1, ENABLE);//IO时钟使能	
    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);//外设时钟使能	
      
    	//USART1_TX   GPIOA.9
      GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9; //PA.9
      GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
      GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;//复用推挽输出
      GPIO_Init(GPIOA, &GPIO_InitStructure);//
       
      //USART1_RX	 
      GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10;//PA10
      GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;//浮空输入
      GPIO_Init(GPIOA, &GPIO_InitStructure);//
    

    端口重映射

    重映射就是引脚重映射,本来每个内置外设都有原来设定的引脚,所谓的重映射就是通过某种方式,将外设本来的引脚的功能赋予给另外的引脚(比如一个外设的引脚是PA10,但你的这个引脚正在被使用,你又想用这个外设,你就可以通过重映射,将PA11设定成PA10,也就是说PA11取代了PA10的功能,成为了外设的引脚),但是重映射也是有规定可以映射到哪个引脚的(需要查看手册)而不是你想映射到哪个引脚就映射到哪个引脚

    I/O端口的重映射
    1.I/O的复用:GPIO和内置外设共用引出管脚
    2.I/O的重映射:复用功能(AFIO)从不同的GPIO管脚引出
    3.方便了PCB的设计,潜在地减少了信号的交叉干扰
    4.分时复用某些外设,虚拟地增加了端口数目
    AFIO重映射的操作步骤
    1.使能被重新映射到的I/O端口时钟
    2.使能被重新映射的外设时钟
    3.使能AFIO功能的时钟(勿忘)
    4.进行重映射

    部分重映射 & 完全重映射

    部分重映射:功能外设的部分引脚重新映射,还有一部分引脚是原来的默认引脚

    完全重映射:功能外设的所有引脚都重新映射

    在这里插入图片描述

    引脚重映射配置过程

    1.使能GPIO时钟(重映射后的IO)
    2.使能功能外设时钟(例如串口1)
    3.使能AFIO时钟。(重映射必须使能AFIO时钟)

    RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE);
    

    开启重映射

    GPIO_PinRemapConfig(GPIO_Remap_USART1,ENABLE);
    

    根据第一个参数,来确定是部分重映射还是全部重映射

    开启AFIO时钟

    对寄存器AFIO_MAPR,AFIO_EXTICRX和AFIO_EVCR进行读写操作前,应当首先打开AFIO时钟

    AFIO_MAPR:配置复用功能重映射
    AFIO_EXTICRX:配置外部中断线映射
    AFIO_EVCR:配置EVENTOUT事件输出

    展开全文
  • 端口复用重映射

    2021-05-14 23:54:34
    什么是端口复用?...例子:例如串口1 的发送接收引脚是PA9,PA10,当我们把PA9,PA10不用作GPIO,而用做复用功能串口1的发送接收引脚的时候,叫端口复用。 端口复用配置过程 -以PA9,PA10配置为串口1为例

    什么是端口复用?
    STM32有很多的内置外设,这些外设的外部引脚都是与GPIO复用的。也就是说,一个GPIO如果可以复用为内置外设的功能引脚,那么当这个GPIO作为内置外设使用的时候,就叫做复用。
    简单来说,一个引脚通过不同配置,可以当做很多其他外设的功能引脚来使用(吃饭要拿筷子,洗澡要拿毛巾,一个道理)
    例子:例如串口1 的发送接收引脚是PA9,PA10,当我们把PA9,PA10不用作GPIO,而用做复用功能串口1的发送接收引脚的时候,叫端口复用。
    在这里插入图片描述
    端口复用配置过程
    -以PA9,PA10配置为串口1为例
    1.GPIO端口时钟使能。
    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);

    2.复用外设时钟使能。
    比如你要将端口PA9,PA10复用为串口,所以要使能串口时钟。
    RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1, ENABLE);

    3.端口模式配置。 GPIO_Init()函数。
    查表:
    《STM32中文参考手册V10》P110的表格“8.1.11外设的GPIO配置”
    在这里插入图片描述

    ====================================================================
    什么是端口重映射?
    为了方便布线,一个外设的引脚除了具有默认的端口外,还可以通过设置重映射寄存器的方式,把这个外设的引脚映射到其它的端口。
    如何查看一个端口具有重映射功能?《STM32中文参考手册V10》的P116页“8.3复用功能和调试配置

    数据手册引脚描述
    在这里插入图片描述
    部分重映射和完全重映射
    部分重映射:功能外设的部分引脚重新映射,还有一部分引脚是原来的默认引脚。
    完全重映射:功能外设的所有引脚都重新映射。
    在这里插入图片描述
    引脚重映射配置过程(串口1为例):

    1. 使能GPIO时钟(重映射后的IO);
    2. 使能功能外设时钟(例如串口1);
    3. 使能AFIO时钟。重映射必须使能AFIO时钟:
      RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE);
      4.开启重映射。
      GPIO_PinRemapConfig(GPIO_Remap_USART1, ENABLE);
      根据第一个参数,来确定是部分重映射还是全部重映射

    哪些情况需要开启AFIO辅助功能时钟?
    对寄存器AFIO_MAPR,AFIO_EXTICRX和AFIO_EVCR进行读写操作前,应当首先打开AFIO时钟。
    AFIO_MAPR:配置复用功能重映射
    AFIO_EXTICRX:配置外部中断线映射
    AFIO_EVCR: 配置EVENTOUT事件输出

    展开全文
  • 【STM32】谈谈STM32F10XX的定时器通道复用功能重映射

    千次阅读 多人点赞 2019-04-14 09:19:50
    关键词:STM32 定时器 重映射 复用 这是我PCB文件原理图中的STM32F103单片机,观察仔细的读者可以看到有些时钟通道重复了多次: 没错,这些就是可配置的定时器通道。在STM32中文参考手册的8.3.7章节...

    写这篇的动机是我每次配置定时器硬件PWM的时候都要翻一遍手册,对着目录找内容实在麻烦,干脆写一篇博文直接pick出这一段。

    本文参考:正点原子提供的STM32中文参考手册

    关键词:STM32 定时器 重映射 复用


    这是我PCB文件原理图中的STM32F103单片机,观察仔细的读者可以看到有些时钟通道重复了多次:

    没错,这些就是可配置的定时器通道。在STM32中文参考手册8.3.7章节介绍了定时器复用功能重映射

    F10xx中具有硬件PWM功能的定时器只有TIM1,TIM2,TIM3,TIM4,我把其中的表格都列出来了:

    举例:

    我要使用TIM3定时器的四个通道分别控制四路电调,他们在设计时连接在PB4、PB5、PB0、PB1上,

    表42可知,此时应该使用TIM3_REMAP[1:0] = 10 (部分重映像) ,所以在时钟开启后,加上一句重映射的语句即可:

    GPIO_PinRemapConfig(GPIO_PartialRemap_TIM3, ENABLE); //Timer3部分重映射  

     

    展开全文
  • STM32Fxx JTAG/SWD复用功能重映射

    千次阅读 2018-03-21 20:07:29
    直接配置GPIOx_MODER为输出,或输入模式即可,但是注意:STM32F4复位后JTAG对应的管脚的GPIOx_MODER值是0x02,即 复用功能!所以直接配置GPIOx_MODER为所需的模式就可以了! 其中调试接口就是系统功能,这样需要禁用...
  • STM32的GPIO的复用功能重映射功能

    万次阅读 2018-11-12 20:02:24
    1、复用功能:内置外设是与I/O口共用引出...2、重映射功能:复用功能的引出脚可以通过重映射,从不同的I/O管脚引出,即复用功能的引出脚位是可通过程序改变到其他的引脚上!   直接好处:PCB电路板的设计人员可以...
  • STM32_基础入门(七)_端口复用重映射
  • 复用重映射的关系

    2021-10-04 23:11:26
    复用是对管脚的第二功能 重映射是让其他管脚来实现本管脚的功能
  • 项目的软件部分完成,准备开始硬件测试,希望不要出太大乱子端口复用1.介绍:在stm32中存在着很多的内置外设(ADC,DAC,串口),为了使得引脚最大利用化,可以将GPIO口复用为其他内部外设的引脚.2.复用端口的步骤:1....
  • 关于GPIO复用以及重映射

    千次阅读 2022-03-27 15:26:39
    1. 对于USART1串口的使用,有两种映射方法——无重映射,和完全重映射(部分重映射只有一部分功能有,具体那些功能有可以参考STM32F10x参考手册中的以下内容)
  • 端口复用重映射都是和单片机的I/O口有关系,端口复用是将一个I/O赋予多个功能,通过设置I/O的工作模式来切换不同功能重映射是将某些I/O口上面的功能映射到其他I/O口上面去。但是注意一点:重映射的I/O都是厂家...
  • 端口的复用重映射 什么的端口的复用? STM32端口复用在那里查找? 端口复用如何配置? 将GPIOA的PB9端口复用为USARTI_TX串口发送功能要进行如下操作 第一步:GPIOx端口使能 第二步:USARTx端口使能 第三步...
  • stm32引脚功能
  • 端口复用 STM32的端口复用是非常简单的 STM32板有许多的外设,比如ADC,USART,红外模块,温度传感器的插口等。为了让单片机外部引脚达到更高的利用,所以
  • 重新加深STM32F103系列GPIO的复用重映射功能,结合“正点原子”相关教材和《STM32中文参考手册》,写了这边关于GPIO的总结文档,防止自己忘记后有迹可查。
  • 简单的讲就是把管脚的外设功能映射到另一个管脚,但不是可以随便映射的 重映射我们同样要使能复用功能的时候讲解的 2 个时钟外,还要使能 AFIO 功能时钟,然后 要调用重映射函数。详细步骤为: 使能 GPIOB 时钟: ...
  • stm32端口复用重映射

    万次阅读 多人点赞 2018-04-01 11:35:43
    端口复用重映射都是和单片机的I/O口有关系,端口复用是将一个I/O赋予多个功能,通过设置I/O的工作模式来切换不同功能重映射是将某些I/O口上面的功能映射到其他I/O口上面去。但是注意一点:重映射的I/O都是厂家...
  • 下面跟大家说一下STM32单片机的端口重映射,因为是以自己为实例.这里是以USART1的重映射为例..因为我要一个TFT_LCD屏的主控板,考虑到FSMC 我选用了STM32F103VCT6 型号的CPU,一不小心串口接到USART1上了.因为在调程序...
  • 端口复用重映射

    2020-01-12 19:51:10
    PA9 PA10就是端口复用,只用通过端口复用,才可以实现丰富强大的外设功能 以PA9 PA10复用为例: 端口重映射基本定义 例如:PA2 PA3为串口2的发送 接收引脚,但也可以映射到PD5 PD6引脚 端口重映射...
  • 引脚复用和引脚重映射

    千次阅读 2021-08-16 16:49:39
    (部分重映射:部分管脚重新映射到其他管脚;完全重映射:所有管脚都重新映射到其他管脚;) 1 端口复用功能 所以,我们在使用复用功能的是时候,最少要使能2 个时钟: 1) GPIO时钟使能 2) 复用的外设时钟使能 ...
  • 复用功能重映射

    2016-05-17 13:14:00
    下面跟大家说一下STM32单片机的端口重映射,因为是以自己为实例.这里是以USART1的重映射为例.. 因为我要一个TFT_LCD屏的主控板,考虑到FSMC 我选用了STM32F103VCT6 型号的CPU,一不小心串口接到USART1上了.因为在调...
  • 目录:一、端口复用二、端口重映射 一、端口复用   STM32 有很多的内置外设,这些外设的外部引脚都是与 GPIO 复用的。也就是说,一个 GPIO如果可以复用为内置外设的功能引脚,那么当这个 GPIO 作为内置外设使用的...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,320
精华内容 928
关键字:

不同复用功能的重映射