什么时候需要开启复用时钟:

(1)使用EXTI

(2)重映射(用到外设的重映射功能时才需要使能AFIO的时钟)

举例:重映射USART2

USART2的TX/RX在PA.2/3.但是,PA.2已经被Timer2的channel3使用.这时,如果还想使用USART2,但又不想影响Timer2的使用,这就需要把USART2的TX/RX重映射到PD.5/6。

映射库函数的调用过程

(1)使能被重新映射到的I/O端口时钟

    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD, ENABLE);

(2)使能被重新映射的外设时钟

    RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART2, ENABLE);

(3)使能AFIO功能的时钟(勿忘!)

    RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE);

(4)进行重映射

    GPIO_PinRemapConfig(GPIO_Remap_USART2, ENABLE);

参考博客:https://blog.csdn.net/slj_win/article/details/17315041

什么时候使用“RCC_APBXPeriph_AFIO”的更多相关文章

随机推荐

  1. ACM练习中关于LCS的题目

    You are planning to take some rest and to go out on vacation, but you really don’t know which cities ...

  2. 9、Flutter 实现 生成二维码

    1.加入依赖 在 pubspec.yaml 中 dependencies 节点下添加: dependencies: qr_flutter: ^ 2.引入代码 在需要细线二维码的 dart 类中引入依赖 ...

  3. mysql高可用研究(一) 主从+MHA架构 (转)

    最近在研究mysql的高可用架构,自己想总结下常用的高可用方案都有哪些.有哪些优缺点以及应用的场景?搞得是头昏脑涨,天昏地暗,看了诸多资料,每次都觉得公说公有理婆说婆有理.其实嘛,大家说的都有一定的道 ...

  4. Oracle数据库查询所有关键字

    管理员账户登录后,执行以下命令:  select * from v$reserved_words

  5. AES加密解密 助手类 CBC加密模式

    "; string result1 = AESHelper.AesEncrypt(str); string result2 = AESHelper.AesDecrypt(result1); ...

  6. Javascript循环删除数组中元素的几种方法示例

    发现问题 大家在码代码的过程中,经常会遇到在循环中移除指定元素的需求.按照常规的思路,直接一个for循环,然后在循环里面来个if判断,在判断中删除掉指定元素即可.但是实际情况往往不会像预想的那样顺利运 ...

  7. Centos7安装net Core

    官方文档:https://dotnet.microsoft.com/learn/dotnet/hello-world-tutorial/install 我这里是物理机,不是虚拟机 第一步: sudo ...

  8. Scala控制语句

    2019-04-16 19:03:01 if else 表达式 var sumVal = 0 if ( sumVal == 0 ) { println("true") } else ...

  9. 压力(性能)测试及jmeter的使用

    github中标注lab3的文档记录了我的详细的实验过程,有关环境搭建.过程理解.实验结果与遇到的问题等,希望可以帮到初学者. 欢迎交流- https://github.com/fogmisty/So ...

  10. 详解Nginx服务器配置

    #运行用户 user nobody; #启动进程,通常设置成和cpu的数量相等 worker_processes ; #全局错误日志及PID文件 #error_log logs/error.log; ...