圆梦那年4(c语言 按键)
本帖最后由 249018563 于 2017-7-14 16:36 编辑先发帖,晚上码字。。。。
主程序
test.c
------------------------------------------------------------------------------------------------------
#include "sys.h"
#include "usart.h"
#include "delay.h"
#include "led.h"
#include "key.h"
/*********************************************************
File:KEY应用
Description: BalanceSTM32 V2.0 KEY控制LED灯点亮和熄灭
**********************************************************/
int main(void)
{
u8 t;
Stm32_Clock_Init(9); //系统时钟设置 外部8m晶振
delay_init(72); //延时初始化9倍频到72m
LED_Init(); //初始化与LED连接的硬件接口 pc13推挽输出
KEY_Init(); //IO初始化
while(1)
{
t=KEY_Scan();//得到键值 ,按下为1 松开为0
if(t)
{
switch(t)
{
case 1:
LED = !LED;
break;
}
}
else delay_ms(10);
}
}
-----------------------------------------------------------------------
include "key.h"
#include "delay.h"
/*********************************************************
Copyright (C), 2016-2026, YFRobot.
www.yfrobot.com
File:KEY驱动代码
Author:pinggai Version:1.0 Data:2016/09/08
Description: Balance-STM32 V2.0 KEY驱动代码
Others:使用端口 PB2
使用硬件资源 PB2
**********************************************************/
/******************************************************
Function: void KEY_Init(void)
Description:按键端口初始化,PB2 设置成输入 高电平有效
******************************************************/
void KEY_Init(void)
{
RCC->APB2ENR|=1<<3; //使能PORTB时钟
GPIOB->CRL&=0XFFFFF0FF;//PB2设置成输入
GPIOB->CRL|=0X00000800;// 0x4模拟输入、0x3推挽输出(00 11,00指推挽输出,11指输出模式 50mhz)
//0x8 上拉或下拉输入,0xb复用输出
//GPIOA->ODR&=~(1<<2); //默认下拉
}
------------------------------------------------------------------------
子程序:key.c
/******************************************************
Function: u8 KEY_Scan(void)
Description:按键处理函数
Return: 0,没有任何按键按下
1,KEY按下
******************************************************/
u8 KEY_Scan(void)
{
static u8 key_up=1;//按键按松开标志
if(key_up&&KEY==1) // 按键按下
{
delay_ms(10);//去抖动
key_up=0;
if(KEY==1) //pb2 == 1
{
return 1;
}
}
else if(KEY==0)key_up=1; //pb2 ==0
return 0;// 无按键按下
}
--------------------------------------------------------------------------------------
等主板来了 开始 接硬件了
百度网盘地址http://pan.baidu.com/s/1c1WifoW
页:
[1]