news 2026/3/11 16:46:29

简单理解:如何操作寄存器清理对应的位,举例如下。

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
简单理解:如何操作寄存器清理对应的位,举例如下。

想只清倍频因子位(bit8~13)、丝毫不碰其他配置?必背底层位操作模板 + 完整规则解析,新手也能一次搞定:XT_CKCU->COREPLLCFGR &= ~(0x3F << 8);

一、先掌握 &= 核心规则(操作的根本逻辑)

&=(按位与赋值)是实现 “精准清位、保留其他” 的关键,规则只有两条,记死就行:

✅ 掩码对应位 = 1 → 保留寄存器原有值(1 & 原有值 = 原有值,不改动);

❌ 掩码对应位 = 0 → 强制将寄存器位清 0(0 & 原有值 = 0,必清空);我们的目标:仅清 bit8~13,其余位保留 → 必须打造 “bit8~13=0,其他位 = 1” 的理想掩码。

二、模板逐段拆解(每一步都为 &= 规则服务)

0x3F:十六进制 = 二进制00111111,6 个连续 1 → 作为 “6 位宽的目标位圈定器”,明确要操作 6 个连续位,为后续定位打基础;

<< 8:左移 8 位 → 把 6 个 1 精准平移到 bit8~13(PLL 倍频因子对应的位),锁定目标位置,避免操作跑偏到 bit0~5;

~:按位取反 → 把 “bit8~13=1,其他位 = 0” 的初始掩码,转换成 “bit8~13=0,其他位 = 1” 的理想掩码,完美匹配 &= 清位规则;

&=:按位与赋值 → 用理想掩码与寄存器原值运算,最终仅 bit8~13 被清 0,时钟源、分频系数等其他关键配置完全保留!

三、避坑三禁令(违背 &= 规则必出错)

  1. 禁省<<8:少了左移,6 个 1 停在 bit0~5,&= 后误清无关位,PLL 倍频因子没变化;
  2. 禁省~:省了取反,掩码是 “bit8~13=1,其他 = 0”,&= 后目标位保留、其他位全清,PLL 直接瘫痪;
  3. 禁换0x3F为 0:6 个 0 无法圈定目标位,掩码全 0,&= 后所有位清 0,寄存器配置全丢。

这行代码的精髓,就是让每一段都精准适配 &= 的位运算规则,实现 “最小改动、精准清位”——HC32 PLL 配置、寄存器目标位更新直接套用,收藏即用不踩坑!

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/3/4 8:47:36

简单理解:为什么网络通信非要用大端序?小端序不行吗?

做嵌入式网络开发&#xff08;TCP/UDP/MQTT&#xff09;时&#xff0c;总有个绕不开的操作&#xff1a;把 MCU 的小端序转为大端序。很多人疑惑&#xff1a;明明 MCU 都用小端序&#xff0c;网络为啥偏要选大端序&#xff1f;小端序直接传不行吗&#xff1f;核心答案&#xff1…

作者头像 李华
网站建设 2026/3/9 14:13:28

【Java抗量子加密实战指南】:深入解析ML-KEM算法实现与迁移策略

第一章&#xff1a;Java抗量子加密算法ML-KEM实现随着量子计算的发展&#xff0c;传统公钥加密体系面临前所未有的安全威胁。ML-KEM&#xff08;Module-Lattice Key Encapsulation Mechanism&#xff09;作为NIST标准化的后量子密码候选算法之一&#xff0c;基于模块格上的学习…

作者头像 李华
网站建设 2026/3/10 11:18:20

(Java虚拟线程生产适配 checklist):12项关键评估项确保零故障上线

第一章&#xff1a;Java虚拟线程生产适配的背景与意义随着现代应用程序对高并发处理能力的需求日益增长&#xff0c;传统基于操作系统线程的并发模型逐渐暴露出资源消耗大、上下文切换开销高等问题。Java 虚拟线程&#xff08;Virtual Threads&#xff09;作为 Project Loom 的…

作者头像 李华
网站建设 2026/3/4 14:38:10

还在用Postman?FastAPI集成Swagger UI的7大调试优势你不可不知

第一章&#xff1a;FastAPI集成Swagger UI的调试革命FastAPI 作为现代 Python Web 框架&#xff0c;凭借其异步支持、类型提示和自动 API 文档生成功能&#xff0c;正在迅速成为构建高性能 API 的首选工具。其内置对 Swagger UI 的支持&#xff0c;使得开发者无需额外配置即可在…

作者头像 李华
网站建设 2026/3/11 4:01:16

Jupyter自动加载扩展autoreload提升TensorFlow开发效率

Jupyter自动加载扩展autoreload提升TensorFlow开发效率 在深度学习项目中&#xff0c;你有没有经历过这样的场景&#xff1a;刚修改完一个模型定义函数&#xff0c;回到 Jupyter Notebook 想验证效果&#xff0c;却发现代码没变&#xff1f;检查了好几遍文件保存状态&#xff0…

作者头像 李华
网站建设 2026/3/10 3:28:02

行为型-中介者模式

1. 项目结构 项目结构mediator-pattern-demo/├── src/│ └── main/│ └── java/│ └── com/│ └── example/│ └── mediator/│ ├── Mediator.java│ ├…

作者头像 李华