野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 16007|回复: 3

带参宏 电平翻转(按键控制)

[复制链接]
发表于 2015-2-4 15:52:12 | 显示全部楼层 |阅读模式
这个是stm32关于位控制电平翻转的带参宏,小弟不是很理解,请大神指教!
#define digitalToggle(p,i)                {p->ODR ^=i;}(程序源码)       
我的理解:例如ODR=1101 1111(高16位都是0,这里就不写了)
              假设i=5,即是0000 0101(即是选择第5个pin)
         进行异或运算是 1101 1010
可是按照本意,如果i=5,就是第5位翻转,那应该是1111 1111
到底是我哪里理解错了呢?恳请大神指教
       

回复

使用道具 举报

发表于 2015-2-4 16:16:47 | 显示全部楼层
异或,使某一位的电平反转
回复 支持 反对

使用道具 举报

发表于 2015-2-4 16:21:56 | 显示全部楼层
你要看清楚,使用的时候不是用i=5这样用的,而且是st库的GPIO_PIN_X定义:
#define GPIO_Pin_0                 ((uint16_t)0x0001)  /* Pin 0 selected */
#define GPIO_Pin_1                 ((uint16_t)0x0002)  /* Pin 1 selected */
#define GPIO_Pin_2                 ((uint16_t)0x0004)  /* Pin 2 selected */
#define GPIO_Pin_3                 ((uint16_t)0x0008)  /* Pin 3 selected */
#define GPIO_Pin_4                 ((uint16_t)0x0010)  /* Pin 4 selected */
#define GPIO_Pin_5                 ((uint16_t)0x0020)  /* Pin 5 selected */
#define GPIO_Pin_6                 ((uint16_t)0x0040)  /* Pin 6 selected */
#define GPIO_Pin_7                 ((uint16_t)0x0080)  /* Pin 7 selected */
#define GPIO_Pin_8                 ((uint16_t)0x0100)  /* Pin 8 selected */
#define GPIO_Pin_9                 ((uint16_t)0x0200)  /* Pin 9 selected */
#define GPIO_Pin_10                ((uint16_t)0x0400)  /* Pin 10 selected */
#define GPIO_Pin_11                ((uint16_t)0x0800)  /* Pin 11 selected */
#define GPIO_Pin_12                ((uint16_t)0x1000)  /* Pin 12 selected */
#define GPIO_Pin_13                ((uint16_t)0x2000)  /* Pin 13 selected */
#define GPIO_Pin_14                ((uint16_t)0x4000)  /* Pin 14 selected */
#define GPIO_Pin_15                ((uint16_t)0x8000)  /* Pin 15 selected */
#define GPIO_Pin_All               ((uint16_t)0xFFFF)  /* All pins selected */
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2015-2-4 16:26:10 | 显示全部楼层
谢谢大神,受教了~~~
回复 支持 反对

使用道具 举报

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

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-12-29 09:08 , Processed in 0.050601 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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