打印

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

[复制链接]
5351|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 编辑

是不是有其他网站链接的帖子就发不了啊。。。。。。

使用特权

评论回复
5
hongdan0714jin|  楼主 | 2011-10-18 16:24 | 只看该作者
俺用了个类型转换,警告没有了。。。

使用特权

评论回复
6
keasen| | 2013-8-17 21:01 | 只看该作者
可以吧
先定义  #define LED0 PAout(2)// PA2

在用到的地方 LED0=!LED0;

使用特权

评论回复
7
outstanding| | 2013-8-17 21:13 | 只看该作者
用与或操作,或者其他

使用特权

评论回复
8
tong1991海深| | 2013-8-19 10:13 | 只看该作者
先定义个变量赋初值 i = 0;
然后 i = ~i;
最后 GPIO_WriteBit(GPIOA,GPIO_Pin_8,bit(i));

使用特权

评论回复
9
奔牛滚滚| | 2013-8-19 10:48 | 只看该作者
库函数里面有reverse这个函数,直接调用就是了

使用特权

评论回复
10
dyy0624| | 2013-8-19 14:11 | 只看该作者
GPIO_WriteReverse(GPIO_TypeDef* GPIOx, GPIO_Pin_TypeDef PortPins);

使用特权

评论回复
11
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

使用特权

评论回复
12
hkcj| | 2013-8-19 18:51 | 只看该作者
重新定义一下端口设置   看看能不能解决问题

使用特权

评论回复
13
tong1991海深| | 2013-8-19 21:05 | 只看该作者
keasen 发表于 2013-8-19 18:14
这种方式也是可以,不过你那个函数多了个括号

没有把 bit(i) 就是:  如果i 不为0  则  结果为 1,反之  结果为 0

使用特权

评论回复
14
gonggu8181| | 2013-8-19 23:29 | 只看该作者
                        GPIO_WriteBit(GPIOC, GPIO_Pin_3, 
                                (BitAction)(1-(GPIO_ReadOutputDataBit(GPIOC, GPIO_Pin_3))));

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

10

主题

807

帖子

1

粉丝