LED闪烁

改变了main.c

注意时钟配置和频率,倍频

#include "stm32f10x.h"
#include "led.h"


void delay(u32 i)//延时
{
while(i--);
}


void RCC_HSE_Config(u32 div,u32 pllm) //自定义系统时间(可以修改时钟)
{
RCC_DeInit(); //将外设RCC寄存器重设为缺省值
RCC_HSEConfig(RCC_HSE_ON);//设置外部高速晶振(HSE)
if(RCC_WaitForHSEStartUp()==SUCCESS) //等待HSE起振
{
RCC_HCLKConfig(RCC_SYSCLK_Div1);//设置AHB时钟(HCLK)
RCC_PCLK1Config(RCC_HCLK_Div2);//设置低速AHB时钟(PCLK1)
RCC_PCLK2Config(RCC_HCLK_Div1);//设置高速AHB时钟(PCLK2)
RCC_PLLConfig(div,pllm);//设置PLL时钟源及倍频系数
RCC_PLLCmd(ENABLE); //使能或者失能PLL
while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY)==RESET);//检查指定的RCC标志位设置与否,PLL就绪
RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);//设置系统时钟(SYSCLK)
while(RCC_GetSYSCLKSource()!=0x08);//返回用作系统时钟的时钟源,0x08:PLL作为系统时钟
}
}

int main()
{
RCC_HSE_Config(RCC_PLLSource_HSE_Div1,RCC_PLLMul_9);//72M         可以改频率
LED_Init();

while(1)
{
GPIO_ResetBits(LED_PORT,GPIO_Pin_0);//低电平
delay(6000000);
GPIO_SetBits(LED_PORT,GPIO_Pin_0);//高电平
delay(6000000);
}
}

猜你喜欢

转载自www.cnblogs.com/296389183yy/p/9299947.html