概述
- stm32内部有上拉和下拉电阻,所以不需要外接,只需要进行软件设置
支持连按的思路
传统51的思路
不支持连按的思路
设置标志位,只有在按键松开的时候标志位会进行更新
#include "delay.h"
#include "sys.h"
#include "usart.h"
#include "led.h"
#include "key.h"
int keytime=0;
int key_up=1;
int main (){
delay_init(); //延时函数初始化
LED_Init(); //初始化与LED连接的硬件接口
KEY_Init();
uart_init(9600);
while(1)
{
if(PBin(9)==1&&key_up==1){//按键是松开的 然后被按下
delay_us(200);
if(PBin(9)==1){ // 按键依然是松开的 然后被按下
PAout(4)=~PAout(4); // led状态取反
key_up = 0 ; // 此时按键是按下的
keytime++;
}
}
else if (PBin(9)==0 && key_up ==0 ){
key_up = 1; //只有松开才会置位标志位
}
printf("%d",keytime);
printf("-----");
}
return 0;
}