STM32原理性知识

文章目录

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触发器保存值,并通过这些值(给高低电平)控制门电路的开关,从而改变整个外设时序电路的状态。这就是为啥我们像外设地址写值可以控制外设的状态的根本原因。

相关推荐
Deitymoon9 小时前
STM32——蓝牙模块双串口控制led
stm32·单片机·嵌入式硬件
xiangw@GZ11 小时前
智能锁TouchKey的抗干扰设计【2】-软件算法
嵌入式硬件
iCxhust11 小时前
微机原理实践教程(C语言篇)---A001闪烁灯
c语言·开发语言·汇编·单片机·嵌入式硬件·51单片机·微机原理
一起搞IT吧11 小时前
相机Camera日志实例分析之二十:相机Camx【照片后置4800/5000/6400万拍照】单帧流程日志详解
android·嵌入式硬件·数码相机·智能手机
笨笨饿12 小时前
69_如何给自己手搓一个串口
linux·c语言·网络·单片机·嵌入式硬件·算法·个人开发
FreakStudio17 小时前
MicroPython 内核开发者直接狂喜!这个 Claude 插件市场,把开发全流程做成了「对话式外挂」
python·单片机·嵌入式·面向对象·并行计算·电子diy
天诚智能门锁17 小时前
天诚公租房管控平台CAT.1人脸猫眼智能锁助力青神县公租房管理
人工智能·嵌入式硬件·物联网·智能家居·智能硬件
m0_3771081420 小时前
5月1日zzz
单片机
踏着七彩祥云的小丑20 小时前
嵌入式——认识电子元器件——晶体谐振器系列
单片机·嵌入式硬件