STM32F103 AFIO时钟疑问

STM32F103 AFIO时钟疑问

大家好,又见面了,我是全栈君。

在stm32F103系列中:AFIO是重映射辅助时钟,如果仅仅是使用第二功能(如uart,spi,),不需要打开,使用第二功能打开GPIO和第二功能时钟。我反复测试是这样的

AFIO时钟由RCC_APB2ENR寄存器的位0控制;

STM32F103 AFIO时钟疑问

APB2外设时钟使能寄存器(RCC_APB2ENR)  的第0位AFIOEN 辅助功能IO时钟使能在那些时候,需要开启呢? 
——————————— 
配置stm32的事件输出/外部中断/重映射的时候.就必须开启AFIO时钟. 
假如使用的管脚里头默认复用的外设功能并不需要开AFIO时钟  

STM32F103 AFIO时钟疑问

说的很明白,操作AFIO的三类寄存器时需要开启: 
1.事件控制寄存器(AFIO_EVCR)
2.复用重映射和调试I/O配置寄存器(AFIO_MAPR)
3.外部中断配置寄存器x(AFIO_EXTICRx)
这三类其实是AFIO的全部寄存器, AFIO_EVCR是事件相关的,AFIO_MAPR是与重映射和调试I/O相关的,AFIO_EXTICRx是与外部中断相关的。因此管脚重映射和调试I/O配置、外部中断、事件时需开启AFIO。

参考:http://blog.csdn.net/qq_14997473/article/details/47041147

切记:F4系列中并不是这样的

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/108498.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • VC编程常见问题解答收集贴

    VC编程常见问题解答收集贴1.使用ModifyStyleEx改变了控件风格无效答:修改之后,重绘一次,如果还不行的话,再试试看调用SetWindowPos(0,0,0,0,0,SWP_NOMOVE|SWP_NOSIZE|SWP_DRAWFRAME);2.动态设置编辑框的ES_PASSWORD无效答:修改之后,需要调用一次SetPasswordChar(*);3.如何获取任务栏小图标?答:有网友提出,能

    2022年7月19日
    16
  • IntelliJ IDEA使用教程(新手入门–持续更新)[通俗易懂]

    IntelliJ IDEA使用教程(新手入门–持续更新)[通俗易懂]idea使用教程一、下载安装二、基础配置及插件安装1.基础配置1.1配置jdk1.2配置maven1.3配置git1.4开启自动编译1.5调整字体(参照配置入口,大家可以根据喜好自行调整,记得调整完每一步都要点击apply)1.6取消大小写敏感,取消勾选1.7设置统一编码为utf-82、插件下载2.1[Mybatis](https://how2j.cn/k/mybatis/mybatis-tutorial/1087.html)2.2[Lombok](https://www.zhihu.com/q

    2022年8月29日
    9
  • OpenCV300 CMake生成project在项目过程中的问题

    OpenCV300 CMake生成project在项目过程中的问题

    2022年1月11日
    40
  • 投巧解决JavaScript split方法出现空字符的问题

    投巧解决JavaScript split方法出现空字符的问题直接使用split,前后各有一个“”值。>>varstr=’,a,b,c,d,e,f,’;>>str.split(‘,’);//(8)[“”,”a”,”b”,”c”,”d”,”e”,”f”,””]临时方法:split后,可以用filter过滤掉空值。>>varstr=’,a,b,c,d,e,f,’;>&…

    2025年8月8日
    5
  • Pycharm虚拟环境解析

    Pycharm虚拟环境解析什么是Pycharm中的虚拟环境 假如想要在Pycharm中建立两个项目,并且这两个项目需要用到同一个第三方库的不同版本,如果这两个项目共享一个运行环境,那么此时就会发生版本冲突问题。为了解决这个问题,Pycharm提供了Virtualenv(即,虚拟环境)。Virtualenv可以创建一套独立运行的Python环境,从而做到不同项目之间的隔离。当需要安装该环境所需要的包时,在设置—项目—…

    2025年6月20日
    7
  • C语言中的break和continue

    C语言中的break和continue一般在的,while,for这样含有循环体的语句中,某些情况下我们会需要立即跳出当前循环。这时使用break语句就可以实现直接从当前循环体直接跳出开始执行while,for语句的下一条语句。另外,break这种可以从一段复合语句中跳出的功能也被switch广泛借用,来跳过switch复合语句,也就是被花括号框住的代码块中剩余的部分,转去执行switc…

    2022年5月30日
    32

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号