AFIO-CH32FV2x_V3x--重映射功能的使用以及常见问题

发布时间 2023-04-01 14:07:54作者: WCH_CH32

重映射功能

        外设引脚重映射的概念,即一个外设的引脚除了具有默认的端口外,还可以通过设置重映射寄存器的方式,把这个外设的引脚映射到其它的端口。

        简单的讲就是把管脚的外设功能映射到另一个管脚,但不是可以随便映射的。

部分重映射 & 完全重映射

  • 部分重映射: 功能外设的部分引脚重新映射,还有一部分引脚是原来的默认引脚。
  • 完全重映射:功能外设的所有引脚都重新映射
  •     我们以TIM2为例:
  •  

  •  默认映射脚位为不需要重映射配置的默认脚位,直接初始化外设时钟即可。如若使用后面几种组合,需要进行配置,配置流程如下:

  • 第一步:开启AFIO时钟:
  •  

    第二步: 调用库函数进行重映射:

     

           注意此步骤需要在第一步后再进行,同时注意此函数参数的选择,下面有三种参数选择,分别对应着上面几种映射组合,体现在手册里引脚描述如

  •        TIM2_CH2_1,TIM2_CH2_2,TIM2_CH2_3,那么后缀-1就代表着部分映射1,-2就代表着部分映射2,如此类推
  • 手册上类似描述如下:

     

    第三步:正常初始化外设时钟即可,并初始化对应通道对应引脚的GPIO时钟,和相应引脚配置。

     

     

    注:重映射常见问题

     

    一,怎么重映射不成功,打印相应的寄存器发现并未被成功赋值;

       检查上述步骤一和二是否反了,需要先开启AFIO时钟才可以对相应位进行操作

     

  • 二,将PA13,PA14脚复用为普通IO不成功/怎么将PA13,PA14脚复用为普通IO

       检查是否开了AFIO时钟,对应操作如下:

     

    三,晶振脚复用为普通IO不成功/怎么将晶振脚复用为普通IO

      与三问题类似,

  •  

    四, 将PA6-PA7复用为串口一的功能脚不成功        

  • 注意手册里的说明,PA6-PA7的组合为串口一的一个特殊组合,需要配合 AFIO_PCFR2 寄存器 bit26 USART1_RM1 使用,所以需要两次调用remap函数,操作如下:

  •  

     

  •