首先明确用寄存器开发玩的就是内存
通过地址映像我们了解到这块内存
如下图想要玩哪个功能就玩哪块的内存
以GPIOA外设为例
玩的就是 0x4001 0800 - 0x4001 0BFF这块内存
通过地址偏移可以有更详细的配置
0x4001 0800 +0x00就访问到了这个寄存器
访问到了你得玩起来呀,使用*解引用且赋值就可以操作这块内存了,按照参考手册正确的赋值的值就可以达到你想要的效果。
例如CRL寄存器解引用 |=0001 意思就是配置为通用推挽输出,且输出模式最大速度为10MHZ 这里只是举例,实际还需考虑移位,不影响其它位,总结就是与(&)0是清除,或(|)是赋值
上述只是对stm32寄存器的开发做一个大致的说明 想要真正的实现功能需要多个寄存器配合。
|