微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > ARM技术讨论 > GPIO作为输入口来点亮LED的实验程序问题

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

时间:10-02 整理:3721RD 点击:
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做比较?

是没有输出值,但它有个返回值,返回的就是当前管脚的当前状态(0或1),而Bit_RESET应该是一个定义的变量(且为0),并不一定要输出值。你可以看固件函数库接下来的那个示例,它说的是把B口7脚的返回值赋值给一个8位的变量ReadValue,可见你所说的Bit_SET(或Bit_RESET)和GPIO_ReadInputDataBit(GPIOD, GPIO_Pin_5) 是可以比较的,OK。

我参考的是STM32F10x 2007年10月第二版的中文译本。当然,那个示例函数没有中文注解。

恩恩,我理解了,谢谢!

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top