STM32之端口复用与重映射
STM32 ——端口复用和重映射
首先来说下什么是端口复用。
STM32有很多的内置外设,这些外设的外部引脚都是与GPIO复用的。也就是说,一个GPIO如果可以复用为内置外设的功能引脚,那么当这个GPIO作为内置外设使用的时候,就叫做复用。
其实说白了,简单易懂的说,就是某些普通的外设引脚也可以用来其它功能。比如说那我使用的正点原子哥的板子来说吧,串口1 的发送接收引脚是PA9,PA10,当我们把PA9,PA10不用作普通的GPIO口,而用做复用功能串口1的发送接收引脚的时候,叫端口复用。
接下来说下端口复用的配置过程
首先,GPIO端口时钟使能。(这个不管用不用端口复用,要使用某个IO口必须要对时钟进行使能)
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);
- 1
接下来就是你要使能复用外设时钟。(这里以串口1为例)
RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1, ENABLE);
- 1
- 2
接下里就是端口模式配置。 GPIO_Init()函数。
GPIO_InitTypeDef GPIO_InitStructure;GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9; //PA.9GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;//复用推挽输出GPIO_Init(GPIOA, &GPIO_InitStructure);//初始化GPIOA.9GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10;//PA10GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;//浮空输入GPIO_Init(GPIOA, &GPIO_InitStructure);//初始化GPIOA.10
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
这个可以参考(这里仅仅贴出了串口和定时器的端口配置模式)
以上就是端口复用的配置。
接下来说下什么是重映射。
每个内置外设都有若干个输入输出引脚,一般这些引脚的输出端口都是固定不变的,为了让设计工程师可以更好地安排引脚的走向和功能,在STM32中引入了外设引脚重映射的概念,即一个外设的引脚除了具有默认的端口外,还可以通过设置重映射寄存器的方式,把这个外设的引脚映射到其它的端口。
为了使不同器件封装的外设IO功能数量达到最优,可以把一些复用功能重新映射到其他一些引脚上。STM32中有很多内置外设的输入输出引脚都具有重映射(remap)的功能。
打个比方说,串口1的TX,RX引脚是在PA9,和PA10端口,但是同时它有两个映射端口PB6,PB7。开启重映射,PB6和PB7同样可以使用串口1。
详情可参考下表关于串口1和串口2的重映射表。
此外,还有有一个部分重映射,所谓部分重映射,顾名思义,就是有部分的端口进行了重映射。
比如time1(当做部分映射时,TIM1_BKIN为PA6引脚,而作为完全重映射是为PE15引脚而TIM1_ETR一直为PA12引脚)
接下来还是以串口1为例写下配置过程。
首先,使能GPIO时钟(注意:重映射后的IO);
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);
- 1
接下来是使能功能外设时钟;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1, ENABLE);
- 1
然后是使能AFIO时钟:
RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE);
- 1
- 2
这里注明下为什么要使能这个AFIO时钟。
对寄存器AFIO_MAPR,AFIO_EXTICRX和AFIO_EVCR进行读写操作前,应当首先打开AFIO时钟。
AFIO_MAPR:配置复用功能重映射
AFIO_EXTICRX:配置外部中断线映射
AFIO_EVCR: 配置EVENTOUT事件输出
最后要开启重映射:
GPIO_PinRemapConfig(GPIO_Remap_USART1, ENABLE);
- 1
- 2
之后只需要再次初始化GPIO端口即可。
以上也就是端口重映射的配置过程了。
http://www.taodudu.cc/news/show-1453877.html
相关文章:
- Android学习之为按钮添加事件监听器的两种方法
- Android学习之单选按钮
- Android学习之Activity
- 计算机三级嵌入式系统之常考指令
- HC-05蓝牙模块AT指令调试
- 51单片机定时器初值的计算
- 计算机三级嵌入式系统易错题总结
- 直流电机PID调节——P
- MATLAB中的线性插值
- MATLAB图像处理之二值化以及灰度处理
- MATLAB图像处理之图像的像素矩阵
- MATLAB图像处理之图像边缘提取
- Windows操作系统下使用pip安装pygame
- Python报错:AttributeError
- 使用pyinstaller把pyton文件打包成exe文件
- 对互信息量的理解
- C++中cout流的输出顺序
- MATLAB基本信号的产生
- 模拟角频率和数字角频率的关系
- FFT变换频谱图中频率刻度的设置方法
- FFT变换频谱图中幅值的设置方法
- matlab设计模拟高通滤波器
- 负频率是怎么来的
- Keil5的仿真调试
- 谷歌浏览器怎么网页截图
- STM32部分功能所在文件位置
- 单片机上电总是立即执行按键程序
- 蓝桥杯比赛的RTC时钟配置
- IO口复用时钟的配置
- 不能正常判断按键函数中的Flag
STM32之端口复用与重映射相关推荐
- stm32之端口复用和重映射
文章目录 端口复用 端口重映射 端口复用 WHAT IS 端口复用? 一个GPIO如果可以复用为内置外设的功能引脚,那么当这个GPIO作为内置外设使用的时候,就叫做复用 端口复用配置过程(以串口1位例 ...
- 【STM32】端口复用和重映射,完全重映射,部分重映射
文章目录 端口复用 端口复用函数总结 端口重映射 完全重映射 完全重映射函数总结 部分重映射 端口复用 当 PA9,PA10 引脚作为串口 1 的 TX,RX 引脚使用的时候,那就是端口复用(相较于作 ...
- STM32 端口复用与重映射及低功耗引脚配置
STM32 端口复用与重映射及低功耗引脚配置 什么是复用? 在TSM32里面,大部分的引脚都是有GPIO复用功能,也就是说,一个 GPIO如果可以复用为内置外设的功能引脚,那么当这个 GPIO 作为内 ...
- 12_JLink在线调试_软件调试方法和端口复用和重映射
JTAG/SWD调试原理简析 STM32F10xxx使用Cortex-M3内核,该内核内含硬件调试模块,支持复杂的调试操作.硬件调试模块允许内核在取指(指令断点)或访问数据(数据断点)时停止.内核停止 ...
- STM32学习笔记(三)端口复用与重映射(stm32c8t6)
记录一下学习过程 1.端口复用 STM32有很多内置外设,这些外设的外部引脚是与GPIO复用的.默认情况下,这些GPIO口只能作为普通的IO口输入输出,把一个GPIO口的引脚复用为内置外设的功能引脚, ...
- STM32——端口复用与重映射
目录 端口复用的概念 内置外设的概念 端口复用的概念 端口复用的配置 配置示例(串口1) 复用GPIO的配置 STM32中文参考手册 110页 端口重映射概念 端口重映射概念 部分重映射 完全重映射 ...
- stm32端口复用和重映射
相关描述在参考手册 通用和复用功能I/O General-purpose and alternate-function I/Os(GPIOs and AFIOs)里有详细介绍 端口复用或许没听过详细 ...
- 端口复用和重映射--STM32F103
什么是端口复用? STM32中有很多内置外设,这些外设的引脚都是与GPIO复用的,什么时候复用呢?就是当一个GPIO作为内置外设引脚使用时,就叫做复用.比如串口1的发送接收引脚是PA9,PA10,当P ...
- Stm32端口复用与重映射
概述 微控制器 I/O 引脚通过一个复用器连接到板载外设/模块,该复用器一次仅允许一个外设的复 用功能 (AF) 连接到 I/O 引脚.这可以确保共用同一个 I/O 引脚的外设之间不会发生冲突. ...
最新文章
- Mysql 查询一天中,每个小时数据的数量
- matlab绘图z=sin(x_「matlab画三维图」Matlab 应用之绘制三维图形(基础篇) - seo实验室...
- 腐蚀rust研究台抽奖_中石化青岛安工院专家分享延迟焦化装置的腐蚀风险分析!...
- 单进程服务器-非堵塞模式(python版)
- Html.RenderPartial使用三个参数
- wpf 图片绝对路径引用_Python Pillow 图片处理
- puppet成长日记二 Package资源详细介绍及案例分析
- oracle创建表空间语句分解
- 反比例函数matlab,matlab拟合指定反比例函数,在线等
- Emacs代码折叠/显示
- java nextprime_中国MOOC_零基础学Java语言_第7周 函数_1分解质因数
- 自学编程和计算机科班出身的差别在哪里?
- 用MODIS数据借助MATLAB绘制世界植被分布图
- 问道怎么找回以前的服务器,问道服务器盘点“北京古都”传奇之地
- soul服务器不稳定,soul聊天状态异常 消息发送失败
- C++图书管理系统_艾孜尔江撰
- Canva旗下图库Pexels为2000万微信公众号提供创作用图
- mac系统连接服务器教程视频教程,超详细教程:手把手教你15分钟在苹果Mac上装个Windows...
- 国内工业互联网领域开源社区资源汇总
- Ubuntu常用命令大全(珍藏版)