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

[复制链接]
1212|7
 楼主| lilyzigbee 发表于 2017-8-19 16:47 | 显示全部楼层 |阅读模式
大神们!求解答,这个问题已经困扰我三天
    比如说GPIOA->CRL,是如何就知道CRL的具体地址了,这里具体只是定义了GPIOA的基地址,GPIO_TypeDef结构体中的寄存器成员是如何和实际寄存器相关联的   
zhuomuniao110 发表于 2017-8-19 21:07 | 显示全部楼层
这个是C语音的概念吧,没深究过
微风 发表于 2017-8-19 21:57 | 显示全部楼层
基地址加偏移,看应用手册里面CRL的地址是不是这样构成的
643757107 发表于 2017-8-20 18:27 | 显示全部楼层
这要研究头文件怎么写的了。
 楼主| lilyzigbee 发表于 2017-8-20 21:48 | 显示全部楼层
微风 发表于 2017-8-19 21:57
基地址加偏移,看应用手册里面CRL的地址是不是这样构成的

我看了库以及相关头文件的定义并没有看到加偏移量的地方
微风 发表于 2017-8-20 22:04 | 显示全部楼层
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语言要加强练习了。
 楼主| lilyzigbee 发表于 2017-8-21 08:15 | 显示全部楼层
微风 发表于 2017-8-20 22:04
typedef struct
{
  __IO uint32_t CRL;

谢谢大神了,
 楼主| lilyzigbee 发表于 2017-8-21 08:20 | 显示全部楼层
微风 发表于 2017-8-20 22:04
typedef struct
{
  __IO uint32_t CRL;

大神说的是,一定的加强了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

13

主题

36

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部