快捷搜索:  汽车  科技

关于stm32的一些基本知识(Cortex-M3之端口复用理解)

关于stm32的一些基本知识(Cortex-M3之端口复用理解)对于引脚的重映射听起来没有异常,但实际和操作比较理解起来还是有所差别,准确的说应该是外设的重映射或外设引脚的重映射,将外设的默认引脚映射到另外的引脚。3:当使用引脚的主功能或复用功能,只需要配置该引脚(主功能)或是配置该引脚以及复用该引脚的外设即可,但是若要使用该引脚的重映射功能(换句话说好理解,每个外设都有自己默认的引脚,比如usart2的TX和RX引脚默认的是引脚PA2和PA3,但是我们想要使用该引脚的重映射功能,就是使用PD5和PD6),所以不仅要配置该引脚以及该USART外设,还需要开启重映射功能RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD | RCC_APB2Periph_AFIO ENABLE);某外设的重映射

1:

为了节省单片机的引脚,往往将单片机其他外设需要输出或输入的引脚与GPIO外设引脚共用,所以会出现下图所示,有的引脚会出现主功能(main function),复用功能和重映射(重定义)功能。即一个外设的使用除了默认的引脚外,还能够通过设置重映射寄存器方法将该外设的引脚映射到其它引脚上

关于stm32的一些基本知识(Cortex-M3之端口复用理解)(1)

中等容量STM32F103xx引脚定义

2:

当使用引脚的主功能或复用功能,只需要配置该引脚(主功能)或是配置该引脚以及复用该引脚的外设即可,但是若要使用该引脚的重映射功能(换句话说好理解,每个外设都有自己默认的引脚,比如usart2的TX和RX引脚默认的是引脚PA2和PA3,但是我们想要使用该引脚的重映射功能,就是使用PD5和PD6),所以不仅要配置该引脚以及该USART外设,还需要开启重映射功能

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD | RCC_APB2Periph_AFIO ENABLE);

关于stm32的一些基本知识(Cortex-M3之端口复用理解)(2)

某外设的重映射

3:

对于引脚的重映射听起来没有异常,但实际和操作比较理解起来还是有所差别,准确的说应该是外设的重映射或外设引脚的重映射,将外设的默认引脚映射到另外的引脚。

对于引脚而言,是有主功能,复用功能,和重映射功能,而对某一具体外设而言实际上只有其默认引脚和重映射引脚,

4:

外设引脚的重映射并非映射到任意一个引脚,而是只能映射到数据手册里规定好的重映射引脚.

5:

再次强调端口复用和端口重映射是两个概念,端口复用比较常见,任何一个与外部通信的外设都会用到GPIO口,这就是所谓的该引脚的复用功能,不需要开启AFIO时钟的,只需配置好该外设和引脚即可,只有将外设的默认引脚进行重新映射到其它引脚才需要开启AFIO时钟,当然此时要配置的引脚也是重新映射的引脚

6:

对寄存器AFIO_EVCR AFIO_MAPR和AFIO_EXTICRX进行读写操作前,应当首先打开AFIO的时钟

若GPIO口使用了重映射栏中的外设功能,则需要开启AFIO时钟;只使用默认复用功能时,只开启相应外设时钟无需开启AFIO时钟

猜您喜欢: