📄 main.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 + -