【Nations MCU 】N32G45x 引脚复用和重映射

一、 端口复用功能

      N32G45x 有很多的内置外设,这些外设的外部引脚都是与 GPIO 复用的。也就是说,一个 GPIO 如果可以复用为内置外设的功能引脚,那么当这个 GPIO 作为内置外设使用的时候,就叫做复用。

      例如:串口2 的发送接收引脚是 PA2 、PA3 ,当我们把 PA2 、PA3 不用作普通的 GPIO口,而用做复用功能串口2 的发送接收引脚的时候,叫端口复用。

      复用功能(使用默认复用功能前必须对端口位配置寄存器编程):

      ※对于复用的输入功能,端口必须配置成输入模式(浮空、上拉或下拉)且输入引脚必须由外部驱动;

      ※对于复用输出功能,端口必须配置成复用功能输出模式(推挽或开漏);

      ※对于双向复用功能,端口位必须配置复用功能输出模式(推挽或开漏)。这时,输入驱动器被配置成浮空输入模式。

      当端口配置位 AFIO 时,端口引脚用作外设复用功能,使用前必须对端口位配置寄存器( GPIOx_PL_CFG/GPIOx_PH_CFG )编程。

      端口复用的配置过程

      GPIO 端口时钟使能(使用某个 IO 口必须要对时钟进行使能)

      RCC_EnableAPB2PeriphClk(RCC_APB2_PERIPH_GPIOA,ENABLE);

      使能复用外设时钟(这里以串口 2 为例)

      RCC_EnableAPB1PeriphClk(RCC_APB1_PERIPH _USART2, ENABLE);



      端口模式配置:

      GPIO_InitTypeDef GPIO_InitStructure;

      GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2; //PA.2

      GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;

      GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; //复用推挽输出

      GPIO_Init(GPIOA, &GPIO_InitStructure); //初始化 GPIOA.2 

      GPIO_InitStructure.GPIO_Pin = GPIO_Pin_3;//PA3

      GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING; //浮空输入

      GPIO_Init(GPIOA, &GPIO_InitStructure); //初始化 GPIOA.3

二、 引脚重映射

      每个内置外设都有若干个输入输出引脚,一般这些引脚的输出端口都是固定不变的。引脚重映射的概念,即一个外设的引脚除了具有默认的端口外,还可以通过设置重映射寄存器的方式,把这个外设的引脚映射到其它的端口。

      为了使不同器件封装的外设 IO 功能数量达到最优,可以把一些复用功能重新映射到其他一些引脚上。很多内置外设的输入输出引脚都具有重映射的功能。

      例如:串口 3 的 TX , RX 引脚是在 PB10 和 PB11 端口,但是同时它有两个映射端口PD8、PD9。开启重映射, PD8 和 PD9 同样可以使用串口 2可以通过软件配置相应的寄存器(AFIO_RMP_CFG )来完成。



 

      端口重映射的配置过程:。

      使能 GPIO 时钟(重映射后的 IO );

      RCC_EnableAPB2PeriphClk(RCC_APB2_PERIPH_GPIOD,ENABLE);

      使能功能外设时钟;

      RCC_EnableAPB1PeriphClk(RCC_APB2_PERIPH_USART3,ENABLE);

      使能 AFIO 时钟:

      RCC_EnableAPB2PeriphClk(RCC_APB2_PERIPH_AFIO,ENABLE);

      对寄存器 AFIO_EXTI_CFGx ,AFIO_RMP_CFG 和 AFIO_ECTRL 进行读写操作前,应当首先打开 AFIO 时钟。

      外部中断配置寄存器( AFIO_EXTI_CFGx )

      复用重映射配置寄存器( AFIO_RMP_CFG )

      事件控制寄存器( AFIO_ECTRL )

      开启重映射:

      GPIO_PinRemapConfig(GPIO_Remap_USART3, ENABLE);

      初始化 GPIO 端口。

三、总结

      USART 用哪个时钟,可参看 N32G455X 用户手册内有关 clock register(RCC) 章节或者总线章节。

      引脚默认和重定义可以查看数据手册。

      端口在复用输出模式下,引脚和输出寄存器断开,并和片上外设的输出信号连接。如果软件把一个 GPIO 脚配置成复用输出功能,但是外设没有被激活,它的输出将不确定。

四、Reference

      [1] UM_N32G45x系列用户手册V2.0.0

      [2] DS_N32G455系列数据手册V2.0.0

      [3] https://blog.csdn.net/weixin_47397155/article/details/119736890 

★博文内容均由个人提供,与平台无关,如有违法或侵权,请与网站管理员联系。

★文明上网,请理性发言。内容一周内被举报5次,发文人进小黑屋喔~

评论