历史上的今天
今天是:2025年07月09日(星期三)
2021年07月09日 | STM32 复用时钟开启情况
2021-07-09 来源:eefocus
简介:本文介绍了STM32的复用时钟在什么时候需要开启,什么时候可以不开启。
首先为什么要开启时钟?
答:因为要对寄存器进行读写!而在STM32中对寄存器的读写都是要打开寄存器对应的时钟才可以的【就像人一样,有了跳动的脉搏手臂才能有能量才能进行各种动作】。
然后就什么时候AFIO时钟开启(所有时钟都是这样)就清楚了:当需要对“AFIO时钟管理的寄存器”进行读写时AFIO时钟打开!当然不对“AFIO时钟管理的寄存器”读写时也可以打开AFIO时钟,此时只是白白增加能耗、写无用代码(白白浪费程序存储器空间)而已!
接下来:跟AFIO相关的寄存器有哪些呢?
答:根据《STM32中文参考手册_V10》有:①事件控制寄存器(AFIO_EVCR)、②复用重映射和调试I/O配置寄存器(AFIO_MAPR)、③外部中断配置寄存器1(AFIO_EXTICR1)、④外部中断配置寄存器2(AFIO_EXTICR2)、⑤外部中断配置寄存器3(AFIO_EXTICR3)、⑥外部中断配置寄存器4(AFIO_EXTICR4)。
应用:在usart1串口通信没有端口重映射时为什么不打开AFIO时钟?PA9、PA10作为通用I/O口也复用了,为什么不打开为什么不打开复用时钟?
答:AFIO全称:Alternatefunction I/O alternate备用的、替代的、交替的,所以AFIO可翻译为“备用功能I/O”,原英文手册上解释很清楚:[《STM32英文手册》P152]
To optimize the number of peripheralsavailable for the 64-pin or the 100-pin or the 144-pinpackage, it ispossible to remapsomealternate functions to some other pins. This is achieved by software, by programming the AFremap and debug I/O configuration register(AFIO_MAPR) on page 159. In thiscase, the alternate functions are no longer mapped to their original assignations.
可见AFIO就设计用来remapsome alternate functions to some other pins的,所以根本就没有什么“复用”之说,看来都是翻译惹的祸!另外看一下I/O复用时的情况就更清楚了
[STM32中文参考手册_V10》P109]:
可见,当设置“PA9为GPIO_Mode_AF_PP(只是一个常数0x18)、PA10为GPIO_Mode_IN_FLOATING(只是一个常数0x04)”时PA9、PA10就已经直接跟串口的相应寄存器连接上了,而串口的寄存器不需要AFIO时钟、PA9/PA10也不许要AFIO时钟,同时有没有对AFIO相应的寄存器操作所以根本不用开启AFIO时钟!
上一篇:STM32示波器 信号发生器
史海拾趣
|
Windows 2000是基于NT核心的新一代操作系统。Win2000以其可靠、稳定的性能,强大的网络功能等优势受到大家的青睐。Win2000功能强大,对硬件的要求也较高,比较容易出现硬件兼容性方面的问题,其中我们遇到的兼容问题常常与电源管理有关:比如BOIS版 ...… 查看全部问答> |
|
请问一下下面的宏定义应该怎么理解?它的作用是什么? #define DEFUN(funcname, cmdname, cmdstr, helpstr) \\ int funcname (struct cmd_element *, struct vty *, int, char **); \\ struct cmd_element cmdname = \\ ...… 查看全部问答> |
|
超低价专业PCB打样 双面板200元/款(含飞针测试) 一、单面板 工艺:喷锡/镀金 规格:10CMX10CM 单价 150元(10PCS) 交期:3-4天 加急1天 二、双面板 工艺:喷锡/镀金&n ...… 查看全部问答> |
|
要做一个文件过滤的东西,决定用驱动做. 可是网上的资料不全,折磨了一星期, 连最简单的sys都没弄出来过。 那个大侠能给个例子啊?谢谢 xp & 2K DDK… 查看全部问答> |
|
触摸屏终于调通啦~~~~~嘿嘿嘿~~~~四线电阻触摸屏+ADS7843 【全部资料分享!!】 之前买的液晶屏带触摸屏,但是触摸芯片没搞到,前两天从TI申请的ADS7843到了,赶紧做出来试试,今天终于调通啦 在这里要感谢TI提供的免费样片哪:D 稍稍演示一下.... 芯片在下面的板子上哟~~   ...… 查看全部问答> |
|
在一个教程里看到了如下的红外代码结构 不解的是表示0 的1.125ms的周期是如何换算成 0x109c0的? 表示1 的2.25ms的周期是如何换算成 0x109c0的?这个和系统时钟有关系么? 请高手赐教! 谢谢!以脉宽为0.565ms,间隔0.56ms, 周期为1.1 ...… 查看全部问答> |
|
需要用Altera的一款CPLD来进行IO扩展与CPU进行通信,CPLD内部逻辑比较简单,基本是组合逻辑,现在的问题是怎样确定CPU和CPLD的最快通信时间?CPU的地址线、数据线、控制线之间的延时怎样确定?说得具体一点:比如CPU的写控制线WR上升沿的时候,往CP ...… 查看全部问答> |
|
我的代码在完成了编译之后出现了一种warming,内容如下: Warning: LATCH primitive \"ether_mac:ether_mac|ethermac_recv:recv|fsm_ram_wr_ns.RECV_PRENUM_7327\" is permanently enabled 其中引号内的东西除了最后的“_7327”以外, ...… 查看全部问答> |




