当前位置: 首页 > news >正文

Rcc_APBPeriphClockCmd()

启用时钟后,外设能工作,而禁用时钟时外设无法工作的原因,主要是因为 时钟系统 是微控制器中控制所有硬件模块运行的基础。外设时钟负责为外设提供必要的运行时钟信号,没有时钟信号,外设就无法进行正常的操作。下面是一些具体的原因:

1. 时钟是外设运行的“动力源”
每个外设(如 GPIO、USART、SPI、ADC 等)都需要时钟信号来驱动它们的工作。例如,USART(串口通信)需要时钟来传输和接收数据,ADC(模拟到数字转换器)需要时钟来控制采样的时序。没有时钟信号,外设就无法按照预定的时序进行工作。

2. 时钟开启后的工作状态
时钟信号的传输:当你调用 Rcc_APB2PeriphClockCmd() 启用某个外设的时钟时,微控制器内部的时钟分配系统会向该外设的时钟输入端口提供时钟信号。外设的工作周期、数据传输、操作执行等都是依赖这个时钟信号的。

状态变化:一旦时钟被启用,外设的控制器开始获取时钟信号并进入正常工作状态。比如,GPIO 的时钟启用后,你可以通过代码对 GPIO 引脚进行输入输出操作,USART 的时钟启用后,你可以进行数据发送和接收。

3. 时钟禁用后的“静止”状态
如果禁用某个外设的时钟(例如通过调用 Rcc_APB2PeriphClockCmd(..., DISABLE)),时钟信号就会被切断。此时:

外设的控制器没有时钟源,不再按照正常的时序工作,无法执行任何操作。
外设不会响应任何外部输入,甚至内部的寄存器和状态机也会暂停。
4. 节能设计
禁用时钟也是一种常见的节能手段。在嵌入式开发中,很多时候我们并不需要所有外设都一直工作。禁用不需要的外设时钟可以减少功耗,延长电池寿命。例如,某些外设只在特定时刻需要工作,其他时间可以通过禁用时钟来降低能耗。

5. 硬件寄存器与时钟信号
STM32 中的外设是通过硬件寄存器来配置和控制的。这些寄存器需要时钟信号来驱动它们的操作。如果时钟信号没有提供,硬件寄存器的内容不能更新,外设的操作也无法进行。即使你对外设的寄存器进行了配置,但如果时钟没有启用,寄存器的变化不会生效。

总结:
外设在工作时依赖于时钟信号,这就像是电动机需要电力才能转动一样。启用时钟信号后,外设能够按照预定时序正常工作;禁用时钟后,外设没有时钟信号支持,无法进行任何操作。因此,嵌入式系统中,时钟控制对于外设的正常工作至关重要。

http://www.rkmt.cn/news/4450.html

相关文章:

  • 故障处理:ORA-19809: limit exceeded for recovery files
  • [总结/备赛]备战 CSP-S 2025 初赛总结
  • Java运行时jar时终端输出的中文日志是乱码
  • 20231310王宏邦《密码系统设计》第1周
  • 知识点错题整理
  • Linux学习记录(六):添加/删除用户
  • 接口测试---PyMysql
  • linux c应用性能与内存泄露问题排查工具
  • 去去就来
  • 高三试卷
  • 使用 CUDA 12.9 编译 PyTorch 2.4.0
  • 豆包生成C#即梦API HTTP调用实例代码
  • 复制一个数组的方法
  • 选择排序方法
  • ArcGIS Pro 遇到严重的应用程序错误而无法启动 - 教程
  • markdown文件上传到博客园教程
  • ffplay音频重采样 - 教程
  • 深入解析:Qt串口通信学习
  • 题解:P12546 [UOI 2025] Convex Array
  • 玩转 hostnamectl set-hostname:Linux 主机名管理的优雅方式 - 实践
  • Spring八股文 - 实践
  • Clion 基础设置
  • P3957 [NOIP 2017 普及组] 跳房子
  • JavaScript Array 对象
  • WebStorm代码一键美化
  • Golang中设置HTTP请求代理的策略
  • [开源免费] iGTTS(Gemini TTS) 文本转语音(TTS)的命令行工具。
  • 快读快写 学习笔记
  • AI编程实战
  • C#语言中使用using关键字