主程序如下:
u8 key_num = 0;
int main (void)
{
uart_init(115200);
delay_init();
KEY44_Init();
while(1)
{
key_num = key44_Scan();
if(key_num != 0)
{
printf("Key Num is %d\r\n",key_num);
}
}
}
void KEY44_Init(void)
{
GPIO_InitTypeDef GPIO_InitStructure;//结构体声明
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);//使能APB2外设时钟
GPIO_InitStructure.GPIO_Pin = (GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_2 | GPIO_Pin_3);//选用管脚1,2,3
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;//设置管脚的速率
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;//设置管脚为推挽式输出
GPIO_Init(GPIOA, &GPIO_InitStructure);
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);
GPIO_InitStructure.GPIO_Pin = (GPIO_Pin_4 | GPIO_Pin_5 | GPIO_Pin_6 | GPIO_Pin_7);//选用管脚5,6,7
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO