你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

STM32程序代码

[复制链接]
aa随风而来 提问时间:2017-8-24 13:25 /
GPIOA->ODR &=0XFF0F; //将第 4-7 位清 0;
看了很久还是不明白有什么意思,后面虽然有解释,但还是不明白


收藏 评论6 发布时间:2017-8-24 13:25

举报

6个回答
张亚飞 回答时间:2017-8-24 13:52:47
加油
回答时间:2017-8-24 13:53:02
下面两个算法是一样的,都是将bit4-7清零。&的基本运算法则:都是1时1,只要有一个为0就是0。
GPIOA->ODR &=0XFF0F;
GPIOA->ODR   =GPIOA->ODR  & 0XFF0F;
aa随风而来 回答时间:2017-8-24 13:58:29
安 发表于 2017-8-24 13:53
下面两个算法是一样的,都是将bit4-7清零。&的基本运算法则:都是1时1,只要有一个为0就是0。
GPIOA->ODR & ...

为什么是FF0F呢
小随风 回答时间:2017-8-24 14:22:45
&是“与”运算逻辑,换成数学就是“乘法”,但是和乘法又不太一样。比如说1&1=1,1&0=0,0&0=0
ODR这个寄存器有16位,分别对应PA0-PA16,而“0xFF0F”之中的“0”正好是PA4-PA7这四个IO口
再回过头来看这个算式,GPIOA->ODR &=0XFF0F;
说的就是ODR这个寄存器与0xFF0F进行“与”运算,这个算法的意思就是在不改变其他IO口的情况下,把PA4-PA7置0
最后楼主还是好好补补基础吧,感觉你基础不行

评分

参与人数 1ST金币 +2 收起 理由
zero99 + 2

查看全部评分

aa随风而来 回答时间:2017-8-24 14:33:59
小随风 发表于 2017-8-24 14:22
&是“与”运算逻辑,换成数学就是“乘法”,但是和乘法又不太一样。比如说1&1=1,1&0=0,0&0=0
ODR这个寄存 ...

好的,谢谢解惑
五哥1 回答时间:2017-8-27 10:34:41
要看手册,知道PA4-PA7的地址,才能知道为啥用0XFF0F

评分

参与人数 1ST金币 +2 收起 理由
zero99 + 2

查看全部评分

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版