本文引用地址:http://m.butianyuan.cn/article/201611/322857.htm
RCC_Configuration();//系統(tǒng)時鐘配置函數(shù)
NVIC_Configuration();//NVIC配置函數(shù)
//啟動GPIO模塊時鐘
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_GPIOB|RCC_APB2Periph_AFIO,ENABLE);
//把調(diào)試設(shè)置普通IO口禁止SWJ
GPIO_PinRemapConfig(GPIO_Remap_SWJ_Disable,ENABLE);
GPIO_InitStructure.GPIO_Pin=GPIO_Pin_All;//所有GPIO為同一類型端口
GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;//推挽輸出
GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;//輸出的最大頻率為50HZ
GPIO_Init(GPIOA,&GPIO_InitStructure);//初始化GPIOA端口
GPIO_Init(GPIOB,&GPIO_InitStructure);//初始化GPIOB端口
GPIO_Write(GPIOA,0xffff);//將GPIOA16個端口全部置為高電平
GPIO_Write(GPIOB,0xffff);//將GPIOB16個端口全部置為高電平
LCD_Init();//初始化LCD
//LCD_clear(6);//清屏為紫色
Pant(colors[6]>>8,colors[6]);//把全屏涂滿紫色
pic_play(0,173,0,173);//顯示圖片
//pic_play(7,61,8,74);//顯示圖片
//pic_play(68,122,8,74);
//pic_play(7,61,82,148);
//pic_play(68,122,82,148);
while(1);
}
voidRCC_Configuration(void)
{
//復(fù)位RCC外部設(shè)備寄存器到默認值
RCC_DeInit();
//打開外部高速晶振
RCC_HSEConfig(RCC_HSE_ON);
//等待外部高速時鐘準備好
HSEStartUpStatus=RCC_WaitForHSEStartUp();
if(HSEStartUpStatus==SUCCESS)//外部高速時鐘已經(jīng)準別好
{
//開啟FLASH的預(yù)取功能
FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable);
//FLASH延遲2個周期
FLASH_SetLatency(FLASH_Latency_2);
//配置AHB(HCLK)時鐘=SYSCLK
RCC_HCLKConfig(RCC_SYSCLK_Div1);
//配置APB2(PCLK2)鐘=AHB時鐘
RCC_PCLK2Config(RCC_HCLK_Div1);
//配置APB1(PCLK1)鐘=AHB1/2時鐘
RCC_PCLK1Config(RCC_HCLK_Div2);
//配置PLL時鐘==外部高速晶體時鐘*9PLLCLK=8MHz*9=72MHz
RCC_PLLConfig(RCC_PLLSource_HSE_Div1,RCC_PLLMul_9);
//使能PLL時鐘
RCC_PLLCmd(ENABLE);
//等待PLL時鐘就緒
while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY)==RESET)
{
}
//配置系統(tǒng)時鐘=PLL時鐘
RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);
//檢查PLL時鐘是否作為系統(tǒng)時鐘
while(RCC_GetSYSCLKSource()!=0x08)
{
}
}
}
voidNVIC_Configuration(void)
{
#ifdefVECT_TAB_RAM
NVIC_SetVectorTable(NVIC_VectTab_RAM,0x0);
#else
NVIC_SetVectorTable(NVIC_VectTab_FLASH,0x0);
#endif
}
voidDelay(vu32nCount)
{
for(;nCount!=0;nCount--);
}
#ifdefDEBUG
voidassert_failed(u8*file,u32line)
{
while(1)
{
}
}
#endif
評論