stm32——端口重映射

最新更新时间:2022-09-30来源: csdn关键字:stm32  端口重映射  复用功能 手机看文章 扫描二维码
随时随地手机看文章

我们先来看什么是复用功能?

我们在《stm32f103rc_datasheet.pdf》中可以看到对I/O口的功能描述表格


比如:PC10 I/O口,UART4_TX与SDIO_D2功能都是PC10 I/O口的复用功能。也就是说,PC10 I/O口不仅仅只能进行由内核控制的输入/输出功能,还可以进行由片上外设控制的UART4_TX与SDIO_D2功能。注意:UART4_TX与SDIO_D2功能是来自不同模块的功能。


当我们使用复用功能UART4_TX时,那么PC10 I/O口就由UART外设模块控制,此时PC10 I/O口输入/输出的数据就都来自于UART外设模块了,而不是来自于内核或者其他外设模块。


注意:下图中BGA144、BGA100、LQFP144,表示该表引脚功能还可以适用于BGA144、BGA100、LQFP144封装的芯片。

什么是端口重映射?

1、复用功能:片内外设(如:I^2C UART ADC等)是与I/O口共用引出管脚(不同的功能对应同一管脚)stm32所有内置外设的外部引脚都是与标准GPIO引脚复用的,如果有多个复用功能模块对应同一个引脚,只能使能其中之一,其它模块保持非使能状态。


2、重映射功能:复用功能的引出脚可以通过重映射,从不同的I/O管脚引出,即复用功能的引出脚位是可通过程序改变到其他的引脚上!


实际上就是:

 

如红框中的PD12引脚,它规定这个引脚所占用的复用功能为TIM4_CH1和UART3。


假设现在,PD12 I/O口被设备1所占用。那么如果此时我想使用UART3功能,我只能使用PD12端口的复用功能,但是PD12端口已经被设备1占用了,那么就无法使用UART3功能了。


所以,为了使资源被更加全面的使用,芯片厂家就开发出UART3还可以被其他端口使用的方法,如下图:

当PD12端口被占用的时候,我们还可以通过PB10端口来使用UART3功能。这就是重映射。(注意:一个功能不能被两个端口同时使用)


当我们将UART3功能重映射到PB10端口上面时,就会阻断UART3功能与PD12的连接,此时PD12就不能再使用UART3功能了:



我们还可以看到,TIM3_CH1、TIM3_CH2、TIM3_CH2分别是PA6、PA7、PB0端口的复用功能。

 现在我们看到,TIM3_CH1、TIM3_CH2、TIM3_CH2功能还可以经过重映射,映射到PC6、PC7、PC8端口上,由PC6、PC7、PC8端口来使用这些功能。注意:在进行重映射后,原先的PA6、PA7、PB0端口就不能使用TIM3_CH1、TIM3_CH2、TIM3_CH2功能了。

由参考手册——通用和复用功能I/O章节知道,没有重映射的时候,UART3_CK为PB12引脚的复用功能。我们如果使用部分重映射,将UART3_CK重映射到PC12引脚,这样就可以通过PC12来使用UART3_CK功能了。我们还可以使用完全重映射,通过PD10引脚来使用UART3_CK功能。


部分重映射:由图知,如果我们选择部分重映射,那么对于UART3功能的PB端口,有一部分UART3功能可以映射到PC端口上面,另外一部分还是在PB端口上。


完全重映射:如果我们选择完全重映射,对于UART3功能的PB端口,UART3功能全部都映射PD端口上面去。

关键字:stm32  端口重映射  复用功能 编辑:什么鱼 引用地址:stm32——端口重映射

上一篇:STM32外围电路硬件解析
下一篇:stm32f103 GPIO—— 一灯大师之库函数版

推荐阅读

STM32入门系列-开发工具keil5安装
主要介绍如下三部分内容:keil5软件获取keil5安装安装STM32芯片包软件获取可以通过搜索引擎搜索关键字“KEIL5下载”,找到其官方网站http://www.keil.com。我们这里使用MDK5.14版本,如果后面出了更高的版本选择性升级即可,不过也没有必要什么都追求最新的,这一个软件用着习惯就行。登录armkeil官方网站,网站首页有软件下载连接,在这里我们选择MDK-Arm。会让你先注册,注册完成之后就可以开始下载了。软件安装安装此软件时一定要注意以下几点:安装路径不能带中文,必须是英文路径。安装目录不能跟51的KEIL或者KEIL4冲突,三者目录必须分开。KEIL5的安装比起KEIL4多了一个步骤,必须添加芯片包,不
发表于 2022-11-18
<font color='red'>STM32</font>入门系列-开发工具keil5安装
STM32入门系列-存储器与寄存器介绍
介绍两部分内容:什么是存储器映射什么是寄存器及寄存器映射为了让大家对存储器与寄存器有一个更清楚的认识,并且为之后使用 C 语言来访问 STM32 寄存器内容打下基础。等明白了如何使用 C 语言封装底层寄存器,也就为后面学习库函数的开发做好了铺垫。什么是存储器映射程序存储器、数据存储器、寄存器和I/O端口排列在同一顺序的4GB地址空间内。这就是我们曾提到过的被控总线的连接部分,而编程时就是操作这一块地方。存储器本身不具有地址信息,它的地址是由芯片厂商或用户分配,给存储器分配地址的过程称为存储器映射,如果再分配一个地址就叫重映射。 STM32F103ZET6 数据手册中存储器映射图如下所示。从上图中可以看到 ARM 把这 4GB 的存储
发表于 2022-11-18
STM32入门系列-GPIO概念介绍
GPIO(general purpose intput output)是通用输入输出端口的简称,可以通过软件来控制其输入和输出。STM32 芯片的 GPIO 引脚与外部设备连接起来,从而实现与外部通讯、控制以及数据采集的功能。不过 GPIO 最简单的应用还属点亮 LED 灯了,只需通过软件控制 GPIO 输出高低电平即可。当然 GPIO 还可以作为输入控制,比如在引脚上接入一个按键,通过电平的高低判断按键是否按下。其中STM32F103xC、STM32F103xD和STM32F103xE有144个引脚的芯片如下图所示。那么是不是所有引脚都是 GPIO 呢?当然不是,STM32 引脚可以分为这么几大类:电源引脚:引脚图中的 VDD、V
发表于 2022-11-18
STM32入门系列-GPIO结构
已经了解了STM32 GPIO的基本概念及引脚分类。现在来看下STM32 GPIO内部的结构是怎样的。IO端口位的基本结构如下图所示。从图中可以看出GPIO内部结构还是比较复杂的,只要将这张GPIO结构图理解好,那么关于GPIO的各种应用模式将非常清楚。图中最右端I/O端口就是STM32芯片的引脚,其它部分都在STM32芯片内部。上图中我们将每部分都用红色数字标号了,按照顺序我们逐一讲解。保护二极管引脚内部加上这两个保护二级管可以防止引脚外部过高或过低的电压输入,当引脚电压高于VDD_FT或VDD时,上方的二极管导通吸收这个高电压,当引脚电压低于VSS时,下方的二极管导通,防止不正常电压引入芯片导致芯片烧毁。尽管STM32芯片内部有
发表于 2022-11-18
<font color='red'>STM32</font>入门系列-GPIO结构
STM32入门系列-创建寄存器模板
介绍如何使用 KEIL5 软件创建寄存器模板, 方便之后使用寄存器方式来操作STM32开发板上的LED,让大家创建属于自己的寄存器工程模板。获取工程模板的基础文件首先我们在电脑任意位置创建一个文件夹,命名为“寄存器模板创建”,然后在其下面新建 2 个文件夹,如下:Obj 文件夹: 用于存放编译产生的 c/汇编/链接的列表清单、 调试信息、hex文件、预览信息、封装库等文件。User 文件夹: 用于存放用户编写的 main.c、 STM32F1 启动文件、stm32f10x.h头文件。我们需要将寄存器工程模板所需的基础文件 main.c、STM32F1 启动文件及stm32f10x.h 头文件放入到 User 文件夹内。在工程实例的U
发表于 2022-11-18
<font color='red'>STM32</font>入门系列-创建寄存器模板
STM32入门系列-使用C语言封装寄存器
前面介绍了存储器映射、寄存器和寄存器映射,这些都是为了介绍使用 C语言封装寄存器做铺垫。这里我们通过一个实例来对 C 语言封装寄存器进行介绍。具体实例:控制 GPIOC 端口的第 0 管脚输出一个低电平。首先我们需要知道GPIOC 端口外设是挂接在哪个总线上的,然后根据总线基地址和本身的偏移地址得到 GPIOC 外设基地址,最后通过这个外设基地址得到里面各种寄存器基地址。总线和外设基地址封装根据寄存器的概念,我们可以使用 C 语言中的宏定义对寄存器进行定义。具体代码如下://定义外设基地址#define PERIPH_BASE ((unsigned int)0x40000000) 1)//定义 APB2 总线基地址#define A
发表于 2022-11-18
小广播
设计资源 培训 开发板 精华推荐

何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2022 EEWORLD.com.cn, Inc. All rights reserved