初级会员

- 积分
- 54
- 金钱
- 54
- 注册时间
- 2013-7-28
- 在线时间
- 0 小时
|
发表于 2013-9-21 22:29:22
|
显示全部楼层
回复【4楼】正点原子:
---------------------------------
原子大哥:我把这个程序中的代码全屏蔽,只保留RCC->APB2ENR|=1<<2和GPIOA->ODR|=1<<8;;然后主程序中while(1)也屏蔽代码如下
void KEY_Init(void)
{
RCC->APB2ENR|=1<<2; //使能PORTA时钟
//GPIOA->CRL&=0XFFFFFFF0;//PA0设置成输入
//GPIOA->CRL|=0X00000008;
//GPIOA->CRH&=0X0F0FFFFF;//PA13,15设置成输入
//GPIOA->CRH|=0X80800000;
//GPIOA->ODR|=1<<13; //PA13上拉,PA0默认下拉
//GPIOA->ODR|=1<<15; //PA15上拉
//GPIOA->ODR&=~(1<<13);
//GPIOA->ODR&=~(1<<15);
GPIOA->ODR|=1<<8;
}
主程序如下
int main(void)
{
u8 t;
Stm32_Clock_Init(9); //系统时钟设置
delay_init(72); //延时初始化
LED_Init(); //初始化与LED连接的硬件接口
KEY_Init();
//初始化与按键连接的硬件接口
/* while(1)
{
t=KEY_Scan();//得到键值
if(t)
{
switch(t)
{
case 1:
LED0=!LED0;
break;
case 2:
LED1=!LED1;
break;
case 3:
LED0=!LED0;
LED1=!LED1;
break;
}
}else delay_ms(10);
} */
}
为什么灯就一直亮啊? 去掉KEY_Init(); 灯就不亮 什么原因啊? |
|