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

STM32原理性知识

文章目录

    • 1、如何在STM32 实现原子操作
  • 2、寄存器是什么?为什么向外设地址写值可以控制外设的状态?

1、如何在STM32 实现原子操作

在CMSIS模块中已经提供了原子操作宏,用于操作16位或32位变量,包括ATOMIC_SET_BIT、ATOMIC_CLEAR_BIT、ATOMIC_MODIFY_REG,该功能是使用LDREX和STREX指令来实现的。可以通过对原子操作的封装实现互斥。
LDREX和STREX指令是Thumb指令集提供的排他加载和排他访问指令,用以实现排他性访问。

2、寄存器是什么?为什么向外设地址写值可以控制外设的状态?

寄存器是一段特殊的内存 ,寄存器通过存储器映射可以向内存一样寻址和访问,它实际上是硬件资源的一部分,它连接到硬件电路,所以对寄存器的写会变成对应的电路的电压,通过门电路,这种电压的改变对应到物理电路中。
每个外设是一块独立的时序电路,它内部有有一个叫D触发器的电路,这个电路可以保存高低电平,一个8bit的外设寄存器就是有8个D触发器,D触发器连接CPU的总线,通过存储器映射,CPU可以通过地址访问D触发器,所以CPU可以通过总线向D触发器写入高低电平(0 和 1),**同时,**D触发器连接外设内部的门电路,CPU向D触发器写0或1,D触发器保存值,并通过这些值(给高低电平)控制门电路的开关,从而改变整个外设时序电路的状态。这就是为啥我们像外设地址写值可以控制外设的状态的根本原因。

相关文章:

  • 一种基于大规模语言模型LLM的数据分析洞察生成方法
  • 如何在 Node.js 中使用 .env 文件管理环境变量 ?
  • Rust嵌入式开发环境搭建指南(基于Stm32+Vscode)
  • ASP3605同步降压调节器——满足汽车电子严苛要求的电源芯片方案
  • 数学之握手问题
  • Java替换jar包中class文件
  • Matlab概率区间预测全家桶更新了,新增光伏出力区间预测,4种分布可供预测
  • 【单片机通信技术应用——学习笔记三】液晶屏显示技术,取模软件的应用
  • AI重构工程设计、施工、总承包行业:从智能优化到数字孪生的产业革命
  • 【C++】八大常见的设计模式的实现与实践指南
  • Flink 内存管理
  • 3.18练习
  • 实现图片多种处理需求的实用工具
  • 功能安全实战系列06-英飞凌Tricore系列SMU详解
  • cc1.日期和进制问题———选择题。
  • Hadoop 启动,发现 namenode、secondary namenodes,这两个没有启动,报错超时。
  • dify重磅升级:从0.15.3安全升级1.1.0新手避坑指南
  • 前端 | debounce 防抖 vs 节流(throttle)
  • 【人工智能-前端OpenWebUI】--图表显示
  • Oracle 19C分区表索引小结
  • 关键词看中国经济“一季报”:稳,开局良好看信心
  • 敲定!今年将制定金融法、金融稳定法
  • 博物馆有一项活动40岁以上不能参加?馆方回应
  • 印巴在克什米尔实控线附近小规模交火,巴防长发出“全面战争”警告
  • 山东一季度GDP为23466亿元,同比增长6.0%
  • 神二十航天员公布