如何使用stm32的stm32f407 端口映射重映射

【STM32】GPIO的端口重映射
TM32上有很多I/O口,也有很多的内置外设,为了节省引出管脚,这些内置外设都是与I/O口共用引出管脚,ST称其为I/O管脚的复用功能,相信这点大家都很清楚,因为基本上所有单片机都是这么做的。但不知有多少人知道,很多复用功能的引出脚可以通过重映射,从不同的I/O管脚引出,即复用功能的引出脚位是可通过程序改变的。这一功能的直接好处是,PCB电路板的设计人员可以在需要的情况下,不必把某些信号在板上绕一大圈完成联接,方便了PCB的设计同时潜在地减少了信号的交叉干扰。复用功能引出脚的重映射功能所带来的潜在好处是,在你不需要同时使用多个复用功能时,虚拟地增加复用功能的数量。例如,STM32上最多有3个USART接口,当你需要更多UART接口而又不需要同时使用它们时,可以通过这个重映射功能实现更多的UART接口。总结:I/O端口的重映射重映射技术的需求背景I/O的复用:GPIO和内置外设共用引出管脚I/O的重映射:复用功能(AFIO)从不同的GPIO管脚引出方便了PCB的设计,潜在地减少了信号的交叉干扰分时复用某些外设,虚拟地增加了端口数目AFIO重映射的操作步骤1. 使能被重新映射到的I/O端口时钟2. 使能被重新映射的外设时钟3. 使能AFIO功能的时钟================================================================================================================================
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是不是可以映射到任意管脚呢?&答案是否定的,它只能映射到固定的管脚,下图是USART2重映射表
分享这篇日志的人也喜欢
懒的化妆??
小鬼是骗子,大家小心哦
宝贝们,快来呀,午夜了
今夜你会不会来
我人鱼公主生快?
大晚上的,你说我唱聊聊天
热门日志推荐
人人最热标签
北京千橡网景科技发展有限公司:
文网文[号··京公网安备号·甲测资字
文化部监督电子邮箱:wlwh@··
文明办网文明上网举报电话: 举报邮箱:&&&&&&&&&&&&
请输入手机号,完成注册
请输入验证码
密码必须由6-20个字符组成
下载人人客户端
品评校花校草,体验校园广场分享给朋友:通用代码: <input id="link4" type="text" class="form_input form_input_s" value="" />复 制27--端口复用与重映射--刘凯老师STM32培训视频下载至电脑扫码用手机看用或微信扫码在手机上继续观看二维码2小时内有效27--端口复用与重映射--刘凯老师STM32培训视频扫码用手机继续看用或微信扫码在手机上继续观看二维码2小时内有效,扫码后可分享给好友没有优酷APP?立即下载请根据您的设备选择下载版本
药品服务许可证(京)-经营- 请使用者仔细阅读优酷、、、Copyright(C)2017 优酷
版权所有不良信息举报电话:stm32 定时器重映射 - CSDN博客
stm32 定时器重映射
void TIM3_GPIOB5_Config(void)&
& &GPIO_InitTypeDef GPIO_InitS&
&&RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);&
&&RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO , ENABLE);
&&GPIO_AFIODeInit(); & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & //将重映射恢复为初始&#20540; //在程序中只可以调用一次,不然之前的设置就取消了
&&GPIO_PinRemapConfig(GPIO_ParalRemap_TIM3
,ENABLE ); & & & & & & & &//重映射相应的外设
&&GPIO_InitStructure.GPIO_Pin =&&GPIO_Pin_5; & & & & & & & & & & & & & & & & & & & //配置引脚
&&GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;& && && && && &&
&&GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
&&GPIO_Init(GPIOB, &GPIO_InitStructure);
本文已收录于以下专栏:
相关文章推荐
STM32中SYSTICK定时器
STM32单定时器四通道捕获功能实现
输入捕获作为定时器的一个功能,在工业测速上有很大的应用。STM32的一些定时器具有四个外部通道,可利用一个定时器采集外部四路脉冲频率,节约硬件资源和软件...
大家好,从今天开始.本人将自己在工作中遇到的问题 和学习体会 跟大家一起分享并探讨.下面跟大家说一下STM32单片机的端口重映射,因为是以自己为实例.这里是以USART1的重映射为例..
&#160;&#160;&#160;...
在使用F0的片子在增加IAP后,我们经常发现,原来的APP必须增加一段代码,将中断向量表从内部FLASH拷贝到SRAM后再执行REMAP到SRAM,这样操作后APP才能正常运行,这一过...
1、IO口的复用最近在学习STM32,在BZ上一篇关于的串口通信文章里有这么一段代码:
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD |RCC_APB2Pe...
大家好,从今天开始.本人将自己在工作中遇到的问题 和学习体会 跟大家一起分享并探讨.下面跟大家说一下STM32单片机的端口重映射,因为是以自己为实例.这里是以USART1的重映射为例..
&#160;&#160;&#160;...
使用TIM2输出PWM来驱动舵机转动,使用TIM2CH3 (PB11引脚)输出驱动波形,通过数据手册知道,PB10默认的复用功能为USART3_TX,可以通过重映射作为TIM2_CH3用。
1.这段代码实现了串口的重映射,即将RFID串口(连接PC的串口)与sim900A的串口进行了重映射!
也就是说将PC发送的数据给RFID的串口,将 &#160;RFID的串口接收到的PC数据通过sim900A...
他的最新文章
讲师:宋宝华
讲师:何宇健
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)下面跟大家说一下STM32单片机的端口重映射,因为是以自己为实例.这里是以USART1的重映射为例..
&&&&&&&&因为我要一个TFT_LCD屏的主控板,考虑到FSMC 我选用了STM32F103VCT6 型号的CPU,一不小心串口接到USART1上了.因为在调程序时才发现错了,没得办法,只能通过端口重映射来解决.但是以前没用过端口重映射,只闻其名,未用其身,所以..呵呵 ...只能从头去看了.
&&&&&&&&&STM32上有很多I/O口,也有很多的内置外设想I2C,ADC,ISP,USART等,为了节省引出管脚,这些内置外设基本上是与I/O口共用管脚的,也就是I/O管脚的复用功能。但是STM32还有一特别之处就是:很多复用内置的外设的I/O引脚可以通过重映射功能,从不同的I/O管脚引出,即复用功能的引脚是可通过程序改变的.读到这里相信大家都应该了解了端口重映射的一些概念了.原理上的东西不细说了,大家可以看手册或者网上查,这方面的资料还是很多的.下面说说我的调试经历.
&&&&&&& 不知道是什么原因 PCB制图时把串口接到USART1上了,当时也没在意,等我把USART测试程序写好烧进去硬件仿真时,串口给的是乱码,我当时就觉得奇怪.把程序检查了好几遍就是查不出问题来,以为是硬件有问题,但突然想到了STM有复用功能,心想会不会是这里有&#39740;?于是找来datasheet 一看 ,真相大白
三个红框交汇处.STM32F103VCT6 这个CPU的USART1接的是PB6/PB7 但是上电初始化后默认功能并非是USART1.所以想要用串口功能 .必须用端口重映射..
&&&大家知道,STM32的单片机每个功能模块有自己的时钟系统,所以要想要调用STM32单片机的功能模块时 必须先配置对应时钟,然后才能去操作相应的功能模块.端口重映射也一样.如图示:
重映射步骤为:
1.打开重映射时钟和USART重映射后的I/O口引脚时钟,&
&&&&&&&&&&RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB | RCC_APB2Periph_AFIO,ENABLE);
2.I/O口重映射开启.
&&&&&&&&&&&&&&&&&&&GPIO_PinRemapConfig(GPIO_Remap_USART1,ENABLE);
3.配制重映射引脚,&这里只需配置重映射后的I/O,原来的不需要去配置.
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6;
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&GPIO_Init(GPIOB, &GPIO_InitStructure);
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&GPIO_InitStructure.GPIO_Pin = GPIO_Pin_7;
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&GPIO_Init(GPIOB,&GPIO_InitStructure);
&&&&&&只需要这三步,串口就可以正常使用了,简单吧?& 但是我纠结了大半个小时才搞定的,好多事情都是说起来容易做起来难的,希望我以后多多进步.不要&#30524;高手低,嗯我正朝这个方向前进.
最后总结一下:
简单的说 STM32的 io 有3个功能一个是默认的 一个是复用 一个是重映射功能(这个其实也属于复用)
如果配置成复用 则将使用第2个功能 如果配置成复用 同时 相应的重映射配置了 则将使用第3个功能
通常一个口的 复用&#43;重映射有好多 不止两个 这时候就看你使能哪个设备了(哪个被使能就用哪个)&
开复用 &#43; 使能设备&#43; 是否重映射就可以决定这个io口到底使用哪个功能
阅读(...) 评论()STM32中SYSTICK定时器、端口复用和重映射 - ckkboy的博客 - CSDN博客
STM32中SYSTICK定时器、端口复用和重映射
第一部分STM32SYSTICK定时器:
systick 定时器按照字面意思就知道是一个简单的定时器,主要用来做延时,以避免MCU的资源浪费。
它是一个24位的倒置计数器,倒置的意思就是从最大数字递减到0,SysTick定时器被捆绑在NVIC中,用于产生SYSTICK异常,即用于中断系统。
systick有四个寄存器分别如下:
<span style="color:#、CTRL & & &SysTick&控制和状态寄存器&LOAD :主要用于使能 systick定时器,异常请求,选择内部还是外部时钟,计数是否为零标志位
<span style="color:#、SysTick&自动重装载除&#20540;寄存器&:就是存放计数递减到零以后所自动装载的&#20540;。
3、VAL&&&SysTick&当前&#20540;寄存器&CALIB :按照意思就可知是当前计数的&#20540;,对它写入则会清零该数&#20540;,并且把CTRL中计数是否为零的标志位也清零。
<span style="color:#、SysTick&校准&#20540;寄存器:一般不用
A、固件库中的Systick相关函数:
&&& SysTick_CLKSourceConfig()&&& //Systick时钟源选择&
misc.c文件中
&&& SysTick_Config(uint32_tticks) //初始化systick,时钟为HCLK,并开启中断
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&//core_cm3.h/core_cm4.h文件中
B、Systick中断服务函数:
&& void SysTick_Handler(void);
第二部分:端口复用和重映射
端口复用的官方解释为:
STM32有很多的内置外设,这些外设的外部引脚都是与GPIO复用的。也就是说,一个GPIO如果可以复用为内置外设的功能引脚,那么当这个GPIO作为内置外设使用的时候,就叫做复用。
粗俗解释:就是一个端口可以有很多功能,就叫端口复用。
端口映射的解释可以理解为,一个端口根据地址的计算方式转移到另外一个端口。
我的热门文章}

我要回帖

更多关于 stm32重映射 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信