求大侠帮我看看这个程序,本以为不按键的情况下LED灯会固定亮或者灭,但下到板子里在不按键的情况下为啥LED一闪一闪的?
[mw_shl_code=c,true]#define KEY GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_8)
/* Includes ------------------------------------------------------------------*/
#include "stm32f10x.h"
#include <stdio.h>
void delay(u32 num){
u32 i=0;
for(;i<num;i++);
}
int main(){
GPIO_InitTypeDef GPIO_Structure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC|RCC_APB2Periph_GPIOB,ENABLE);
GPIO_Structure.GPIO_Mode=GPIO_Mode_Out_PP;
GPIO_Structure.GPIO_Speed=GPIO_Speed_50MHz;
GPIO_Structure.GPIO_Pin=GPIO_Pin_13;
GPIO_Init(GPIOC,&GPIO_Structure);
GPIO_ResetBits(GPIOC,GPIO_Pin_13);
//初始化LED端口
GPIO_Structure.GPIO_Mode=GPIO_Mode_IPU;
GPIO_Structure.GPIO_Pin=GPIO_Pin_8;
GPIO_Init(GPIOB,&GPIO_Structure);
//初始化按键端口
while(1){
//GPIO_ResetBits(GPIOB,GPIO_Pin_11);
if(KEY==1){
GPIOC->ODR^=GPIO_Pin_13;
delay(5000000);
break;
//翻转端口方式
}
//GPIO_SetBits(GPIOB,GPIO_Pin_11);
//delay(5000000);
}
}[/mw_shl_code]
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
if(KEY==1)
{
delay(1000);
if(KEY==1)
GPIOC->ODR^=GPIO_Pin_13;
}
一周热门 更多>