怎样用库函数实现GPIO输出取反操作?

[复制链接]
6685|13
 楼主| hongdan0714jin 发表于 2011-10-17 16:05 | 显示全部楼层 |阅读模式
有什么好的方法实现GPIO_WriteBit()函数可以实现取反操作。
我这样弄的,觉得不好
char Set0;
Set0=~Set0;
GPIO_WriteBit(GPIOA,GPIO_Pin_8,Set0);
这样能实现取反,可是最后一个参数的参数类型被改掉了,应该不好。所以,想找一个好的方法。。。
上官金虹 发表于 2011-10-17 16:08 | 显示全部楼层
C++ IO口翻转:

GPIO_LED_1<<IO_TOGGLE;
whlz58 发表于 2011-10-17 16:11 | 显示全部楼层
异或 BIT(n)
 楼主| hongdan0714jin 发表于 2011-10-17 16:27 | 显示全部楼层
本帖最后由 hongdan0714jin 于 2011-10-17 16:30 编辑

是不是有其他网站链接的帖子就发不了啊。。。。。。
 楼主| hongdan0714jin 发表于 2011-10-18 16:24 | 显示全部楼层
俺用了个类型转换,警告没有了。。。
keasen 发表于 2013-8-17 21:01 | 显示全部楼层
可以吧
先定义  #define LED0 PAout(2)// PA2

在用到的地方 LED0=!LED0;
outstanding 发表于 2013-8-17 21:13 | 显示全部楼层
用与或操作,或者其他
tong1991海深 发表于 2013-8-19 10:13 | 显示全部楼层
先定义个变量赋初值 i = 0;
然后 i = ~i;
最后 GPIO_WriteBit(GPIOA,GPIO_Pin_8,bit(i));
奔牛滚滚 发表于 2013-8-19 10:48 | 显示全部楼层
库函数里面有reverse这个函数,直接调用就是了
dyy0624 发表于 2013-8-19 14:11 | 显示全部楼层
GPIO_WriteReverse(GPIO_TypeDef* GPIOx, GPIO_Pin_TypeDef PortPins);
keasen 发表于 2013-8-19 18:14 | 显示全部楼层
tong1991海深 发表于 2013-8-19 10:13
先定义个变量赋初值 i = 0;
然后 i = ~i;
最后 GPIO_WriteBit(GPIOA,GPIO_Pin_8,bit(i)); ...

这种方式也是可以,不过你那个函数多了个括号:lol
hkcj 发表于 2013-8-19 18:51 | 显示全部楼层
重新定义一下端口设置   看看能不能解决问题
tong1991海深 发表于 2013-8-19 21:05 | 显示全部楼层
keasen 发表于 2013-8-19 18:14
这种方式也是可以,不过你那个函数多了个括号

没有把 bit(i) 就是:  如果i 不为0  则  结果为 1,反之  结果为 0
gonggu8181 发表于 2013-8-19 23:29 | 显示全部楼层
  1.                         GPIO_WriteBit(GPIOC, GPIO_Pin_3,
  2.                                 (BitAction)(1-(GPIO_ReadOutputDataBit(GPIOC, GPIO_Pin_3))));
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:潜水四年了。。。。。。

10

主题

807

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部