STM32中使能时钟的目的
2024-09-05 01:51:52
首先强调:时钟使能必须在外设初始化之前!!!!!!!
在这引用一个解释,
“ARM的芯片,外设通常都是给了时钟后才能设置它的寄存器(即才能使用这个外设)。
STM32、LPC1XXX等等都是这样,这么做的目的是为了省电,使用了所谓时钟门控的技术。
寄存器是基于什么的?
当然是触发器!!!准确地说应该是D触发器
触发器的赋值是一定需要时钟的, 而寄存器的时钟是由总线时钟提供的,就是说没有总线时钟的话,你给寄存器值它是不会读入的。换句话说,只有送来了时钟,触发器才能被改写值,这样寄存器才会工作。
又会有人说为什么我之前学51的时候为什么不用使能时钟呢?
当初我们学51的时候,哪会关注功耗,我们能跑起来程序就行了,而且对于大多数厂家来说,绝大多数不会关注功耗。但是STM32不同,为了减少功耗,ST公司为了省电,使用了所谓的时钟门控的技术,这又涉及到了同步电路。同步电路中总有一个时钟控制。
在默认情况下这些时钟都是disable的。你如果要使用它,首先就需要enable。
我们也可以把这个时钟简单的比作为门,STM32之所以是低功耗,就是因为他把所有门都默认设置为disable,在你需要用哪个门的时候,开哪个门就可以,也就是说用到什么外设,只要打开对应外设的时钟就可以,其他的没用到的可以还是disable,这样耗能就会减少。
最新文章
- [LeetCode] Ugly Number 丑陋数
- RedHat Enterprise Linux 6.4 使用 Centos 6 的yum(转)
- 【Java】多线程_学习笔记
- node.js基础 1之 Querystring参数处理小利器
- HashTable, HashMap, LinkedHashMap, ConcurrentHashMap
- Unity Standard Assets 简介之 Utility
- ADF_Starting系列8_使用EJB/JPA/JSF通过ADF构建Web应用程序之扩展UI Method
- [Java Web] 3、WEB开发之HTML基础程序试手
- 查找素数(0~1000)的算法(Java代码)
- 简单封装JDBC
- C# 使用WIN32API设置外部程序窗口无边框
- ActiveMQ JMS 在发邮件中的使用
- Android 实现UI设计
- 多个 (li) 标签如何获取获取选中的里面的某个特定值??
- OpenShift实战(一):OpenShift高级安装
- AutoCAD下载
- 软工+C(1): 题目设计、点评和评分
- MSSQL内存架构及管理
- TeamViewer app案例分析
- windows 7 64 bit 注册dll