5626|4

1803

帖子

0

TA的资源

五彩晶圆(高级)

楼主
 

谁来帮解释下 GPIO 的地址掩码的意思 [复制链接]

谁来帮解释下 GPIO 的地址掩码的意思


最新回复

以我的理解,这里其实是函数 GPIOPinWrite(GPIO_PORTD_BASE, GPIO_PIN_5 | GPIO_PIN_2 | GPIO_PIN_1,0xEB); 的实现。图中的地址掩码其实就是由引脚值左移2位得到的,掩码中的0用来屏蔽端口中不关注的位,1用来修改或者获取端口中关注的位。 由图,地址掩码中第1、2、5位为1,则只将值0xEB中的第1、2、5位的值去修改端口D中的第1、2、5位,而端口D中的其它位保持原来的值。 PD = (Val & mask)| (PD & (~mask)),其中PD原值为00011101,mask为00100110,要写的值Val为0xEB,可求得修改第1、2、5脚后的PD口的值为00111011 可以去看看函数GPIOPinWrite的原型,当然,代码不完全能解释,我觉得应该是跟硬件工艺有关。  详情 回复 发表于 2011-10-26 17:06
 
点赞 关注

回复
举报

1729

帖子

0

TA的资源

五彩晶圆(初级)

沙发
 
这个是什么东东??
 
 

回复

299

帖子

0

TA的资源

纯净的硅(高级)

板凳
 

回复 楼主 Study_Stellaris 的帖子

掩码的方式,可以实现只修改指定的IO口的管脚,而不影响其他位,比位操作还灵活;比如楼主举得例子,掩码是1、2、5位,不管向IO口写什么数据,只能改变这3位;这在很多时候避免了读-修改-写的问题。
 
 
 

回复

139

帖子

0

TA的资源

一粒金砂(高级)

4
 
GPIODATA寄存器包含了存储器的256个单元。在写操作过程中,如果与数据位相关联的地址位被设为1,那么GPIODATA寄存器的值将发生变化。如果被清零,那么该寄存器的值将保持不变。另外的就是不知说的了。。。
 
 
 

回复

85

帖子

0

TA的资源

一粒金砂(中级)

5
 
以我的理解,这里其实是函数
GPIOPinWrite(GPIO_PORTD_BASE, GPIO_PIN_5 | GPIO_PIN_2 | GPIO_PIN_1,0xEB);
的实现。图中的地址掩码其实就是由引脚值左移2位得到的,掩码中的0用来屏蔽端口中不关注的位,1用来修改或者获取端口中关注的位。
由图,地址掩码中第1、2、5位为1,则只将值0xEB中的第1、2、5位的值去修改端口D中的第1、2、5位,而端口D中的其它位保持原来的值。
PD = (Val & mask)| (PD & (~mask)),其中PD原值为00011101,mask为00100110,要写的值Val为0xEB,可求得修改第1、2、5脚后的PD口的值为00111011
可以去看看函数GPIOPinWrite的原型,当然,代码不完全能解释,我觉得应该是跟硬件工艺有关。
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表