位读写权限
| 简写 | 定义 |
|---|---|
| rw | (读写权) 可由程序进行读写 |
| r | (读权) 可由程序读取该位 |
| w | (写权) 可由程序写入该位 |
| rc_w1 | (读写权) 可由程序读取该位,向该位写1时清除位,写0对该位无影响 |
| rc_w0 | (读写权) 可由程序读取该位 ,向该位写0时清除位,写1对该位无影响 |
| rc_r | (读写权) 可由程序读取该位,读取时自动对该位置零,写0对该位无影响 |
| rs | (读写权) 可由程序读取该位,对该位写0时无影响 |
| t | (写权) 写入1时触发,写入0时无影响 |
读写方法
寄存器存在于一个特定内存位置上,对这个位置进行读写即可
D语言内操作的代码如下
import core.volatile;
uint *GPIOE_MODER = cast(uint*)0x40021000;
auto read_val = volatileLoad(GPIOE_MODER); // 读取寄存器内的值
volatileStore(GPIOE_MODER ,read_val ); // 把值写回寄存器
其他相关
volatile 关键字的作用就避免程序优化导致内存地址的值被缓冲在寄存器内,不能即使反应寄存器状态.
由于D没有volatile 关键字,所以需要通过 uint volatileLoad(uint* ptr) 函数对寄存器地址进行读取操作 void volatileStore(uint* ptr, uint value) 函数对寄存器进行写操作.
mculib4d
这是我搞的一套d语言搞 Cortex-M4 单片机的库,详情可以在 https://gitee.com/sdvcn/mculib4d 这里了解
本文详细介绍了D语言中针对Cortex-M4系列微控制器寄存器的读写权限,如rw、r、w等,并提供了相应的读写方法示例,如使用volatileLoad和volatileStore函数。此外,还提到了mculib4d库,这是一个专为D语言设计的Cortex-M4单片机库。

9632

被折叠的 条评论
为什么被折叠?



