⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.c

📁 诺基亚5110 LCD资料
💻 C
字号:

#include "stm32f10x_lib.h"


void LCD_Init(void);
void Key_Init(void);

void welcome(void);
void ping(void);
void bg_init(void);
void create(void);
void fangkuai_init(void);
void renew(void);
void disscore(void);
void disguan(void);
void key(void);
extern unsigned char suijishu;

void Suijishu(void) //suijishu0 to 6
{
  if(suijishu<6)
     suijishu++;
  else
     suijishu=0;
}


void Timer_Configuration(void);
void NVIC_Configuration(void);
void RCC_Configuration(void);
main()
{	
 //   unsigned char k;
    RCC_Configuration();
	LCD_Init();
	Key_Init();
	NVIC_Configuration();
	Timer_Configuration();
	welcome();
	ping();	
	bg_init(); 
	create();
	fangkuai_init();
	renew();
	disscore();
	disguan();
  	while(1)
	{
	   key();
	   Suijishu();
	}

}

void RCC_Configuration(void)
{
  ErrorStatus HSEStartUpStatus;
  RCC_DeInit();
  RCC_HSEConfig(RCC_HSE_ON);
  HSEStartUpStatus = RCC_WaitForHSEStartUp();
  if(HSEStartUpStatus == SUCCESS)
  {
   RCC_HCLKConfig(RCC_SYSCLK_Div1); 
   RCC_PCLK2Config(RCC_HCLK_Div1); 
   RCC_PCLK1Config(RCC_HCLK_Div2);	//9M
   RCC_ADCCLKConfig(RCC_PCLK2_Div6);
   FLASH_SetLatency(FLASH_Latency_2);
   FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable);
   RCC_PLLConfig(RCC_PLLSource_HSE_Div1, RCC_PLLMul_9);	 //PLL 72M
   RCC_PLLCmd(ENABLE);
   while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET)
    {
    }
   RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);
    while(RCC_GetSYSCLKSource() != 0x08)
    {
    } 
  }

  RCC_APB2PeriphClockCmd(RCC_APB2Periph_ALL,ENABLE);
  RCC_APB1PeriphClockCmd(RCC_APB1Periph_ALL, ENABLE);	 
}




void NVIC_Configuration(void)
{
   NVIC_InitTypeDef NVIC_InitStructure;
#ifdef  VECT_TAB_RAM                                      
   NVIC_SetVectorTable(NVIC_VectTab_RAM, 0x0); 
#else                                                                                                       
   NVIC_SetVectorTable(NVIC_VectTab_FLASH, 0x0);   
#endif
                                                            
   //NVIC_PriorityGroupConfig(NVIC_PriorityGroup_0);        //配置优先级组                                                      
   NVIC_InitStructure.NVIC_IRQChannel = TIM2_IRQChannel;  //设置TIM2通道输入中断
   NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0; /* Configure the NVIC Preemption Priority Bits[配置优先级组] */
   NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;  
   NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;   /* Enable the TIM2 gloabal Interrupt [允许TIM2全局中断]*/
   NVIC_Init(&NVIC_InitStructure);
}
void Timer_Configuration(void)
{
 TIM_TimeBaseInitTypeDef   TIM_TimeBaseStructure;

 TIM_DeInit(TIM2);

 TIM_TimeBaseStructure.TIM_Period=2000;		 //ARR的值
 TIM_TimeBaseStructure.TIM_Prescaler=0;
 TIM_TimeBaseStructure.TIM_ClockDivision=TIM_CKD_DIV1; //采样分频
 TIM_TimeBaseStructure.TIM_CounterMode=TIM_CounterMode_Up; //向上计数模式
 TIM_TimeBaseInit(TIM2, &TIM_TimeBaseStructure);
 TIM_PrescalerConfig(TIM2,360,TIM_PSCReloadMode_Immediate);//时钟分频系数36000,所以定时器时钟为2K
 TIM_ARRPreloadConfig(TIM2, DISABLE);//禁止ARR预装载缓冲器
 TIM_ITConfig(TIM2,TIM_IT_Update,ENABLE);

 TIM_Cmd(TIM2, ENABLE);	//开启时钟

}



⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -