haoDIY创好电子音响电脑科技DIY小制作发明移动版

主页 > 电子DIY > 综合DIY >

固态磁力搅拌器制作(附电路+源代码)(2)

  •                 break;
  •             }

  •             
    配置IO和中断


    1. /*控制IO*/
    2. GPIO_InitTypeDef  GPIO_InitStructure;
    3. RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_GPIOB, ENABLE);
    4. GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8|GPIO_Pin_9|GPIO_Pin_10|GPIO_Pin_11|GPIO_Pin_12;
    5. GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
    6. GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
    7. GPIO_Init(GPIOA, &GPIO_InitStructure);                  
    8. GPIO_ResetBits(GPIOA,GPIO_Pin_8|GPIO_Pin_9|GPIO_Pin_10|GPIO_Pin_11|GPIO_Pin_12);
    9. GPIO_InitStructure.GPIO_Pin = GPIO_Pin_15;              
    10. GPIO_Init(GPIOB, &GPIO_InitStructure);                    
    11. GPIO_ResetBits(GPIOB,GPIO_Pin_15);
    12. PD3N=PD2N=PD1N=1;  
    13. PD3P=PD2P=PD1P=0;
    14. /*LED IO*/
    15. GPIO_InitTypeDef  GPIO_InitStructure;
    16. RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);
    17. GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6|GPIO_Pin_12|GPIO_Pin_13|GPIO_Pin_14;
    18. GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
    19. GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
    20. GPIO_Init(GPIOB, &GPIO_InitStructure);
    21. GPIO_ResetBits(GPIOB,GPIO_Pin_12|GPIO_Pin_13|GPIO_Pin_14);
    22. GPIO_SetBits(GPIOB,GPIO_Pin_6);
    23.     TIM_TimeBaseInitTypeDef  TIM_TimeBaseStructure;
    24.     NVIC_InitTypeDef NVIC_InitStructure;
    25. /*输出中断*/
    26.     RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE);
    27.     TIM_TimeBaseStructure.TIM_Period = fz;    //ARR
    28.     TIM_TimeBaseStructure.TIM_Prescaler =719;   //预分频
    29.     TIM_TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DIV1;
    30.     TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;
    31.     TIM_TimeBaseInit(TIM3, &TIM_TimeBaseStructure);
    32.     TIM_ITConfig(TIM3,TIM_IT_Update,ENABLE );
    33.     NVIC_InitStructure.NVIC_IRQChannel = TIM3_IRQn;
    34.     NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;   //优先级0
    35.     NVIC_InitStructure.NVIC_IRQChannelSubPriority = 3;
    36.     NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
    37.     NVIC_Init(&NVIC_InitStructure);
    38.     TIM_Cmd(TIM3, ENABLE);  //使能      
    39. /*这个中断用于更新可调电阻和转速,20ms*/
    40.     TIM_TimeBaseInitTypeDef  TIM_TimeBaseStructure;
    41.     NVIC_InitTypeDef NVIC_InitStructure;
    42.     RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM4, ENABLE);
    43.     TIM_TimeBaseStructure.TIM_Period = 2499;
    44.     TIM_TimeBaseStructure.TIM_Prescaler =719;
    45.     TIM_TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DIV1;
    46.     TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;
    47.     TIM_TimeBaseInit(TIM4, &TIM_TimeBaseStructure);
    48.     TIM_ITConfig(TIM4,TIM_IT_Update,ENABLE );
    49.     NVIC_InitStructure.NVIC_IRQChannel = TIM4_IRQn;
    50.     NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 1;
    51.     NVIC_InitStructure.NVIC_IRQChannelSubPriority = 2;
    52.     NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
    53.     NVIC_Init(&NVIC_InitStructure);
    54.     TIM_Cmd(TIM4, ENABLE);
    55. /*ADC使能*/
    56.     ADC_InitTypeDef ADC_InitStructure;
    57.     GPIO_InitTypeDef GPIO_InitStructure;
    58.     RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA |RCC_APB2Periph_ADC1    , ENABLE );
    59.     RCC_ADCCLKConfig(RCC_PCLK2_Div6);
    60.     GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2;
    61.     GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AIN;
    62.     GPIO_Init(GPIOA, &GPIO_InitStructure);
    63. (责任编辑:admin)
    haoDIY创好电子 版权所有,电话微信13977534587