找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2612|回复: 9
收起左侧

C语言GPIOC->ODR = 1<<11

[复制链接]
ID:978416 发表于 2022-12-21 12:46 | 显示全部楼层 |阅读模式
在CSDN看到两种写法
GPIOA->ODR|=1<<8;
GPIOA->ODR =1<<8;
请问这两种写法一样吗
回复

使用道具 举报

ID:460753 发表于 2022-12-21 16:10 | 显示全部楼层
不一样:
GPIOA->ODR|=1<<8; 只把第8位置1,其余位保留不变。
GPIOA->ODR =1<<8; 把第8位置1的同时,其他位也会清除为0
回复

使用道具 举报

ID:518190 发表于 2022-12-21 18:36 | 显示全部楼层
结果是一样的。(1)或运算比较好,比如之前写过GPIOA_PIN的数据,后面再写入或运算,不影响之前的数据。(2)第二种写法直接把之前数据覆盖了。当然也可以重新算新写入的是多少再覆盖,这样也不影响结果。
回复

使用道具 举报

无效楼层,该帖已经被删除
ID:978416 发表于 2022-12-22 09:26 | 显示全部楼层
保夫鲁沙 发表于 2022-12-21 18:36
结果是一样的。(1)或运算比较好,比如之前写过GPIOA_PIN的数据,后面再写入或运算,不影响之前的数据。( ...

好的,非常感谢
回复

使用道具 举报

ID:401564 发表于 2022-12-23 21:15 | 显示全部楼层

同样类型的问题,问了两次......
沙发已经说明了
难不成你还认为结果是一样的吗?
结果不一样!也不存在哪种好,哪种坏,这是两种不同的操作,没有好坏之分
回复

使用道具 举报

ID:420836 发表于 2022-12-24 08:40 | 显示全部楼层
前者是运行等号右边的设置,不去掉前面的位设置,后者是先去掉前面的位值,再运行等号右边的操作。
回复

使用道具 举报

ID:712493 发表于 2022-12-24 09:25 | 显示全部楼层
->  这个是C运算符?
回复

使用道具 举报

ID:401564 发表于 2022-12-24 11:14 | 显示全部楼层
fj51hei 发表于 2022-12-24 09:25
->  这个是C运算符?

指向结构体成员运算符
回复

使用道具 举报

ID:77589 发表于 2022-12-27 10:40 | 显示全部楼层
肯定不一样!沙发讲的明白透彻!
回复

使用道具 举报

ID:513507 发表于 2022-12-27 16:41 | 显示全部楼层
保夫鲁沙 发表于 2022-12-21 18:36
结果是一样的。(1)或运算比较好,比如之前写过GPIOA_PIN的数据,后面再写入或运算,不影响之前的数据。( ...

正解,正解,正解
回复

使用道具 举报

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

本版积分规则

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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