OpenEdv-开源电子网

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

stm32GPIO赋值问题

[复制链接]

22

主题

57

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
291
金钱
291
注册时间
2013-11-6
在线时间
31 小时
发表于 2013-12-27 14:33:16 | 显示全部楼层 |阅读模式
我想给GPIOD的高8位赋值,但是不想赋值的时候影响低8位,以下程序是否可以实现呢?请大神们指导,假如我要给高8位全写1
outdat=0xFF00;
uint16_t tmpdat;

tmpdat=GPIO_ReadOutputData(GPIOD);
outdat|=(tmpdat&0x00FF);
GPIO_Write(GPIOD,outdat);
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

14

主题

338

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
464
金钱
464
注册时间
2013-6-15
在线时间
15 小时
发表于 2013-12-27 15:12:31 | 显示全部楼层
语录好像没错,不过直接用BSRR寄存器一句话就可以了,GPIOD->BSRR = (dat & 0xff00) | (~dat & 0xff00)<<16;
回复 支持 反对

使用道具 举报

2

主题

23

帖子

0

精华

初级会员

Rank: 2

积分
51
金钱
51
注册时间
2013-12-27
在线时间
0 小时
发表于 2013-12-27 16:51:15 | 显示全部楼层
还是直接操作寄存器快
回复 支持 反对

使用道具 举报

14

主题

338

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
464
金钱
464
注册时间
2013-6-15
在线时间
15 小时
发表于 2013-12-27 20:18:11 | 显示全部楼层
回复【3楼】Beyond Myself:
---------------------------------
嗯,写的快执行也快,不过还是要跟库函数结合起来用的好
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-7-7 09:25

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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