鱼C论坛

 找回密码
 立即注册
查看: 3773|回复: 0

[见证历程] 圆梦那年4(c语言 按键)

[复制链接]
发表于 2017-7-6 17:08:18 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 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;// 无按键按下
}
--------------------------------------------------------------------------------------
等主板来了 开始 接硬件了

c8t6

c8t6

百度网盘地址http://pan.baidu.com/s/1c1WifoW
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-27 05:08

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表