| 将引脚和定时器进行初始化。 /**
  * 函数功能: 配置TIM4定时器初始化
  * 输入参数: 无
  * 返 回 值: 无
  * 说    明:无
  */
void Tim4_init(void)
{
        TIM_TimeBaseInitTypeDef  TIM_TimeBaseStructure;
        NVIC_InitTypeDef NVIC_InitStructure; 
        
        /*-------------------中断优先级配置初始化-------------------*/
  /* 设置中断组为0 */
  NVIC_PriorityGroupConfig(NVIC_PriorityGroup_0);                
  /* 设置中断来源 */
  NVIC_InitStructure.NVIC_IRQChannel = ADVANCE_TIM4_IRQ;        
  /* 设置主优先级为 0 */
  NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 2;         
  /* 设置抢占优先级为3 */
  NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1;
  NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
  NVIC_Init(&NVIC_InitStructure);        
        
        /*-------------------TIM4配置初始化-------------------*/        
  /* 开启TIM4_CLK即内部时钟CK_INT=72M */
  RCC_APB1PeriphClockCmd(ADVANCE_TIM4_CLK, ENABLE);        
  /* 自动重装载寄存器周的值(计数值) */
  TIM_TimeBaseStructure.TIM_Period=ADVANCE_TIM4_PERIOD;
  /* 累计 TIM_Period个频率后产生一个更新或者中断
     时钟预分频数为71,则驱动计数器的时钟CK_CNT = CK_INT / (71+1)=1M */
  TIM_TimeBaseStructure.TIM_Prescaler= ADVANCE_TIM4_PRESCALER;
  /* 计数器计数模式,基本定时器TIM8向上计数 */
  TIM_TimeBaseStructure.TIM_CounterMode=TIM_CounterMode_Up; 
  /* 初始化定时器TIM4 */
  TIM_TimeBaseInit(ADVANCE_TIM4, &TIM_TimeBaseStructure);
  /* 清除计数器中断标志位 */
  TIM_ClearITPendingBit(ADVANCE_TIM4, TIM_IT_Update);
  /* 开启计数器中断 */
  TIM_ITConfig(ADVANCE_TIM4,TIM_IT_Update,ENABLE);
  /* 使能计数器 */
  TIM_Cmd(ADVANCE_TIM4, ENABLE);        
}
 /**
  * 函数功能: LED灯管脚初始化
  * 输入参数: 无
  * 返 回 值: 无
  * 说    明:此处用到了特殊引脚,需要将RTC和外部低速时钟引脚作为普通引脚定义。
  */
void Hxeled_init(void)
{
 GPIO_InitTypeDef  GPIO_InitStructure;        
 RCC_APB2PeriphClockCmd(LED_SCK_CLK, ENABLE);                                          //使能PA端口时钟
 RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE);
 GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable,ENABLE);//失能JTAG
 PWR_BackupAccessCmd( ENABLE );/* 允许修改RTC和后备寄存器*/
 RCC_LSEConfig( RCC_LSE_OFF ); /* 关闭外部低速时钟,PC14+PC15可以用作普通IO*/
 BKP_TamperPinCmd(DISABLE);  /* 关闭入侵检测功能,PC13可以用作普通IO*/
        
 GPIO_InitStructure.GPIO_Pin = LED1_A_OUT | LED1_B_OUT | LED1_C_OUT | LED1_D_OUT |LED1_E_OUT |LED1_F_OUT | LED1_G_OUT | LED1_DP_OUT | LED2_G_OUT | LED2_DP_OUT | LED2_C_OUT | LED_WE1 | LED_WE2 | LED_WE3;
 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;                  //推挽输出
 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;                 //IO口速度为50MHz
 GPIO_Init(GPIOA, &GPIO_InitStructure);                                                                  //根据设定参数初始化 
 GPIO_InitStructure.GPIO_Pin = LED2_A_OUT | LED2_B_OUT | LED2_D_OUT |LED2_E_OUT |LED2_F_OUT;
 GPIO_Init(GPIOB, &GPIO_InitStructure);                                                            //推挽输出 ,IO口速度为50MHz
 PWR_BackupAccessCmd(DISABLE);/* 禁止修改RTC和后备寄存器*/
 GPIO_InitStructure.GPIO_Pin = LED_WE4;
 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;                  //推挽输出
 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;                 //IO口速度为50MHz
 GPIO_Init(GPIOC,&GPIO_InitStructure);                                                            
 
        DIG1=0;
        DIG2=0;
        DIG3=0;
        DIG4=0;
        
        A_out = 0;
        B_out = 0;
        C_out = 0;
        D_out = 0;
        E_out = 0;
        F_out = 0;
        G_out = 0;
        DP_out = 1;
}
 |