社区导航

 
快捷导航
  • 首页
  • 论坛
  • 查看新帖
  • 最新回复
  • 社区活动
  • 联系管理员
  • 消灭零回复
  • E金币兑换
  • 干货
搜索
查看: 138|回复: 5

[求助] 帮忙解释两句程序,关于IO口的

[复制链接]

202

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

发表于 2018-7-12 15:53:40 | 显示全部楼层 |阅读模式
帮忙解释两句程序,关于IO口的。作为小白,用stm32的时候一直用的是库函数,所以遇到这两句就蒙圈了,快来一波大神砸死我吧~

1. GPIOG->MODER&=~(3<<(9*2));GPIOG->MODER|=0<<9*2;
2. GPIOG->MODER&=~(3<<(9*2));GPIOG->MODER|=1<<9*2;


此帖出自stm32/stm8论坛


回复

使用道具 举报

343

TA的帖子

5

TA的资源

一粒金砂(高级)

Rank: 3Rank: 3

发表于 2018-7-12 16:24:44 | 显示全部楼层
就是对寄存器的某位置1或清零啊,自己算一下那个移位操作的值,然后对照手册就查出来了


回复

使用道具 举报

3463

TA的帖子

11

TA的资源

五彩晶圆(高级)

Rank: 9Rank: 9Rank: 9

发表于 6 天前 | 显示全部楼层
就是普通的操作寄存器语句。c语言基础好好看看。在看看对应寄存器那些位的含义。就明白了。

点评

嗯,宝宝看明白啦,多谢  详情 回复 发表于 4 天前


回复

使用道具 举报

202

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

 楼主| 发表于 4 天前 | 显示全部楼层
ienglgge 发表于 2018-7-16 19:24
就是普通的操作寄存器语句。c语言基础好好看看。在看看对应寄存器那些位的含义。就明白了。

嗯,宝宝看明白啦,多谢


回复

使用道具 举报

3169

TA的帖子

0

TA的资源

版主

Rank: 6Rank: 6

发表于 前天 00:19 | 显示全部楼层
GPIOG->MODER&=~(3<<(9*2));GPIOG->MODER|=0<<9*2;
这么写主要是为了方便对应,3代表2位操作,9代表第九组,2代表每组两位
&非清0,| 置位
这种逻辑操作很多,主要目的是不影响其它无关位

点评

为什么 stm32F405中,操作第15个端口像下面这样写就提示超出范围? GPIOG->MODER&=~(3  详情 回复 发表于 前天 08:39


回复

使用道具 举报

202

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

 楼主| 发表于 前天 08:39 | 显示全部楼层

为什么 stm32F405中,操作第15个端口像下面这样写就提示超出范围?
GPIOG->MODER&=~(3<<(15*2));GPIOG->MODER|=0<<15*2;


回复

使用道具 举报

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

本版积分规则

  • 论坛活动 E手掌握

    扫码关注
    EEWORLD 官方微信

  • EE福利  唾手可得

    扫码关注
    EE福利 唾手可得

小黑屋|手机版|Archiver|电子工程世界 ( 京ICP证 060456

GMT+8, 2018-7-22 01:45 , Processed in 0.172710 second(s), 16 queries , Gzip On, Redis On.

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