/****************************************Copyright (c)*****************************
**--------------File Info----------------------------------------------------------
** File name: main.c
** Last modified Date: 2011-04-09
** Last Version: 1.0
** Descriptions: The main() function example template
**
**---------------------------------------------------------------------------------
** Created by: lxliu
** Created date: 2011-04-09
** Version: 1.0
** Descriptions: The original version
************************************************************************************/
#include "config.h"
const uint32 BEEP = (1<<7);
const uint32 KEY1 = (1<<16);
/*************************************************************************
** 函数名称:main()
** 函数功能:GPIO输入测试
检测按键KEY1:KEY1按下,蜂鸣器蜂鸣;松开后,停止蜂鸣
** 跳线说明:需将跳线JP8和KEY1短接,JP11连接蜂鸣器
*************************************************************************/
int main (void)
{
PINSEL0 = 0x00000000; //所有引脚都设置为GPIO
PINSEL1 = 0x00000000; //
IO0DIR = BEEP; //蜂鸣器控制口输出,其余输入
while(1)
{
if((IO0PIN & KEY1) == 0) //KEY1按下,蜂鸣器蜂鸣
IO0CLR = BEEP;
else //松开后,停止蜂鸣
IO0SET = BEEP;
}
return 0;
}
/**********************************************************************************
** End Of File
***********************************************************************************/
关键字:GPIO输入 检测按键 EasyARM2131
引用地址:
GPIO输入----检测按键(EasyARM2131)
推荐阅读最新更新时间:2024-03-16 15:00
STM8S003的GPIO模拟I2C切换输入输出的解决办法
刚开始学STM8,很多东西刚了解,正在做一个温湿度显示小板,就是使用I2C驱动SHT20传感器,并显示到数码管,数码管用的四位一体共阴数码管,STM8管脚有限,添加了一片TM1650做驱动,不过SHT20和TM1650都是用的I2C接口,由于对STM8硬件I2C还不了解,先打算用软件模拟,这就涉及到需要对GPIO做输入输出切换处理来检测ACK响应,刚开始,直接操作DDR寄存器,但是出现从输出切换到输入就会出现单片机死机,不解,查资料,得到一个解决办法,在输出状态时,可以不用切换到输入,我使用管脚D4,D5这两个管脚,这两个管脚比较特殊,就是真正开漏,在管脚描述为T,其它描述为HS(高吸收电流)。 解决办法,将IO设置为开漏输出
[单片机]
计数器(状态机按键检测)程序
状态机是软件编程中的重要概念,比这个概念更重要的是对它的灵活应用。在一个思路清晰而且高效的程序中,必然有状态机的身影浮现。例如,一个按键命令解析程序就可以被看做状态机:本来在A状态下,触发一个按键后切换到了B状态;再触发另一个键后切换到C状态,或者返回到A状态。这就是最简单的按键状态机的例子。实际的按键解析程序会比这更复杂,但这并不影响我们对状态机的认识。 进一步看,击键动作本身可以看做一个状态机。一个击键动作包含按下、抖动、释放等状态。其实状态机的思想不单只是用在按键方面,数码管显示动态扫描、LED灯亮灭都存在状态机的思想。使用状态机思想进行单片机编程,比较通用的方法就是使用switch的选择性分支语句来进行状态跳
[单片机]
第12章 GPIO输入-按键检测—零死角玩转STM32-F429系列
本章参考资料:《STM32F4xx参考手册》、库帮助文档《stm32f4xx_dsp_stdperiph_lib_um.chm》。 按键检测使用到GPIO外设的基本输入功能,本章中不再赘述GPIO外设的概念,如您忘记了,可重读前面 GPIO框图剖析 小节,STM32标准库中GPIO初始化结构体GPIO_TypeDef的定义与 定义引脚模式的枚举类型 小节中讲解的相同。 12.1 硬件设计 按键机械触点断开、闭合时,由于触点的弹性作用,按键开关不会马上稳定接通或一下子断开,使用按键时会产生图 121中的带波纹信号,需要用软件消抖处理滤波,不方便输入检测。本实验板连接的按键带硬件消抖功能,见图 122,它利用电容充放电的延时,
[单片机]
stm32 GPIO原理: 输入和输出控制
pre name= code class= html #include stm32f10x.h int main(void) { //1.PA.0 工作在推揽输出,50MHZ; PA.8输入 浮空输入 GPIOA- CRL=0X03; GPIOA- CRH=0X04; //2. PA.0 输出 = PA.8输入 while(1){ if((GPIOA- IDR&0X0100)==0X0100) GPIOA- ODR=0X01; else GPIOA- ODR=0x00; } return 0; }
[单片机]
第七节:在主函数中利用累计定时中断的次数来检测按键
开场白: 上一节讲了在主函数中利用累计主循环次数来实现独立按键的检测,但是它也有一个小小的不足,随着在主函数中任务量的增加,为了保证去抖动延时的时间一致性,要适当调整一下去抖动的时间阀值const_key_time1。如何解决这个问题呢?这一节教大家在主函数中利用累计定时中断的次数来实现独立按键的检测,可以有效地避免这个问题。要教会大家一个知识点:如何在上一节的基础上,略作修改,就可以在主函数中,利用累计定时中断的次数来实现去抖动的延时。 具体内容,请看源代码讲解。 (1)硬件平台:基于朱兆祺51单片机学习板。用矩阵键盘中的S1和S5号键作为独立按键,记得把输出线P0.4一直输出低电平,模拟独立按键的触发地GND。
[单片机]
再造STM32---第十部分:GPIO输入—按键检测
本章参考资料:《STM32F4xx 参考手册》、库帮助文档《stm32f4xx_dsp_stdperiph_lib_um.chm》。 按键检测使用到 GPIO 外设的基本输入功能,本章中不再赘述 GPIO 外设的概念,如您忘记了,可重读前面“GPIO 框图剖析”小节, STM32 标准库中 GPIO 初始化结构体GPIO_TypeDef 的定义与“定义引脚模式的枚举类型”小节中讲解的相同。 10.1 硬件设计: 按键机械触点断开、闭合时,由于触点的弹性作用,按键开关不会马上稳定接通或一下子断开,使用按键时会产生图 10-1 中的带波纹信号,需要用软件消抖处理滤波,不方便输入检测。本实验板连接的按键带硬件消
[单片机]