GPIO输入
GPIO输入
函数.h封装
#ifndef __LED_H //两个下划线!!!
#define __LED_H
//【填写函数名称】 例:
void LED_Init(void);
void LED_ON(void);
...
#endif
//最后要留1行空行!
显示代码提示:Ctrl+Alt+空格
按键读入
uint8_t Key_GetNum(void)
{
uint8_t KeyNum=0;
if(GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_1) == 0){//按下按键 电路导通电阻为0 为低电平
Delay_ms(20);//消除按下按键的抖动
while(GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_1)==0);//直到按键松开再操作
Delay_ms(20);//消除松开按键的抖动
KeyNum=1;
}
return KeyNum;
}
端口电平翻转
void LED1_Turn(void)
{
if (GPIO_ReadOutputDataBit(GPIOA, GPIO_Pin_1) == 0)
//获取输出寄存器的状态,如果当前引脚输出低电平
{
GPIO_SetBits(GPIOA, GPIO_Pin_1);//则设置PA1引脚为高电平
}
else//否则,即当前引脚输出高电平
{
GPIO_ResetBits(GPIOA, GPIO_Pin_1);//则设置PA1引脚为低电平
}
}
读入某元器件获取的参数:在模块内写个Get
uint8_t LightSensor_Get(void)
{
return GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_13);
}
按键
传感器
传感器元件(光敏电阻/热敏电阻/红外接收管等)的电阻会随外界模拟量的变化而变化
通过与定值电阻分压即可得到模拟电压输出
再通过电压比较器进行二值化即可得到数字电压输出
硬件电路
(1)按键按下时引脚为低电平 松手为高电平
(2)左边接法:引脚必须是上拉输入模式
(3)右边接法:可为浮空输入模式