什么时候输出
控制外设或者模块(如点亮LED灯,蜂鸣器等)
模式:
1,推挽输出
2,开漏输出
3,复用推挽
4,复用开漏
什么时候输入
检测一些状态(如按键)
模式:
1,上拉输入
2,下拉输入
3,浮空输入
4,模拟输入
void KEY_init()
{
GPIO_InitTypeDef GPIO_InitStruct; //定义结构体
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOE, ENABLE); //使能 GPIOE 时钟
GPIO_InitStruct.GPIO_Pin = GPIO_Pin_4 | GPIO_Pin_3 ; //选择端口
GPIO_InitStruct.GPIO_Mode = GPIO_Mode_IN; //模式:输入
GPIO_InitStruct.GPIO_PuPd = GPIO_PuPd_UP; //状态:上拉
GPIO_Init(GPIOE, &GPIO_InitStruct); //初始化IO口
GPIO_SetBits(GPIOE,GPIO_Pin_4 | GPIO_Pin_3 ); //设为高电平
}
u8 KEY_Scan(u8 key)
{
if( Bit_SET == GPIO_ReadInputDataBit(GPIOE,key)) //如果是高电平,表示按键没按下
{
return KEY_UP;
}
else //否则,表示按键被按下
{
return KEY_PRESS;
}
}