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做比较?
{
/* 采用查询方式,等待按键按下 */
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月第二版的中文译本。当然,那个示例函数没有中文注解。
恩恩,我理解了,谢谢!