新闻中心

EEPW首页>嵌入式系统>设计应用> STM32 按键扫描方式 使用ST3.0.0库

STM32 按键扫描方式 使用ST3.0.0库

作者: 时间:2016-12-03 来源:网络 收藏
用到GPIO的操作模式

========================================================================================

本文引用地址://m.amcfsurvey.com/article/201612/325164.htm

GPIO置1操作:

void GPIO_SetBits(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin)

例如:

GPIO_SetBits(GPIOC, GPIO_Pin_3 | GPIO_Pin_4 | GPIO_Pin_5);

这个函数是对一组端口的一些位置1,对PC3 PC4 PC53个引脚一起置1。GPIO_SetBits的作用是对一个端口16个引脚一起赋值。

例如:端口 GPIOC端口,对所有的引脚都置1,可以

GPIO_SetBits(GPIOC, GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_2 ... GPIO_Pin_15);把所有引脚都置1.

========================================================================================

GPIO清零操作:

void GPIO_ResetBits(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin)

例如:

GPIO_ResetBits(GPIOC, GPIO_Pin_3 | GPIO_Pin_4 | GPIO_Pin_5);

对一个端口的几个引脚清零。PC3 PC4 PC5清零引脚。

=======================================================================================

当引脚为输入模式时读引脚的电平值,是高电平还是低电平

uint8_t GPIO_ReadInputDataBit(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin)

例如:

if(GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_0) == 1)

{}

检查输入引脚PB0引脚是0还是1

=======================================================================================

当引脚为输出状态时,读引脚的输出寄存器值,

uint8_t GPIO_ReadOutputDataBit(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin)

例如:

(BitAction)((1-GPIO_ReadOutputDataBit(GPIOC, GPIO_Pin_3)

看当前时刻PC3是输出0还是输出1。

============================================================================================

对某一位操作,可以写0也可以写1,既可以置1也可以清0

void GPIO_WriteBit(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin, BitAction BitVal)

例如:

GPIO_WriteBit(GPIOC, GPIO_Pin_3, Bit_SET);//PC3置1

GPIO_WriteBit(GPIOC, GPIO_Pin_3, Bit_RESET);//PC3清0

==============================================================================================

对端口直接赋值

void GPIO_Write(GPIO_TypeDef* GPIOx, uint16_t PortVal)

例如:

可以直接对PC0赋值为1,其他引脚都为0。

GPIO_Write(GPIOC,0x01);//PC0=1,其他引脚为0



关键词:STM32按键扫描方

评论


技术专区

关闭