打印
[STM32F1]

寄存器地址与结构体

[复制链接]
847|14
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
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语音的概念吧,没深究过

使用特权

评论回复
5
zwll| | 2022-6-8 23:01 | 只看该作者
基地址加偏移,看应用手册里面CRL的地址是不是这样构成的

使用特权

评论回复
6
chuxh| | 2022-6-9 18:46 | 只看该作者
基地址加偏移,看应用手册里面CRL的地址是不是这样构成的

使用特权

评论回复
7
pengf| | 2022-6-9 18:50 | 只看该作者
主要对地址要了解透彻

使用特权

评论回复
8
huangchui| | 2022-6-9 18:52 | 只看该作者
基地址+偏移

使用特权

评论回复
9
juventus9554| | 2022-6-9 18:56 | 只看该作者
这要研究头文件怎么写的了。

使用特权

评论回复
10
morrisk|  楼主 | 2022-6-9 18:59 | 只看该作者
我看了库以及相关头文件的定义并没有看到加偏移量的地方

使用特权

评论回复
11
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语言要加强练习了。

使用特权

评论回复
12
morrisk|  楼主 | 2022-6-9 19:02 | 只看该作者
大神说的是,一定的加强了

使用特权

评论回复
13
juventus9554| | 2022-6-9 19:05 | 只看该作者
用的是结构指针,用结构体将寄存器地址排列好,然后指向的是x40000000+偏移量

使用特权

评论回复
14
renyaq| | 2022-6-9 19:07 | 只看该作者
就是个指向特定位置的结构体指针而已,没啥特别

使用特权

评论回复
15
morrisk|  楼主 | 2022-6-9 19:09 | 只看该作者

其实还是不大明白,我再琢磨琢磨吧,多谢了哈先

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

701

主题

6879

帖子

2

粉丝