最好的电子音响科技diy制作网站

haoDIY_音响电子电脑科技DIY小制作发明

当前位置: 主页 > 科技DIY > 电动/发电/电磁 >

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

时间:2017-05-28 19:52来源:数码之家 作者:admin 点击:
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8|GPIO_Pin_9|GPIO_Pin_10|GPIO_Pin_11|GPIO_Pin_12; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(G
  • GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8|GPIO_Pin_9|GPIO_Pin_10|GPIO_Pin_11|GPIO_Pin_12;
  • GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
  • GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  • GPIO_Init(GPIOA, &GPIO_InitStructure);                  
  • GPIO_ResetBits(GPIOA,GPIO_Pin_8|GPIO_Pin_9|GPIO_Pin_10|GPIO_Pin_11|GPIO_Pin_12);
  • GPIO_InitStructure.GPIO_Pin = GPIO_Pin_15;              
  • GPIO_Init(GPIOB, &GPIO_InitStructure);                    
  • GPIO_ResetBits(GPIOB,GPIO_Pin_15);
  • PD3N=PD2N=PD1N=1;  
  • PD3P=PD2P=PD1P=0;
  • /*LED IO*/
  • GPIO_InitTypeDef  GPIO_InitStructure;
  • RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);
  • GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6|GPIO_Pin_12|GPIO_Pin_13|GPIO_Pin_14;
  • GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
  • GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  • GPIO_Init(GPIOB, &GPIO_InitStructure);
  • GPIO_ResetBits(GPIOB,GPIO_Pin_12|GPIO_Pin_13|GPIO_Pin_14);
  • GPIO_SetBits(GPIOB,GPIO_Pin_6);
  •     TIM_TimeBaseInitTypeDef  TIM_TimeBaseStructure;
  •     NVIC_InitTypeDef NVIC_InitStructure;
  • /*输出中断*/
  •     RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE);
  •     TIM_TimeBaseStructure.TIM_Period = fz;    //ARR
  •     TIM_TimeBaseStructure.TIM_Prescaler =719;   //预分频
  •     TIM_TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DIV1;
  •     TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;
  •     TIM_TimeBaseInit(TIM3, &TIM_TimeBaseStructure);
  •     TIM_ITConfig(TIM3,TIM_IT_Update,ENABLE );
  •     NVIC_InitStructure.NVIC_IRQChannel = TIM3_IRQn;
  •     NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;   //优先级0
  •     NVIC_InitStructure.NVIC_IRQChannelSubPriority = 3;
  •     NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
  •     NVIC_Init(&NVIC_InitStructure);
  •     TIM_Cmd(TIM3, ENABLE);  //使能      
  • /*这个中断用于更新可调电阻和转速,20ms*/
  •     TIM_TimeBaseInitTypeDef  TIM_TimeBaseStructure;
  •     NVIC_InitTypeDef NVIC_InitStructure;
  •     RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM4, ENABLE);
  •     TIM_TimeBaseStructure.TIM_Period = 2499;
  •     TIM_TimeBaseStructure.TIM_Prescaler =719;
  •     TIM_TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DIV1;
  •     TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;
  •     TIM_TimeBaseInit(TIM4, &TIM_TimeBaseStructure);
  •     TIM_ITConfig(TIM4,TIM_IT_Update,ENABLE );
  •     NVIC_InitStructure.NVIC_IRQChannel = TIM4_IRQn;
  •     NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 1;
  •     NVIC_InitStructure.NVIC_IRQChannelSubPriority = 2;
  •     NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
  •     NVIC_Init(&NVIC_InitStructure);
  •     TIM_Cmd(TIM4, ENABLE);
  • /*ADC使能*/
  •     ADC_InitTypeDef ADC_InitStructure;
  •     GPIO_InitTypeDef GPIO_InitStructure;
  •     RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA |RCC_APB2Periph_ADC1    , ENABLE );
  •     RCC_ADCCLKConfig(RCC_PCLK2_Div6);
  •     GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2;
  •     GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AIN;
  •     GPIO_Init(GPIOA, &GPIO_InitStructure);
  •     ADC_DeInit(ADC1);
  •     ADC_InitStructure.ADC_Mode = ADC_Mode_Independent;
  •     ADC_InitStructure.ADC_ScanConvMode = DISABLE;
  •     ADC_InitStructure.ADC_ContinuousConvMode = DISABLE;
  •     ADC_InitStructure.ADC_ExternalTrigConv = ADC_ExternalTrigConv_None;
  •     ADC_InitStructure.ADC_DataAlign = ADC_DataAlign_Right;
  •     ADC_InitStructure.ADC_NbrOfChannel = 1;
  •     ADC_Init(ADC1, &ADC_InitStructure);
  •    ADC_Cmd(ADC1, ENABLE);
  •     ADC_ResetCalibration(ADC1);
  •     while(ADC_GetResetCalibrationStatus(ADC1));
  •     ADC_StartCalibration(ADC1);
  •     while(ADC_GetCalibrationStatus(ADC1));
  • /*LED用定时器TIM2*/
  •     TIM_TimeBaseInitTypeDef  TIM_TimeBaseStructure;
  •     NVIC_InitTypeDef NVIC_InitStructure;
  •     RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2, ENABLE);
  •     TIM_TimeBaseStructure.TIM_Period = arr;
  •     TIM_TimeBaseStructure.TIM_Prescaler =psc;
  •     TIM_TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DIV1;
  •     TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;
  •     TIM_TimeBaseInit(TIM2, &TIM_TimeBaseStructure);
  •     TIM_ITConfig(TIM2,TIM_IT_Update,ENABLE );
  •     NVIC_InitStructure.NVIC_IRQChannel = TIM2_IRQn;
  •     NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 1;
  •     NVIC_InitStructure.NVIC_IRQChannelSubPriority = 3;
  •     NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
  •     NVIC_Init(&NVIC_InitStructure);
  •     TIM_Cmd(TIM2, ENABLE);

  •     
    中断:

    1. void TIM3_IRQHandler(void){
    2.   if( TIM_GetITStatus( TIM3, TIM_IT_Update )!= RESET ){
    3.     TIM_ClearITPendingBit( TIM3, TIM_IT_Update );
    4.         switch(DP){
    5.             case 1:{
    6.                 PD3N=PD2N=PD1N=1;    
    7.                 PD3P=PD2P=PD1P=0;
    8.                 PD1N=PD1P=1;
    9.                 PD2N=PD2P=0;
    10.                 DP=2;
    11.                 break;
    12.             }case 2:{
    13.                 PD3N=PD2N=PD1N=1;    
    14.                 PD3P=PD2P=PD1P=0;
    15.                 PD2N=PD2P=1;
    16.                 PD3N=PD3P=0;
    17.                 DP=3;
    18.                 break; (责任编辑:admin)
    织梦二维码生成器
    顶一下
    (0)
    0%
    踩一下
    (0)
    0%
    相关文章
    ------分隔线----------------------------
    发表评论
    请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
    评价:
    表情:
    用户名: 验证码:点击我更换图片
    栏目列表
    推荐内容