[求助] 菜鸟求教,如何判断一个gpio口状态

lczxxx123   2014-11-17 01:03 楼主
一个自学的菜鸟,在程序中加入了controlsuit里面sample的一些片段(前面的设置没有列出来)
    GPIO_setPullUp(myGpio, GPIO_Number_6, GPIO_PullUp_Enable);
    GPIO_setHigh(myGpio, GPIO_Number_6);
    GPIO_setMode(myGpio, GPIO_Number_6, GPIO_6_Mode_GeneralPurpose);
    GPIO_setDirection(myGpio, GPIO_Number_6, GPIO_Direction_Output);
    GPIO_setPullUp(myGpio, GPIO_Number_34, GPIO_PullUp_Enable);
    GPIO_setMode(myGpio, GPIO_Number_34, GPIO_34_Mode_GeneralPurpose);
    GPIO_setDirection(myGpio, GPIO_Number_34, GPIO_Direction_Input);
只想实现分辨高低电平的功能,于是把6定义成输出,把34定义成输入,想知道如何控制输出是高是低,以及如何知道输入的是高是低?

回复评论 (10)

库文件里面应该还有其他的函数,是写io口的,还有读io口的。按照你的意思,你就把6号口和32号口连接起来,然后用写IO的函数把6号口给1,然后去读32号口的值。。。如果是1就行了。
点赞  2014-11-17 09:14
你们都开始用基于库的开发了吗?
点赞  2014-11-17 17:30
用库操作GPIO感觉效率很低啊
一心一意,精益求精
点赞  2014-11-18 08:46
我直接用GPIO_getData了。。。
点赞  2014-11-18 19:09
引用: Laspide 发表于 2014-11-18 08:46
用库操作GPIO感觉效率很低啊

求教高效率
点赞  2014-11-18 19:09
引用: 无奇不有 发表于 2014-11-17 09:14
库文件里面应该还有其他的函数,是写io口的,还有读io口的。按照你的意思,你就把6号口和32号口连接起来, ...

嗯,看了看头文件找到了
点赞  2014-11-18 19:29
引用: lczxxx123 发表于 2014-11-18 19:09
求教高效率

只说初始化,可以考虑整个Port口同时初始化。
两三个IO口,单个初始化还无所谓;
如果用到几十个IO口,这个开销就有些可观了。
当然,不差这点时间就无所谓了。
IO口应该可以单独操作,看情况使用了。

一心一意,精益求精
点赞  2014-11-19 11:20
引用: lczxxx123 发表于 2014-11-18 19:29
嗯,看了看头文件找到了

恩恩,那就好了。。。
点赞  2014-11-21 11:09
引用: still89 发表于 2014-11-17 17:30
你们都开始用基于库的开发了吗?

这个是什么意思?你难道还在配置寄存器么?天啊,不得不佩服你的耐心啊,那厚厚的英文文档我是没有耐心看下去了。。。据说配置寄存器用起来很灵活,整个配置也比较敞亮,一旦出了什么问题基本上很快就能找到源头。可是我用库函数也基本上没有遇到过什么问题。。。
我个人的建议还是学习配置寄存器,但是具体操作的时候还是用库函数吧,因为程序猿从来都不写不用写的代码。。。您觉着呢?
点赞  2014-11-21 11:12
引用: Laspide 发表于 2014-11-18 08:46
用库操作GPIO感觉效率很低啊

这个作何解释啊?库函数中的代码写的质量很高了吧?你说的效率低怎么解释?而且我觉着,初始化也就是启动一下,这个时间无所谓了吧??欢迎讨论哦。。。
点赞  2014-11-21 11:15
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复