📄 key.c
字号:
/*************************************** Copyright (c) *************************************************
*
* POLAR STAR
* 北天星国际贸易(深圳)有限公司
* http://www.po-star.com
*********************************************************************************************************
* 文件名:key.C
* 功能:GPIO测试实验。
当检测到有按键输入时,对发光二极管LED1进行取反控制。
* 使用I/O口输入方式对按键KEY1进行扫描。
* 说明:将跳线器JP1的KEY1短接及跳线器JP2的LED1短接;
*
********************************************************************************************************/
#include "..\inc\config.h"
/********************************************************************************************************
*
* 函数名称:WaitKey()
*
* 功能描述:等待一个有效按键,本函数有去抖功能。
*
* 入口参数:无
* 出口参数:无
*
* 全局变量: 无
* 调用模块: 无
*
********************************************************************************************************/
void WaitKey(void)
{
U32 tmp;
while(1)
{
while((IO0PIN&KEY1) != 0); // 等待KEY1键按下
for(tmp=0; tmp<50000; tmp++); // 延时去抖
if((IO0PIN&KEY1) == 0) break; // 按键操作有效
}
while((IO0PIN&KEY1) == 0); // 等待KEY1键放开
}
/********************************************************************************************************
*
* 函数名称:main()
*
* 功能描述:读按键,控制LED闪烁
*
* 入口参数:无
* 出口参数:无
*
* 全局变量: 无
* 调用模块: 无
*
********************************************************************************************************/
void main(void)
{
PINSEL0 = 0x00000000; // 设置所有管脚连接GPIO
PINSEL1 = 0x00000000;
IO0DIR = LED1CON; // 设置LED控制口为输出,其它I/O为输入
while(1)
{
IO0SET = LED1CON; // 灭灯
WaitKey(); // 等待按键触发
IO0CLR = LED1CON; // 亮灯
WaitKey(); // 等待按键再次触发
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -