STM32 端口复用与重映射及低功耗引脚配置

什么是复用?
在TSM32里面,大部分的引脚都是有GPIO复用功能,也就是说,一个 GPIO如果可以复用为内置外设的功能引脚,那么当这个 GPIO 作为内置外设使用的时候,就叫做复用。
配置步骤
详细步骤为:

1)首先 GPIO 端口时钟使能。因为要使用到端口复用,当然要使能该端口的时钟了。
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);
2)复用的外设时钟使能。比如你要将端口 PA9,PA10 复用为串口,所以要使能串口时钟。
RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1, ENABLE);
3)端口模式配置。 
在 IO 复用位内置外设功能引脚的时候,必须设置 GPIO 端口的模式,至于在复用功能下 GPIO 的模式是怎么对应的,这个可以查看手册《STM32 中文参考手册 V10》(根据引脚配置不同的)
总结:我们在使用复用功能的是时候,最少要使能 2 个时钟!!!!

什么是重映射?
为了使不同器件封装的外设 IO 功能数量达到最优,可以把一些复用功能重新映射到其他一些引脚上,目的为了让设计工程师可以更好地安排引脚的走向和功能,在 STM32 中引入了外设引脚重映射的概念,即一个外设的引脚除了具有默认的端口外,还可以通过设置重映射寄存器的方式,把这个外设的引脚映射到其它的端口。简单的讲就是把管脚的外设功能映射到另一个管脚去使用,但是不是可以随便映射的,根据手册是否可以映射。
配置步骤
1)使能 GPIOB 时钟:
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);
2)使能串口 1 时钟:

RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1, ENABLE);//因为用到了复用功能,则要使能时钟
3)使能 AFIO 时钟:

RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE);
4)开启重映射:

GPIO_PinRemapConfig(GPIO_Remap_USART1, ENABLE);
5)端口模式配置:

低功耗引脚配置:

1.将未使用的GPIO输入配置为模拟输入

GPIO始终有一个输入通道,可以是数字或模拟通道。

如果不需要读取GPIO数据,则优先配置为模拟输入。这节省了输入施密特触发器的消耗。

当 I/O 端口被配置为模拟输入配置时:
  输出缓冲器被禁止
  禁止施密特触发输入,实现了每个模拟I/O引脚上的零消耗。施密特触发输出值被强
置为’0’
  弱上拉和下拉电阻被禁止
  读取输入数据寄存器时数值为’0’。

2.调节GPIO速度

上升时间,下降时间和最大频率可使用GPIOx_OSPEEDR配置寄存器进行配置。

这种调整对EMI(电磁干扰)和SSO(同时开关输出)有影响,因为开关电流峰值较高。因此必须平衡GPIO性能与噪声。

每个GPIO信号的上升时间和下降时间必须适应与相关信号频率和电路板容性负载兼容的最小值。

3.不使用时禁用GPIO寄存器时钟

如果某个GPIO组不需要长时间使用,请使用HAL_RCC_GPIOx_CLK_DISABLE()函数禁用其时钟。

4.进入低功耗模式时配置GPIO

进入低功耗模式时,所有引脚信号必须连接到VDD或接地。

如果GPIO连接到外部接收器(外部元件输入),则必须使用PP或PU/PD强制GPIO信号值。

当GPIO连接到驱动器(外部元件输出或总线)时,驱动器必须提供有效电平( VDD或接地)。如果未定义驱动器电平,则必须使用PU/PD强制GPIO上的信号。

出于实际原因,当GPIO是运行模式下的输入(模拟或数字)时,在低功耗模式下使用输入PU/PD可能更容易;当GPIO是运行模式下的输出时,则使用输出PP。这可以避免在进入或退出停止模式时管理更改。

5.退出关机模式

退出关机模式时, GPIO会在上电复位时重新配置为默认值。

在将它们重新编程为正确值之前,这会需要额外的系统消耗。

如果这是应用程序的问题,则必须使用待机模式替代关机模式。

STM32 端口复用与重映射及低功耗引脚配置相关推荐

  1. STM32——端口复用与重映射

    目录 端口复用的概念 内置外设的概念 端口复用的概念 端口复用的配置 配置示例(串口1) 复用GPIO的配置 STM32中文参考手册 110页 端口重映射概念 端口重映射概念 部分重映射 完全重映射 ...

  2. stm32端口复用和重映射

    相关描述在参考手册 通用和复用功能I/O  General-purpose and alternate-function I/Os(GPIOs and AFIOs)里有详细介绍 端口复用或许没听过详细 ...

  3. Stm32端口复用与重映射

    概述 微控制器 I/O 引脚通过一个复用器连接到板载外设/模块,该复用器一次仅允许一个外设的复 用功能 (AF) 连接到 I/O 引脚.这可以确保共用同一个 I/O 引脚的外设之间不会发生冲突.    ...

  4. STM32之端口复用与重映射

    STM32 --端口复用和重映射 首先来说下什么是端口复用. STM32有很多的内置外设,这些外设的外部引脚都是与GPIO复用的.也就是说,一个GPIO如果可以复用为内置外设的功能引脚,那么当这个GP ...

  5. 12_JLink在线调试_软件调试方法和端口复用和重映射

    JTAG/SWD调试原理简析 STM32F10xxx使用Cortex-M3内核,该内核内含硬件调试模块,支持复杂的调试操作.硬件调试模块允许内核在取指(指令断点)或访问数据(数据断点)时停止.内核停止 ...

  6. STM32学习笔记(三)端口复用与重映射(stm32c8t6)

    记录一下学习过程 1.端口复用 STM32有很多内置外设,这些外设的外部引脚是与GPIO复用的.默认情况下,这些GPIO口只能作为普通的IO口输入输出,把一个GPIO口的引脚复用为内置外设的功能引脚, ...

  7. stm32之端口复用和重映射

    文章目录 端口复用 端口重映射 端口复用 WHAT IS 端口复用? 一个GPIO如果可以复用为内置外设的功能引脚,那么当这个GPIO作为内置外设使用的时候,就叫做复用 端口复用配置过程(以串口1位例 ...

  8. 【STM32】端口复用和重映射,完全重映射,部分重映射

    文章目录 端口复用 端口复用函数总结 端口重映射 完全重映射 完全重映射函数总结 部分重映射 端口复用 当 PA9,PA10 引脚作为串口 1 的 TX,RX 引脚使用的时候,那就是端口复用(相较于作 ...

  9. 端口复用和重映射--STM32F103

    什么是端口复用? STM32中有很多内置外设,这些外设的引脚都是与GPIO复用的,什么时候复用呢?就是当一个GPIO作为内置外设引脚使用时,就叫做复用.比如串口1的发送接收引脚是PA9,PA10,当P ...

最新文章

  1. 深度学习:梯度下降算法改进
  2. jstat命令查看tomcat进程提示进程没找到(PID not found
  3. 标号的类型是near还是far有什么区别,作用是什么?
  4. 自制一个 elasticsearch-spring-boot-starter
  5. 【BZOJ】 2463 [中山市选2009]谁能赢呢?(博弈论)
  6. qt布局嵌套_PyQt5 笔记(01):嵌套布局
  7. python初步学习-查看文档及数据类型转换
  8. 【三维装箱】基于matlab遗传和模拟退火算法求解三维装箱优化问题【含Matlab源码 031期】
  9. 使用Web界面登陆vSphere
  10. 观察者模式与发布订阅者模式的区别
  11. 自己设计完成的一个小区停车管理系统
  12. 如何查询OS、CPU、内存、硬盘信息
  13. 这些年的项目管理心得
  14. 语音识别中声学模型训练过程-GMM(一)
  15. CSS3权威指南读书笔记
  16. 长白县积极建设精准扶贫云平台
  17. vim制作python3编辑器
  18. 安装与下载 Android studio(以下为处理器是Intel的安装方法,下载前请检查一下自己的CPU为AMD 还是Intel的)
  19. RISCV MMU 概述
  20. [C]循环语句(5/7)→ 用do……while语句循环

热门文章

  1. 手把手实现YOLOv3(二)
  2. Git 学习笔记:自定义Git(完)
  3. 在python中嵌入c/c++
  4. 详解平衡二叉树(AVL),红黑树与平衡二叉树的区别
  5. leetcode_median of two sorted arrays
  6. 组会PPT202006220717《双研究步骤的螺旋波等离子体放电结果分析》
  7. [云炬创业基础笔记]第二章创业者测试5
  8. [云炬创业基础笔记]第一章创业环境测试3
  9. [云炬商业计划书阅读分享] 珠江啤酒公司企业文化调查
  10. 能源15A1,A2燃烧学期末试题2018-01-02