91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

資源簡介

可以 任意管腳 數據結構實現 只需添加管腳無需其他修改 即可返回按鍵值

資源截圖

代碼片段和文件信息

#include?“key.h“
#include?“delay.h“

typedef?struct?
{
GPIO_TypeDef*?GPIOX;
uint16_t?GPIO_Pin;
}KGPT[2][4];?//4*4
KGPT?KPIN={?//只需要在下面填寫橫豎行的IO口和管腳???IO口和管腳都可以隨意定義?無需在一個IO口?管腳也無需按順序
{{GPIOGGPIO_Pin_4}?{GPIOGGPIO_Pin_2}?{GPIODGPIO_Pin_14}{GPIODGPIO_Pin_12}}//row?橫行
{{GPIODGPIO_Pin_10}{GPIODGPIO_Pin_8}?{GPIOBGPIO_Pin_14}{GPIOBGPIO_Pin_12}}??//col?豎行
};
#define?row?0
#define?col?1
#define?RCC_APB2_GPIOX??RCC_APB2Periph_GPIOB|RCC_APB2Periph_GPIOD|RCC_APB2Periph_GPIOG//IO時鐘
#define?MAX_Time???36000000?//?松手檢測最大延時???
//按鍵初始化函數?
void?KEY_Init(void)
{
??u8?i;
GPIO_InitTypeDef?GPIO_InitStructure;
??RCC_APB2PeriphClockCmd(RCC_APB2_GPIOXENABLE);//使能PORTC時鐘
??for(i=0;i<4;i++)

{
?GPIO_InitStructure.GPIO_Pin?=?KPIN[row][i].GPIO_Pin;
?GPIO_InitStructure.GPIO_Mode?=?GPIO_Mode_Out_PP;?//設置成推挽輸出
?GPIO_Init(KPIN[row][i].GPIOX?&GPIO_InitStructure);//初始化row
?GPIO_ResetBits(KPIN[row][i].GPIOXKPIN[row][i].GPIO_Pin);
}
?for(i=0;i<4;i++)
{
?GPIO_InitStructure.GPIO_Pin??=?KPIN[col][i].GPIO_Pin;//PC5
?GPIO_InitStructure.GPIO_Mode?=?GPIO_Mode_IPU;?//設置成上拉輸入
?GPIO_Init(KPIN[col][i].GPIOX?&GPIO_InitStructure);//初始化col
}
}?

u8?ReScan(GPIO_TypeDef*?GPIOXuint16_t?colPinu8?colIndex)
{
?u8?i;
?delay_ms(10);//消抖延時
?for(i?=?0;i<4;i++){
??GPIO_SetBits(KPIN[row][i].GPIOXKPIN[row][i].GPIO_Pin);//每個行置1
??if((GPIO_ReadInputDataBit(GPIOX?colPin)?==?1))?//如果列也變了?行的值就知道了?為?i
{
GPIO_ResetBits(KPIN[row][i].GPIOXKPIN[row][i].GPIO_Pin);?//行恢復?置0?
??return?colIndex+i*4+1;//返回的數據?為1-16?對應4x4鍵盤的16個鍵
}
GPIO_ResetBits(KPIN[row][i].GPIOXKPIN[row][i].GPIO_Pin);?????//行恢復?置0
?}
?return?0;
}
u8?KEY_Scan(void)
{ ?
?u8?ikeyvalue;
//u32?j=0;
for(i?=?0;i<4;i++)
{
?if(GPIO_ReadInputDataBit(KPIN[col][i].GPIOXKPIN[col][i].GPIO_Pin)?==?0)//檢測列?列值為?i
?{
keyvalue?=?ReScan(KPIN[col][i].GPIOXKPIN[col][i].GPIO_Pini);//檢測行?取鍵值
??while(GPIO_ReadInputDataBit(KPIN[col][i].GPIOXKPIN[col][i].GPIO_Pin)?==?0);
// while((GPIO_ReadInputDataBit(KPIN[col][i].GPIOXKPIN[col][i].GPIO_Pin)?==?0)&&(j return?keyvalue;//返回鍵值
}
}
return?0;
}






?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件????????2346??2017-07-09?21:44??4乘4矩陣鍵盤掃描程序\key.c
?????文件?????????206??2017-07-09?21:43??4乘4矩陣鍵盤掃描程序\key.h
?????目錄???????????0??2017-07-09?21:44??4乘4矩陣鍵盤掃描程序\

評論

共有 條評論