OpenEdv-开源电子网

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

C语言基础不懂,求助

[复制链接]

12

主题

26

帖子

0

精华

初级会员

Rank: 2

积分
94
金钱
94
注册时间
2015-3-13
在线时间
0 小时
发表于 2015-3-24 21:13:54 | 显示全部楼层 |阅读模式
5金钱
“例如你要设置 GPIOA 的第 1 个端口 值为 1,那么你只需要往寄存器 BSRR 的低 16 位对应位写 1 即可: GPIOA->BSRR=1<<1;
如果你要设置 GPIOA 的第 1 个端口值为 0,你只需要往寄存器高 16 位对应为写 1 即可: GPIOA->BSRR=1<<(16+1);”

本人小白,C语言懂一点,语句中字符什么意思
,对这两句话不理解,请详细解释

最佳答案

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

16+1=17,1<<17指将1左移17位,就成了0x00010000,赋给GPIOA->BSRR就实现了前面说的“向寄存器高16位对应位写1”这个操作,也就是GPIOA第一个端口为0,GPIOA是ST定义的一个结构体类型的指针,结构体指针使用->来访问成员,就是GPIOA->BSRR寄存器。 我劝楼主想学的话还是回头补补C语言吧,否则还是看不懂
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

14

主题

338

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
464
金钱
464
注册时间
2013-6-15
在线时间
15 小时
发表于 2015-3-24 21:13:55 | 显示全部楼层
16+1=17,1<<17指将1左移17位,就成了0x00010000,赋给GPIOA->BSRR就实现了前面说的“向寄存器高16位对应位写1”这个操作,也就是GPIOA第一个端口为0,GPIOA是ST定义的一个结构体类型的指针,结构体指针使用->来访问成员,就是GPIOA->BSRR寄存器。
我劝楼主想学的话还是回头补补C语言吧,否则还是看不懂
回复

使用道具 举报

2

主题

6

帖子

0

精华

新手上路

积分
34
金钱
34
注册时间
2015-1-13
在线时间
0 小时
发表于 2015-3-24 21:25:46 | 显示全部楼层
二进制的移位操作。找本C语言的书看看吧,基础不打好,会比较麻烦的。
回复

使用道具 举报

12

主题

26

帖子

0

精华

初级会员

Rank: 2

积分
94
金钱
94
注册时间
2015-3-13
在线时间
0 小时
 楼主| 发表于 2015-3-28 17:47:12 | 显示全部楼层
回复【3楼】as564335sa:
--------------------------------- 
懂了,谢了
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-24 11:13

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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