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—— 一灯大师之库函数版

推荐阅读最新更新时间:2024-11-16 23:41

STM32使用不同的晶振需修改的代码
第一步,打开stm32f10x.h,将 #define HSE_VALUE ((uint32_t)8000000) /*! Value of the External oscillator in Hz */ 修改为: #define HSE_VALUE ((uint32_t)12000000) /*! Value of the External oscillator in Hz */ 第二步,打开system_stm32f10x.c,修改PLL参数,将 /* PLL configuration: PLLCLK = HSE * 9 = 72 MHz */ RCC- CFGR &= (uint
[单片机]
STM32输出 PWM频率 占空比 连续可调
话不多说 直接上代码 我的平台是 stm32F407VGT6 PA0 输出 使用定时器TIM2 //编程输出可调的硬件PWM,频率范围1Hz - 1MHz,占空比0 - 100 % uint32_t TIM2_PWM_FQ = 50; /* TIM2_CH1_PWM输出 频率设置值,1-1000000 */ uint32_t TIM2_PWM_FQ_Old = 0; uint16_t TIM2_PWM_Pulse = 50; /* TIM2_CH1_PWM输出 占空比设置值,0-100 */ uint16_t TIM2_PWM_Pulse_Old = 0; uint32_t SystemCoreC
[单片机]
STM32单片机的FSMC对TFT的驱动
一、FSMC之我见 开始只是谈到别人对FSMC的理解,注意这里只讨论FSMC控制TFT,也就是在FSMC的NORPSRAM模式控制LCD,所以我们以下的分析都是基于这种模式的。 1、我们之前通过使用GPIO来模拟8080/6800时序从而达到驱动彩屏的,同样需要明白的一点就是我们也只是使用FSMC来模拟8080/6800时序,只不过这个读写速度有些快(使用了总线嘛),仅此而已! 简单一点就是:8080是通过“读使能(RE)”和“写使能(WE)”两条控制线进行读写操作。 6800是通过“总使能(E)”和“读写选择(W/R)”两条控制线进行 2、那么了解到FSMC的三总线如下! 数据线:这个可以分为8位的和16位,这个不难
[单片机]
<font color='red'>STM32</font>单片机的FSMC对TFT的驱动
STM32CubeMX系列教程
STM32Cube 是一个全面的软件平台,包括了ST产品的每个系列。平台包括了STM32Cube 硬件抽象层(一个STM32抽象层嵌入式软件,确保在STM32系列最大化的便携性)和一套的中间件组件(RTOS, USB, FatFs, TCP/IP, Graphics, 等等). 直观的STM32微控制器的选择和时钟树配置 微控制器图形化配置外围设备和中间件的功能模式和初始化参数 C代码生成项目覆盖STM32微控制器的初始化符合IAR™,Keil的™和GCC编译器。 对于新的产品设计,我们强烈推荐使用STM32Cube来加速你的开发过程,并为以后的产品平台移植打下良好的基础。 1.新建工程 打开STM32cubeMX软件,点
[单片机]
STM32CubeMX系列教程
STM32直接操作寄存器点亮第一个LED灯
来做个实验:不依赖任何库,直接操作寄存器点亮第一个LED灯 分析上图可知,四个led灯等分别连接着STM32F407的四个引脚,引脚输出低电平,led亮,输出高电平,led灭 因为STM32与51单片机不同,它多一个时钟系统,旨在产生不同频率供不同设备使用,使用之前,必须先开启对应的时钟,所以在控制GPIO寄存器之前,我们要先打开GPIOF组的时钟 通过查找《STM32F4xx中文参考手册》第53页得知,RCC的基地址(也就是起始地址)为0x40023800,在135页查得其外设时钟使能寄存器的偏移地址为0x30,该偏移是相对于RCC基地址的偏移,因此计算外设时钟使能寄存器的地址为: RCC_AHB1ENR = R
[单片机]
<font color='red'>STM32</font>直接操作寄存器点亮第一个LED灯
再造STM32---第十部分:GPIO输入—按键检测
本章参考资料:《STM32F4xx 参考手册》、库帮助文档《stm32f4xx_dsp_stdperiph_lib_um.chm》。 按键检测使用到 GPIO 外设的基本输入功能,本章中不再赘述 GPIO 外设的概念,如您忘记了,可重读前面“GPIO 框图剖析”小节, STM32 标准库中 GPIO 初始化结构体GPIO_TypeDef 的定义与“定义引脚模式的枚举类型”小节中讲解的相同。 10.1 硬件设计: 按键机械触点断开、闭合时,由于触点的弹性作用,按键开关不会马上稳定接通或一下子断开,使用按键时会产生图 10-1 中的带波纹信号,需要用软件消抖处理滤波,不方便输入检测。本实验板连接的按键带硬件消
[单片机]
再造STM32---第十部分:GPIO输入—按键检测
IAR环境下ucosii在STM32上的移植
Ucosii移植到STM32上 1.使用的开发环境是IAR 5.4 STM32芯片为STM32F103ZET6 使用ST官方提供的标准固件库,建立工程, 我下载的苦艰苦的版本为STM32F10x_StdPeriph_Lib_V3.5.0,里面的文件分布为: 其中,Libraries文件夹里面放的是标准库文件,Project文件夹里面放的是STM32的各个外设的使用范例和一个工程模板,Utilities文件夹里面放的是ST公司的评估板例子,剩下的文件就是教我们怎样使用标准库,而我们主要使用的就是Libraries和Project里面的文件。 1.1首先新建stm32这个文件夹,在里面再新建3个文件夹include,proj
[单片机]
Keil实现对意法半导体STM32互联系列的支持
Keil公司宣布其产品Keil MDK-ARM(微控制器开发套件)及RL-ARM(实时库)实现了对意法半导体STM32互联系列的支持。Keil公司同时推出了新的MCBSTEM32C评估板和开发套件。 STM32 互联系列基于ARM® Cortex™-M3处理器,具有全速USB OTG、两个CAN2.0B接口、10/100以太网(含对IEEE1588精密时间协议 (PTP)的硬件支持)。该产品同STM32家族的其他产品采用同样的外设,因此能够轻松实现项目移植,并有高达256KB的闪存和64KB的SRAM。 MDK-ARM 最新版本的的MDK-ARM支持所有的STM32产品,它包括配置文件、设备专有视图以
[单片机]
Keil实现对意法半导体<font color='red'>STM32</font>互联系列的支持
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

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

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved