完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
#include "STM32f10x.h" //STM32头文件
#include "sys.h" #include "delay.h" #include "led.h" #include "key.h" int main (void){ //主程序 u8 a,b; u16 t=1; u8 Menu,i,m,K; //ppppppppppppppppppp RCC_Configuration(); //时钟设置 LED_Init(); KEY_Init(); while(1){ if(!GPIO_ReadInputDataBit(GPIOC,GPIO_Pin_5)) //KEY0为PC5,若按下,则被清零 {delay_ms(20); //防抖动 if(!GPIO_ReadInputDataBit(GPIOC,GPIO_Pin_5)) {a++; b=0; } } while(!GPIO_ReadInputDataBit(GPIOC,GPIO_Pin_5)); //检测是否松开 if(a%2==1) { if(m<10) { GPIO_WriteBit(GPIOA,GPIO_Pin_8,(BitAction)(1)); //LED0为PA8,若清零,则亮 GPIO_WriteBit(GPIOD,GPIO_Pin_2,(BitAction)(0)); //LED1为PD2,若清零,则亮 for(K=0;K<10;K++) delay_ms(10); m++; } //延时1秒 if(m<20 m>9) { GPIO_WriteBit(GPIOA,GPIO_Pin_8,(BitAction)(0)); GPIO_WriteBit(GPIOD,GPIO_Pin_2,(BitAction)(1)); for(K=0;K<10;K++) delay_ms(10); m++; } if(m==20) m=0; } if(a!=0 a%2==0) { GPIO_WriteBit(GPIOA,GPIO_Pin_8,(BitAction)(1)); GPIO_WriteBit(GPIOD,GPIO_Pin_2,(BitAction)(1)); } if(!GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_15)) //KEY1为PA15,若按下,则被清零 {delay_ms(20); //防抖动 if(!GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_15)) {b++; a=0; } } while(!GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_15)); //检测是否松开 if(b%2==1) { GPIO_WriteBit(GPIOD,GPIO_Pin_2,(BitAction)(1)); if(Menu==0) { for(i=0;i<10;i++) { GPIO_WriteBit(GPIOA,GPIO_Pin_8,(BitAction)(0)); delay_us(t); GPIO_WriteBit(GPIOA,GPIO_Pin_8,(BitAction)(1)); delay_us(501-t); } t++; if(t==500) { Menu=1; t=1; } } if(Menu==1) { for(i=0;i<10;i++) { GPIO_WriteBit(GPIOA,GPIO_Pin_8,(BitAction)(1)); delay_us(t); GPIO_WriteBit(GPIOA,GPIO_Pin_8,(BitAction)(0)); delay_us(501-t); } t++; if(t==500) { Menu=0; t=1; } } } if(b!=0 b%2==0) { GPIO_WriteBit(GPIOA,GPIO_Pin_8,(BitAction)(1)); GPIO_WriteBit(GPIOD,GPIO_Pin_2,(BitAction)(1)); } } } |
|
相关推荐
2个回答
|
|
楼主,应该是程序判断导致的。建议用中断,通过边沿触发来进行判断。当产生边中断和结束中断后的时间差。
|
|
|
|
需要同时判断2个按键状态的,比如:
if((!GPIO_ReadInputDataBit(GPIOC,GPIO_Pin_5)) (!GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_15))) |
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1658 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1571 浏览 1 评论
998 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
695 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1617 浏览 2 评论
1877浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
663浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
529浏览 3评论
548浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
517浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-29 15:47 , Processed in 0.891821 second(s), Total 85, Slave 66 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号