最近在学习STM32,看到一篇关于的串口通信文章里有这么一段代码:

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD | RCC_APB2Periph_AFIO,ENABLE);

当初是参考开发的里子写的一直对GPIOD或上“RCC_APB2Periph_AFIO”这句话的意思没搞懂,通过这几天在网上查找资料和看手册,终于高清楚了,不敢独享,希望能对跟我一样的新手有所帮助吧o(∩_∩)o…

STM32上有很多I/O口,也有很多的内置外设想I2C,ADC,ISP,USART等 ,为了节省引出管脚,这些内置外设基本上是与I/O口共用管脚的,也就是I/O管脚的复用功能。但是STM32还有一特别之处就是:很多复用内置的外设的I/O引脚可以通过重映射功能,从不同的I/O管脚引出,即复用功能的引脚是可通过程序改变的。知道了这些我们就不难理解上面代码的意思了,程序中用到的USART2外设的TX,RX分别对应PA2,PA3,但是我的学习板上的PA2,PA3引脚接了其他设备,但是为了还要用USART2,“RCC_APB2Periph_GPIOD |RCC_APB2Periph_AFIO”就打开了GPIOD重映射功能把USART2设备的TX,RX映射到PD5,PD6上,我们在这两个引脚上接上MAX232串口芯片就可以使用USART2串口通信了。那为看官该问:“USART2是不是可以映射到任意管脚呢?”答案是否定的,它只能映射到固定的管脚。

其他外设的重映射可以参考STM32100X手册。

为了节省IO资源单片机会在一个IO上复用很多功能,一般的单片机用到 一个功能后就能再用两外复用的功能了,这就体现出了STM32 GPIO的强大功能了,我们用重映射的方法把其中一个外设映射到其他IO脚上,这样就可以充分利用片内资源!


STM32管脚的复用和重定义功能(RCC_APB2Periph_AFIO)相关推荐

  1. Oracle11g新特性:在线操作功能增强-Oracle11g在线重定义功能对物化视图... (转载)

    Oracle的在线重定义功能就是利用了物化视图的功能,通过物化视图日志的记录功能,来同步目标表和基表的数据.因此,在11g以前,建立了物化视图日志的表是无法进行在线重定义操作的: SQL> CR ...

  2. STM32F103ZET6【标准库函数开发】------PB3,PB4当做普通IO口,重定义

    一.如题,我在设计原理图的时候将PB3和PB4当做了普通IO口,结果按照一般配置的方法操作后,PB3 PB4并没有输出自己想要的信号,配置如下: void MOTOR_GPIO_Init(void)/ ...

  3. ORACLE 普通表转换成分区表(在线重定义)

    在一个高可用系统中,如果需要改变一个表的定义是一件比较棘手的问题,尤其是对于7×24系统.Oracle提供的基本语法基本可以满足一般性修改,但是对于把普通堆表改为分区表,把索引组织表修改为堆表等操作就 ...

  4. Oracle 11gR2 在线重定义(online redefinition)

    在Oracle9i出现之前,你只能通过MOVE或导出和导入的方式来进行表的重定义,因此表重定义的过程可能相当漫长或者说是一个离线过程,在此期间应用程序对该表的操作将失败.除了这个,如果用exp,我们也 ...

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

    STM32 端口复用与重映射及低功耗引脚配置 什么是复用? 在TSM32里面,大部分的引脚都是有GPIO复用功能,也就是说,一个 GPIO如果可以复用为内置外设的功能引脚,那么当这个 GPIO 作为内 ...

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

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

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

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

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

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

  9. stm32端口复用和重映射

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

  10. STM32CUBEMX配置教程(八)STM32串口轮询发送中断接收+重定义+优化

    STM32CUBEMX配置教程(八)STM32串口轮询发送中断接收+重定义+优化 基于STM32H743VI 使用STM32CUBEMX两年了,始终觉得这个工具非常的方便,但因为不是经常使用,导致有些 ...

最新文章

  1. iOS UILabel UITextView自适应文本,或文本大小自适应
  2. Disruptor之概览
  3. Windows 驱动开发资源链接
  4. 编译Tomcat9源码【转】
  5. 分布式数据库技术基础:分布透明性相关知识
  6. python命令行tab补全_python命令行下按tab建补全的方法
  7. sql组合索引和独立索引_SQL索引概述和策略
  8. 集团OA是什么?大型企业OA系统选型指南
  9. 基于多线程的Linux聊天室系统设计(C语言实现)
  10. 广义圆方树+树链剖分+set(Codeforces Round #278 (Div. 1): E. Tourists)
  11. java学习软件_刚学习java,用哪些学习软件比较好?
  12. SAP MTO生产模式和计划策略组
  13. python模拟登录淘宝参数在哪获取_如何用 Python 模拟登录淘宝?
  14. 设置cookie存活时间_Cookie所有知识点
  15. Hibernate类的继承使用joined-class实现
  16. 64位平台C/C++开发注意事项
  17. Java实现标题相似度计算,文本内容相似度匹配,Java通过SimHash计算标题文本内容相似度
  18. [置顶] XMPPFrameWork IOS 开发(六)聊天室
  19. 综合案例:实现注册、登录和跳转到主页面的功能。
  20. Python + Tkinter:图片浏览器(二)

热门文章

  1. SolidWorks2021导出带材质的OBJ文件
  2. TJA1101汽车网卡调试
  3. Delphi中@,^,#,$特殊符号意义
  4. oracle函数创建及调用
  5. 我国计算机科学与技术发展历史,计算机科学与技术的发展趋势探析
  6. 这次是90城的数据!中国90座城市建筑物屋顶矢量数据集(2020)
  7. JESD204B时钟网络
  8. 【软件测试岗面经分享】华为测试工程师面经,已成功上岸
  9. JAVA之MySQL数据库增删改查【Java入门练手】
  10. 修改k8s的集群域名后缀