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

相关推荐
不悔哥1 天前
开源OV-Watch:怎么做一个智能手表
单片机·开源·嵌入式
XiHongShi20161 天前
STM32F407 RTC定时器例程,建议保存
stm32·单片机·学习
优信电子1 天前
AIT1001 非接触式红外测温模块 STM32 驱动开发实战:从引脚到代码全解析
stm32·嵌入式·温度传感器·红外测温·非接触式测温·ait1001
深圳老胡1 天前
STM32F407 控制 L6470 步进电机驱动 —— 控制过程简介
笔记·stm32·单片机·嵌入式硬件·代码规范
wuyk5551 天前
《WiFi 嵌入式物联网开发全套实战》| 第 16 章 ESP32 AP+STA 双模共存原理与工程坑点
网络·stm32·物联网
女神下凡1 天前
嵌入式设计的各种存储芯片的硬件/软件设计规范,非常全面。
arm开发·单片机·嵌入式硬件
梅梅9661 天前
一款mipi转lvds的lcd调试(LT8912B)
单片机·计算机外设·电脑·显示器·pd芯片
开发笔记-阿牛1 天前
蓝牙音乐灯拆解,又一次拆到蓝牙音乐灯芯片CK6865L
人工智能·单片机·嵌入式硬件·音视频·音频
从零开始的嵌入式之旅1 天前
day47
arm开发·经验分享·笔记·嵌入式硬件
恒锐丰科技林技术员1 天前
EG1164 高压大电流升压同步整流芯片解析
经验分享·嵌入式硬件·硬件工程