STM32按键控制
2013-06-01 14:51
316 查看
void GPIO_Config(void) { //使能APB2总线外设时钟 RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOB | RCC_APB2Periph_AFIO, ENABLE); //GPIO_PinRemapConfig(GPIO_Remap_SWJ_Disable, ENABLE); //关闭调试 端口重新映射 使用仿真器调试时,不能用此语 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0; // 选择脚 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU; //配置成上拉输入 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //输出模式下 I/O输出速度 50M HZ GPIO_Init(GPIOB, &GPIO_InitStructure); //初始化PB口 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1; // 选择脚 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //配置成推挽输出 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //输出模式下 I/O输出速度 50M HZ GPIO_Init(GPIOB, &GPIO_InitStructure); //初始化PB口 }
int main(void) { RCC_Configuration(); //系统时钟配置函数 NVIC_Configuration(); //NVIC配置函数 GPIO_Config(); // GPIO_Write(GPIOA,0XFFFF); //初始化PA端口让 LED处于熄灭状态 while (1) { if(!GPIO_ReadInputDataBit(GPIOB, GPIO_Pin_0)) //检测PB口的第1个管脚的电平 { GPIO_SetBits(GPIOB,GPIO_Pin_1); //使第1个管脚为 1 } else GPIO_ResetBits(GPIOB,GPIO_Pin_1); //使第1个管脚为 0 } }
结论:
当需要从外部感应输入状态的时候,首先要做到如下几点:
1、把相应IO口设置成为输入模式;
2、调用下面的函数,返回的值就是外部的高低电平的状态。
GPIO_ReadInputDataBit(GPIOB, GPIO_Pin_0)
当需要从控制外部元件的时候,首先要做到如下几点:
1、把相应IO口设置成为输出模式;
2、调用下面的函数,输出为高电平:
GPIO_SetBits(GPIOB,GPIO_Pin_1); //使第1个管脚为 1
3、调用下面的函数,输出为低电平:
GPIO_ResetBits(GPIOB,GPIO_Pin_1); //使第1个管脚为 0
相关文章推荐
- STM32_按键控制LED之轮询
- 2.STM32中对Key_GPIO_Config()函数的理解(自定义)之轮询控制按键LED
- 基于STM32的按键控制闪烁LED
- stm32 按键(中断)控制LED的亮灭,按一次亮,再按一次灭;
- STM32_外部中断之按键控制点亮LED灯
- STM32学习笔记之按键查询方式控制led灯的亮灭
- STM32实例之I/O控制中的按键实验
- [置顶] ARM开发(4)基于STM32的矩阵键盘按键控制TM1629A LED显示
- 3.STM32中对EXTI_PE5_Config()函数的理解(自定义)之中断控制按键LED
- STM32按键控制LED(不用固件库)
- STM32按键控制开关灯
- STM32按键控制灯
- Stm32按键输入控制LED灯
- STM32 学习总结2 ----利用中断来控制按键点灯、捕获功能练习
- 基于STM32CT117E竞赛板(STM32f103RB)按键控制LED流水灯
- js实现按键球,小球随键盘上下左右控制移动
- 修改mtk平台power按键的gpio控制口
- mini2440 按键控制LED 驱动
- 4、按键控制
- 【cc2541历程】按键控制PWM调光