《嵌入式技术及应用(STM32CubeMX版) 代码 Task12Key_c.docx》由会员分享,可在线阅读,更多相关《嵌入式技术及应用(STM32CubeMX版) 代码 Task12Key_c.docx(2页珍藏版)》请在第一文库网上搜索。
1、123456789101112131415161718192021222324252627282930313233343536373839404142在任务12中,key.c文件的内容如下:文件名:key.c功能:键盘处理程序inc1udemain,h”externuint8_tentim;entim变量说明允许秒表走时0:禁止externuint8_tsec;/sec变量说明秒值voidkey(void)(staticuint8_tkeytreated=0;键已处理0:未处理staticuint8_tkeycnt=0:SO按下的次数if(HA1一GP1(1ReadPin(GPIoC,GPI(
2、1P1N3)=GPIO_PIN_RESET)11(HA1_GPI(1ReadPin(GPIOD,GPI0_PIN_13)=GP1(1PIN_RESET)判断SO或S1是否按下有键按下HA1DeIay(Io);延时IOms去抖动if(HA1_GPIO_ReadPin(GP1oD,GPQPIN_13)=GPIO_PIN_RESET)&(keytreated=O)/S1是否按下且没处理SI按下且没处理:秒清0sec=0;秒清0entim=0;禁止秒走时keycnt=0;/SO键按下次数设为偶数,以便按SO键时秒走时Reytreated=I;)e1seif(HA1_GPI0_ReadPin(GPI0C,GPI0_PIN_13)=GPIO_PIN_RESET)&(Reytreated=O)SO是否按下且没处理/SO按下且没处理过keycnt+;if(keycnt&0x01)(奇次按下entim=1;允许秒走时)e1se(偶次按下entim=0;禁止秒走时)Reytreated=I;置键已处理标志)e1se无键按下keytreated=O;/*置键未处理标志*/4344)