STM32 | 您所在的位置:网站首页 › 北京80bj映射功能怎么用 › STM32 |
STM32——GPIO重映射(GPIO_PinRemapConfig)
1.重映射拿来干嘛的?
我们来看看官方文档对重映射是如何解释的。 下面我们以STM32F103C8为例,可以在STM32F103C8数据手册里面3 Pin descriptions这一章节里面看到各个引脚的功能,如下图所示,我们可以查询到芯片具有哪些引脚,以及默认是什么功能,复用功能有哪些。 只有少部分功能具有部分映射和完全映射,下面以USART3为例,可以从下表中看到USART3各个默认引脚,部分重映射以及完全重映射所对应的引脚。可以看出,部分重映射中USART3_CTS和USART3_RTS所对应的引脚还是默认的,只是把USART3_RX、USART3_TX、USART3_CK重新映射到了其他引脚上面,完全重映射就是把所有的引脚都重新映射到了其他引脚上面。 注意注意注意,重要的事情说三遍,重映射和IO口的复用一样,需要开启AFIO的时钟。 5.经验之谈:为什么我的PB4引脚不能使用这就是经验之谈啊,困扰了我一天多的问题,我在使用MPU6050模块的时候,其中一个信号引脚接的是PB4,然后始终读不出来数据。最后终于解决了,其实很简单的一个问题,主要还是基础知识掌握得不扎实的错。 经过了上面对重映射的学习,就很容易解释这个问题了。如下图,可以看到PB4、PB3等各个引脚默认是用于调试端口,所以肯定就不能用啦,这个时候我们只需要对引脚进行重映射,加上下面这一句代码就ok了。GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable,ENABLE); 什么,你以为这就OK了?还是太年轻,我们再上面的第4点,使用端口的重映射的时候,需要开启复用时钟AFIO, 所以,仅仅重映射了还不行,还需要开复用时钟啊,千万不要忘记再加上这一句代码RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE); /* 打开GPIO时钟 */。 |
CopyRight 2018-2019 实验室设备网 版权所有 |