首页 理论教育 使用STM32固件库简单操作按键输入

使用STM32固件库简单操作按键输入

时间:2023-10-21 理论教育 版权反馈
【摘要】:关于GPIO读写的操作函数有9个,如图3-38所示。GPIO作为输入时,CPU通过读取GPIO的输入寄存器IDR来获得输入信息。关于读操作的函数有:·GPIOx按字节(8位)读输入函数:uint8_t GPIO_ReadInputDataBit。这4个读操作函数分为两类。要获得按键的输入状态,则选择读GPIO输入状态的函数。按键接在PA0和PC13引脚上,因此编程时应使用GPIO_ReadInputDataBit函数。因此,若输入低电平,则返回0x00;若输入高电平,则返回0x01。图4-2GPIO_Read InputDataBit函数

使用STM32固件库简单操作按键输入

关于GPIO读写的操作函数有9个,如图3-38所示。GPIO作为输入时,CPU通过读取GPIO的输入寄存器IDR来获得输入信息。关于读操作的函数有:

·GPIOx按字节(8位)读输入函数:uint8_t GPIO_ReadInputDataBit(GPIO_TypeDef*GPIOx,uint16_t GPIO_Pin)。

·GPIOx读输入函数(16位,即整个端口):uint16_t GPIO_ReadInputData(GPIO_TypeDef*GPIOx)。

·GPIOx按字节(8位)读输出函数:uint8_t GPIO_ReadOutputDataBit(GPIO_TypeDef*GPIOx,uint16_t GPIO_Pin)。

·GPIOx读输出函数(16位,即整个端口):uint16_t GPIO_ReadOutputData(GPIO_TypeDef*GPIOx)。

这4个读操作函数分为两类。一类是读GPIO输出状态函数:GPIO_ReadOutputDataBit和GPIO_ReadOutputData,此时GPIO处于输出状态。另一类是读GPIO输入状态函数:GPIO_ReadInputDataBit和GPIO_ReadInputData,此时GPIO处于输入状态。

要获得按键的输入状态,则选择读GPIO输入状态的函数。这两个函数一个是用于读取某个引脚(位)的函数GPIO_ReadInputDataBit,另一个是用于读取整组GPIO(双字节)的函数GPIO_ReadInputData。

按键接在PA0和PC13引脚上,因此编程时应使用GPIO_ReadInputDataBit函数。这个函数在stm32f4xx_gpio.c内可以找到,如图4-2所示。(www.xing528.com)

对函数代码进行分析可知,读取引脚的输入逻辑是通过读取IDR寄存器实现的,通过与运算得到相应的位,结果用一个8位变量bitsatus作为返回值。注意,逻辑上读取的一个引脚的状态应该是一位二进制数,但该函数返回值是无符号字符型。因此,若输入低电平,则返回0x00;若输入高电平,则返回0x01。

例如,要读取PA0的输入状态并赋值给变量b(b已经预先定义好),首先初始化GPIOA(包括打开时钟、设置MODER和PUPDR寄存器),然后使用输入位读取函数进行赋值。程序如下:

b的数值即代表PA0的输入电平状态,b=0x00表示输入低电平,b=0x01表示输入高电平。

图4-2 GPIO_Read InputDataBit函数

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈