当前位置: 首页 > 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.wxhsa.cn/company.asp?id=3626

相关文章:

  • 故障处理:ORA-19809: limit exceeded for recovery files
  • ORA-01555系列:二、ORA-01555的场景分析与解决方案
  • PySimpleGUI常用控件
  • 25.09.14 与其感慨路难行,不如马上出发
  • GCC工具链应用学习笔记
  • 初始化 MCP 环境 创建 MCP Server (一)
  • 博客园格式设置
  • [总结/备赛]备战 CSP-S 2025 初赛总结
  • win11 系统如何进行硬盘分区?固态硬盘怎么分区?SSD 固态硬盘是分区好还是不分区好?
  • 逆序数及其应用
  • 豆豆守护如何下载?
  • Java运行时jar时终端输出的中文日志是乱码
  • ZK2真空发生器日常清理
  • Nacos服务注册与发现
  • 马的遍历
  • 20231310王宏邦《密码系统设计》第1周
  • 新学期第一次随笔:慢慢学,总会有进步
  • 详细介绍:【C语言】第四课 指针与内存管理
  • 知识点错题整理
  • 202311_陇剑杯预赛_tcpdump
  • Linux学习记录(六):添加/删除用户
  • python 链式调用 合并 __setattr__ __getattribute__ in nested object()
  • 分享一个稳定好用的免费云服务——阿贝云体验
  • 年化439%,回撤7%,卡玛比率62.5,附本地运行的完整策略python代码 - 详解
  • 接口测试---PyMysql
  • My First Blog
  • 设置基础软件仓库时出错
  • linux c应用性能与内存泄露问题排查工具
  • 深入解析:AI-调查研究-66-机器人 机械臂 软件算法体系:轨迹规划视觉定位力控策略
  • VS Code快捷键