OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3339|回复: 5

库函数是怎么对寄存器操作的?

[复制链接]

4

主题

11

帖子

0

精华

新手上路

积分
47
金钱
47
注册时间
2015-10-10
在线时间
0 小时
发表于 2015-10-10 11:15:19 | 显示全部楼层 |阅读模式
5金钱
库函数中的指针只是对结构体中的成员变量进行赋值,成员变量一般都和寄存器是一个名字,为什么结构体成员操作就可以对相应寄存器操作呢?

最佳答案

查看完整内容[请看2#楼]

M3的寄存器是连续线性的,结构体也是呀,只要把外设地址传入结构体的首地址,成员自然就是寄存器了
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

12

主题

47

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
237
金钱
237
注册时间
2015-2-25
在线时间
35 小时
发表于 2015-10-10 11:15:20 | 显示全部楼层
M3的寄存器是连续线性的,结构体也是呀,只要把外设地址传入结构体的首地址,成员自然就是寄存器了
回复

使用道具 举报

70

主题

6763

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
13129
金钱
13129
注册时间
2012-11-26
在线时间
3814 小时
发表于 2015-10-10 11:18:29 | 显示全部楼层
库函数最底层还是寄存器操作
学无止境
回复

使用道具 举报

4

主题

11

帖子

0

精华

新手上路

积分
47
金钱
47
注册时间
2015-10-10
在线时间
0 小时
 楼主| 发表于 2015-10-10 11:25:56 | 显示全部楼层
哦哦,原来如此,谢谢大家!
回复

使用道具 举报

81

主题

1002

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
1876
金钱
1876
注册时间
2014-9-10
在线时间
208 小时
发表于 2015-10-10 11:27:07 | 显示全部楼层
例如stm32f10x.h定义了:
 #define ADC1                ((ADC_TypeDef *) ADC1_BASE)

ADC1指向了固定了地址ADC1_BASE,这个你可以跟踪查看。

对ADC1寄存器如ADC1->CR1 = 123;操作,
就是对固定的地址操作,这个固定地址肯定是寄存器地址吧。
小小蜗牛
回复

使用道具 举报

2

主题

6

帖子

0

精华

新手上路

积分
34
金钱
34
注册时间
2015-10-11
在线时间
0 小时
发表于 2015-10-11 16:26:00 | 显示全部楼层
回复【5楼】jiutianshenjian:
---------------------------------
怎么知道他赋了123的值??
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-19 05:12

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表