#include "delay.h"
#include "usart.h"
#include "sys.h"
#include "low.h"
int main(void)
{
uint8_t i;
Stm32_Clock_Init(9);//系统时钟设置
delay_init(72); //延时初始化
gpio_init(); //low初始化
while(1)
{
for(i=0;i<10;i++)
{
led=~led;
delay_ms(500);
}
Sys_Standby();
}
}
#include "low.h"
void gpio_init()
{
RCC->APB2ENR|=(1<<5); //使能GPIOD的时钟 led
GPIOD->CRL&=0XFFFFF0FF;
GPIOD->CRL|=0X00000300;
GPIOD->ODR|=0XFFFF;
GPIOD->ODR&=0XFFFB;
RCC->APB2ENR|=1<<2; //先使能外设IO PORTA时钟
// RCC->APB2ENR|=1<<0; //开启辅助时钟
GPIOA->CRL&=0XFFFFFFF0;//PA0设置成输入
GPIOA->CRL|=0X00000008;
Ex_NVIC_Config(GPIO_A,0,RTIR);//PA0上升沿触发
MY_NVIC_Init(2,2,EXTI0_IRQn,2);//抢占2,子优先级2,组2
}
void Sys_Enter_Standby() //进入待机模式
{
RCC->APB2RSTR|=0X01FC; //复位所有IO口
Sys_Standby(); //待机模式
}
void EXTI0_IRQHandler(void)
{
EXTI->
R=1<<0; //清除LINE10上的中断标志位
}
为什么进入待机模式,就出不来了?求教
一周热门 更多>