GPIO作为输入口来点亮LED的实验程序问题

2019-07-16 09:54发布

while (1)
        {
                /* 采用查询方式,等待按键按下 */
                while (1)
                {
                        if (GPIO_ReadInputDataBit(GPIOD, GPIO_Pin_5) == Bit_RESET)
                        {
                                GPIO_ResetBits(GPIOB, GPIO_Pin_0);        /* 点亮LED0 */
                                break;
                        }       
                }

                /* 采用查询方式,等待按键释放 */
                while (1)
                {
                        if ((GPIO_ReadInputDataBit(GPIOD, GPIO_Pin_5) == Bit_SET))       
                        {
                                GPIO_SetBits(GPIOB, GPIO_Pin_0);        /* 关闭LED0 */
                                break;
                        }
                }
        }

我查询了GPIO_ReadInputDataBit这个库函数无输出参数,那怎么和Bit_SET和Bit_RESET做比较?

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
3条回答
sh151
1楼-- · 2019-07-16 11:54
是没有输出值,但它有个返回值,返回的就是当前管脚的当前状态(0或1),而Bit_RESET应该是一个定义的变量(且为0),并不一定要输出值。你可以看固件函数库接下来的那个示例,它说的是把B口7脚的返回值赋值给一个8位的变量ReadValue,可见你所说的Bit_SET(或Bit_RESET)和GPIO_ReadInputDataBit(GPIOD, GPIO_Pin_5) 是可以比较的,OK。
sh151
2楼-- · 2019-07-16 14:11
我参考的是STM32F10x 2007年10月第二版的中文译本。当然,那个示例函数没有中文注解。
714531
3楼-- · 2019-07-16 16:34
sh151 发表于 2013-9-3 21:57
是没有输出值,但它有个返回值,返回的就是当前管脚的当前状态(0或1),而Bit_RESET应该是一个定义的变量 ...

恩恩,我理解了,谢谢!

一周热门 更多>