morrisk 发表于 2022-6-8 22:50

寄存器地址与结构体

stm32f103寄存器地址与结构体是怎么关联的

dingy 发表于 2022-6-8 22:52

什么意思?不是很明白你说的什么,能再解释一下这个现象吗

morrisk 发表于 2022-6-8 22:55

比如说GPIOA->CRL,是如何就知道CRL的具体地址了,这里具体只是定义了GPIOA的基地址,GPIO_TypeDef结构体中的寄存器成员是如何和实际寄存器相关联的   

zwll 发表于 2022-6-8 22:56

这个是C语音的概念吧,没深究过

zwll 发表于 2022-6-8 23:01

基地址加偏移,看应用手册里面CRL的地址是不是这样构成的

chuxh 发表于 2022-6-9 18:46

基地址加偏移,看应用手册里面CRL的地址是不是这样构成的

pengf 发表于 2022-6-9 18:50

主要对地址要了解透彻

huangchui 发表于 2022-6-9 18:52

基地址+偏移

juventus9554 发表于 2022-6-9 18:56

这要研究头文件怎么写的了。

morrisk 发表于 2022-6-9 18:59

我看了库以及相关头文件的定义并没有看到加偏移量的地方

bqyj 发表于 2022-6-9 19:00

typedef struct
{
__IO uint32_t CRL;
__IO uint32_t CRH;
__IO uint32_t IDR;
__IO uint32_t ODR;
__IO uint32_t BSRR;
__IO uint32_t BRR;
__IO uint32_t LCKR;
} GPIO_TypeDef;

看结构定义CRL偏移量是0,寄存器定义的是uint32_t型,32位,下一个CRH偏移量是0x04。C语言要加强练习了。

morrisk 发表于 2022-6-9 19:02

大神说的是,一定的加强了

juventus9554 发表于 2022-6-9 19:05

用的是结构指针,用结构体将寄存器地址排列好,然后指向的是x40000000+偏移量

renyaq 发表于 2022-6-9 19:07

就是个指向特定位置的结构体指针而已,没啥特别

morrisk 发表于 2022-6-9 19:09


其实还是不大明白,我再琢磨琢磨吧,多谢了哈先
页: [1]
查看完整版本: 寄存器地址与结构体