所以这里的第7行代码可以删掉当然不删也可以正常工作,但是会白白增加能耗、写无用代码(白白浪费程序存储器空间)而已
何时开启AFIO时钟?按照上面分析的,当然是要操作AFIO相关的寄存器的时候才开启AFIO时钟此处依旧以串口为例我们看到AFIO管理的寄存器中有复用重映射和调试I/O配置寄存器(AFIO_MAPR) 这一寄存器,这个寄存器怎么用呢?首先,我们要知道什么是重映射使用重映射功能可以把一些复用功能重新映射到其他引脚上,在某些时候可以方便板级硬件的布局设计设置AFIO_MAPR寄存器实现引脚的重新映射此时,复用功能不再映射到它们的原始分配上 可以重映射到任意引脚吗?其实是有规定的,可查阅参考手册,如串口1的重映射:我们可以配置PB6、PB7作为串口1的TX、RX引脚,具体配置代码如下:这里得调用一个重映射配置函数GPIO_PinRemapConfig,可在这个函数在stm32f10x_gpio.c中,如下:其中第一个参数为要重映射的外设,可在stm32f10x_gpio.h中查看:其中重映射又分为部分重映射和完全重映射,区别就是要重映射全部的引脚还是部分引脚,这也是有规定的比如定时器1:我们从GPIO_PinRemapConfig函数的实现中可以看到我们需要操控AFIO_MAPR寄存器,所以需要开启AFIO时钟综上,需要操控AFIO管理的寄存器才需开启AFIO时钟,否则不需要开启
(图片来源网络,侵删)
0 评论