新手入门
- 积分
- 17
- 金钱
- 17
- 注册时间
- 2021-2-7
- 在线时间
- 4 小时
|
5金钱
情况描述:
KEY0控制LED0,KEY1控制LED1,KEY_UP控制蜂鸣器
在按下KEY0和KEY_UP时,LED0和蜂鸣器可以使用
按下KEY1的时候,一共可以按下两次,LED1一次暗一次亮,然后所有按键失灵
尝试过KEY0控制LED1,KEY1控制LED0,情况与上面相同,LED1一次暗亮循环后所有按键失灵
下面附上main函数,附件中有整个工程
希望有大佬能解答
- #include "stm32f10x.h"
- #include "led.h"
- #include "beep.h"
- #include "key.h"
- #include "delay.h"
- int main(void){
- int key = 0,keyStatus[3] = {0, 0, 1};
-
- LED_Init();
- BEEP_Init();
- KEY_Init();
-
- GPIOB->ODR|=1<<5;
- keyStatus[0] = 1;
- GPIOE->ODR|=1<<5;
- keyStatus[1] = 1;
-
- while(1){
- delay_ms(10);
- key = KEY_Read(0);
- if(key == 1){ //LED0
- if(keyStatus[0] == 1){
- GPIOB->ODR|=1<<5;
- keyStatus[0] = 0;
- }
- else{
- GPIOB->ODR&=0<<5;
- keyStatus[0] = 1;
- }
- }
- if(key == 2){ //LED1
- if(keyStatus[1] == 1){
- GPIOE->ODR|=1<<5;
- keyStatus[1] = 0;
- }
- else{
- GPIOE->ODR&=0<<5;
- keyStatus[1] = 1;
- }
- }
- if(key == 3){ //蜂鸣器
- if(keyStatus[2] == 1){
- GPIOB->ODR|=1<<8;
- keyStatus[2] = 0;
- }
- else{
- GPIOB->ODR&=0<<8;
- keyStatus[2] = 1;
- }
- }else delay_ms(10);
- }
- }
复制代码
Template.zip
(6.42 MB, 下载次数: 0)
|
|