目的:实现矩阵键盘的多位数据输入
这里以两位数据为例
//引脚初始化PC0-PC7
void Key_Config()
{
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0| GPIO_Pin_1| GPIO_Pin_2 | GPIO_Pin_3;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOC, &GPIO_InitStructure);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4 | GPIO_Pin_5 | GPIO_Pin_6 | GPIO_Pin_7;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPD;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOC, &GPIO_InitStructure);
}
//按键扫描函数
int KeyScan(void)
{
u8 KeyVal;
GPIO_Write(GPIOC, (GPIOC->ODR & 0xfff0 | 0x000f));
if((GPIOC->IDR & 0x0

本文介绍了如何在STM32上初始化4x4矩阵键盘并实现多位数据输入。通过引脚配置、按键扫描函数KeyScan()以及key_input()函数,实现了键盘的轮询检测和键值返回。最后,通过key_Input()函数实现多个键值的组合输入。
最低0.47元/天 解锁文章
1229

被折叠的 条评论
为什么被折叠?



