OpenEdv-开源电子网

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

直接操做寄存器的这是什么意思啊?

[复制链接]

19

主题

40

帖子

0

精华

初级会员

Rank: 2

积分
108
金钱
108
注册时间
2015-12-22
在线时间
15 小时
发表于 2016-4-21 17:14:20 | 显示全部楼层 |阅读模式
1金钱
        GPIOB->CRH &= 0xFFF00FFF;
        GPIOB->CRH |= 0x00033000;
        GPIOB->ODR |= 3<<11;
首次看操纵寄存器的程序,谁知道这是啥意思?

最佳答案

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

难怪人家骂你, 第一句 将IO引脚 B11,B12控制寄存器的之前设置清零 第二句 再将 B11,B12 的控制寄存器的值设置为强推输出模式 第三句 置 B11,B12 输出为高电平, 上拉的意思
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

9

主题

507

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3347
金钱
3347
注册时间
2013-4-10
在线时间
333 小时
发表于 2016-4-21 17:14:21 | 显示全部楼层
难怪人家骂你,

第一句 将IO引脚 B11,B12控制寄存器的之前设置清零
第二句 再将 B11,B12 的控制寄存器的值设置为强推输出模式
第三句 置 B11,B12 输出为高电平, 上拉的意思
回复

使用道具 举报

70

主题

6761

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
13117
金钱
13117
注册时间
2012-11-26
在线时间
3813 小时
发表于 2016-4-21 17:17:46 | 显示全部楼层
与或赋值都看不懂,说明你要去加强下C语言基础了
回复

使用道具 举报

0

主题

2

帖子

0

精华

新手入门

积分
28
金钱
28
注册时间
2015-5-31
在线时间
0 小时
发表于 2016-4-21 18:00:45 | 显示全部楼层
分别将CRH先与0xFFF00FFF取与,其余类推
回复

使用道具 举报

3

主题

794

帖子

0

精华

资深版主

Rank: 8Rank: 8

积分
1502
金钱
1502
注册时间
2015-3-3
在线时间
460 小时
发表于 2016-4-21 18:06:06 | 显示全部楼层
设置PB11、12推挽输出
高电平输出
回复

使用道具 举报

9

主题

80

帖子

0

精华

初级会员

Rank: 2

积分
192
金钱
192
注册时间
2015-2-9
在线时间
51 小时
发表于 2016-4-21 22:50:39 | 显示全部楼层
最基本的都不懂 还是别玩了
回复

使用道具 举报

30

主题

1170

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1993
金钱
1993
注册时间
2016-2-16
在线时间
527 小时
发表于 2016-4-23 11:08:22 | 显示全部楼层
你直接用库函数,库函数还是去操作寄存器的,你还是弄清楚什么是寄存器吧
回复

使用道具 举报

19

主题

40

帖子

0

精华

初级会员

Rank: 2

积分
108
金钱
108
注册时间
2015-12-22
在线时间
15 小时
 楼主| 发表于 2016-5-8 22:09:55 | 显示全部楼层
jermy_z 发表于 2016-4-21 17:17
与或赋值都看不懂,说明你要去加强下C语言基础了

不回答就别瞎逼逼,已经鉴定成功,你真的是个垃圾
回复

使用道具 举报

70

主题

6761

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
13117
金钱
13117
注册时间
2012-11-26
在线时间
3813 小时
发表于 2016-5-8 23:23:42 | 显示全部楼层
北宸宸 发表于 2016-5-8 22:09
不回答就别瞎逼逼,已经鉴定成功,你真的是个垃圾

你就是个傻逼,不适合干技术工作
学无止境
回复

使用道具 举报

1

主题

78

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
211
金钱
211
注册时间
2015-12-10
在线时间
49 小时
发表于 2016-5-9 02:54:05 | 显示全部楼层
第一句,把GPIOB的CRH寄存器的D19~D12等八个二进位清零;
第二句,把D18、D16、D14和D12等四位置1;
第三句,把1011b左移三位,即把D6、D4和D3置1。

操作寄存器,看似直接,其实弊端也明显,不直观(俺想,没有人会长期记住某寄存器的某位的定义),可读性差,容易出错且排错困难。

所以,俺认为还是应该推荐采用库函数方式,已经预定义的符号常量很容易记忆和阅读。
逆水行舟不进则退
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-8 12:25

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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