您当前的位置:首页 > IT编程 > C++
| C语言 | Java | VB | VC | python | Android | TensorFlow | C++ | oracle | 学术与代码 | cnn卷积神经网络 | gnn | 图像修复 | Keras | 数据集 | Neo4j | 自然语言处理 | 深度学习 | 医学CAD | 医学影像 | 超参数 | pointnet | pytorch | 异常检测 | Transformers | 情感分类 | 知识图谱 |

自学教程:C++ HAL_TIM_IC_Init函数代码示例

51自学网 2021-06-01 21:21:56
  C++
这篇教程C++ HAL_TIM_IC_Init函数代码示例写得很实用,希望能帮到您。

本文整理汇总了C++中HAL_TIM_IC_Init函数的典型用法代码示例。如果您正苦于以下问题:C++ HAL_TIM_IC_Init函数的具体用法?C++ HAL_TIM_IC_Init怎么用?C++ HAL_TIM_IC_Init使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。

在下文中一共展示了HAL_TIM_IC_Init函数的23个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。

示例1: MX_TIM3_Init

/* TIM3 init function */void MX_TIM3_Init(void){  TIM_ClockConfigTypeDef sClockSourceConfig;  TIM_MasterConfigTypeDef sMasterConfig;  TIM_IC_InitTypeDef sConfigIC;  htim3.Instance = TIM3;  htim3.Init.Prescaler = 71;  htim3.Init.CounterMode = TIM_COUNTERMODE_UP;  htim3.Init.Period = 0xffff;  htim3.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;  HAL_TIM_Base_Init(&htim3);  sClockSourceConfig.ClockSource = TIM_CLOCKSOURCE_INTERNAL;  HAL_TIM_ConfigClockSource(&htim3, &sClockSourceConfig);  HAL_TIM_IC_Init(&htim3);  sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET;  sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE;  HAL_TIMEx_MasterConfigSynchronization(&htim3, &sMasterConfig);  sConfigIC.ICPolarity = TIM_INPUTCHANNELPOLARITY_FALLING;  sConfigIC.ICSelection = TIM_ICSELECTION_DIRECTTI;  sConfigIC.ICPrescaler = TIM_ICPSC_DIV1;  sConfigIC.ICFilter = 0;  HAL_TIM_IC_ConfigChannel(&htim3, &sConfigIC, TIM_CHANNEL_4);}
开发者ID:yusp75,项目名称:pellet-stove-control,代码行数:30,


示例2: MX_TIM4_Init

/* TIM4 init function */void MX_TIM4_Init(void){  TIM_Encoder_InitTypeDef sConfig;  TIM_MasterConfigTypeDef sMasterConfig;  TIM_IC_InitTypeDef sConfigIC;  htim4.Instance = TIM4;  htim4.Init.Prescaler = 0;  htim4.Init.CounterMode = TIM_COUNTERMODE_UP;  htim4.Init.Period = 0xFFFF;  htim4.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;  HAL_TIM_IC_Init(&htim4);  sConfig.EncoderMode = TIM_ENCODERMODE_TI12;  sConfig.IC1Polarity = TIM_ICPOLARITY_RISING;  sConfig.IC1Selection = TIM_ICSELECTION_DIRECTTI;  sConfig.IC1Prescaler = TIM_ICPSC_DIV1;  sConfig.IC1Filter = 8;  sConfig.IC2Polarity = TIM_ICPOLARITY_RISING;  sConfig.IC2Selection = TIM_ICSELECTION_DIRECTTI;  sConfig.IC2Prescaler = TIM_ICPSC_DIV1;  sConfig.IC2Filter = 8;  HAL_TIM_Encoder_Init(&htim4, &sConfig);  sMasterConfig.MasterOutputTrigger = TIM_TRGO_UPDATE;  sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_ENABLE;  HAL_TIMEx_MasterConfigSynchronization(&htim4, &sMasterConfig);  sConfigIC.ICPolarity = TIM_INPUTCHANNELPOLARITY_RISING;  sConfigIC.ICSelection = TIM_ICSELECTION_DIRECTTI;  sConfigIC.ICPrescaler = TIM_ICPSC_DIV1;  sConfigIC.ICFilter = 0;  HAL_TIM_IC_ConfigChannel(&htim4, &sConfigIC, TIM_CHANNEL_3);}
开发者ID:dokor,项目名称:RobotCarto,代码行数:36,


示例3: MX_TIM5_Init

/* TIM5 init function */void MX_TIM5_Init(void){  TIM_MasterConfigTypeDef sMasterConfig;  TIM_IC_InitTypeDef sConfigIC;  TIM_OC_InitTypeDef sConfigOC;  htim5.Instance = TIM5;  htim5.Init.Prescaler = 0;  htim5.Init.CounterMode = TIM_COUNTERMODE_UP;  htim5.Init.Period = 8400000 * 5; // 500 ms  htim5.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;  HAL_TIM_IC_Init(&htim5);  HAL_TIM_PWM_Init(&htim5);  sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET;  sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE;  HAL_TIMEx_MasterConfigSynchronization(&htim5, &sMasterConfig);  sConfigIC.ICPolarity = TIM_INPUTCHANNELPOLARITY_BOTHEDGE;  sConfigIC.ICSelection = TIM_ICSELECTION_DIRECTTI;  sConfigIC.ICPrescaler = TIM_ICPSC_DIV1;  sConfigIC.ICFilter = 0;  HAL_TIM_IC_ConfigChannel(&htim5, &sConfigIC, TIM_CHANNEL_1);  sConfigOC.OCMode = TIM_OCMODE_PWM1;  sConfigOC.Pulse = 840;  sConfigOC.OCPolarity = TIM_OCPOLARITY_HIGH;  sConfigOC.OCFastMode = TIM_OCFAST_DISABLE;  HAL_TIM_PWM_ConfigChannel(&htim5, &sConfigOC, TIM_CHANNEL_2);  HAL_TIM_MspPostInit(&htim5);}
开发者ID:Vadim-Stupakov,项目名称:ProjectX,代码行数:35,


示例4: GetLSIFrequency

/**  * @brief  Configures TIM5 to measure the LSI oscillator frequency.   * @param  None  * @retval LSI Frequency  */static uint32_t GetLSIFrequency(void){  TIM_IC_InitTypeDef    TIMInput_Config;  /* Configure the TIM peripheral *********************************************/   /* Set TIMx instance */    Input_Handle.Instance = TIM5;    /* TIM5 configuration: Input Capture mode ---------------------     The LSI oscillator is connected to TIM5 TIM_CHANNEL_4.     The Rising edge is used as active edge.     The TIM5 CCR TIM_CHANNEL_4 is used to compute the frequency value.   ------------------------------------------------------------ */  Input_Handle.Init.Prescaler         = 0;   Input_Handle.Init.CounterMode       = TIM_COUNTERMODE_UP;    Input_Handle.Init.Period            = 0xFFFF;   Input_Handle.Init.ClockDivision     = 0;       if(HAL_TIM_IC_Init(&Input_Handle) != HAL_OK)  {    /* Initialization Error */    Error_Handler();  }    /* Connect internally the TIM5 TIM_CHANNEL_4 Input Capture to the LSI clock output */  __HAL_RCC_AFIO_CLK_ENABLE();  __HAL_AFIO_REMAP_TIM5CH4_ENABLE();    /* Configure the Input Capture of TIM_CHANNEL_4 */  TIMInput_Config.ICPolarity  = TIM_ICPOLARITY_RISING;  TIMInput_Config.ICSelection = TIM_ICSELECTION_DIRECTTI;  TIMInput_Config.ICPrescaler = TIM_ICPSC_DIV8;  TIMInput_Config.ICFilter    = 0;  if(HAL_TIM_IC_ConfigChannel(&Input_Handle, &TIMInput_Config, TIM_CHANNEL_4) != HAL_OK)  {    /* Initialization Error */    Error_Handler();  }  /* Start the TIM Input Capture measurement in interrupt mode */  if(HAL_TIM_IC_Start_IT(&Input_Handle, TIM_CHANNEL_4) != HAL_OK)  {    Error_Handler();  }  /* Wait until the TIM5 get 2 LSI edges */  while(uwCaptureNumber != 2)  {  }  /* Disable TIM5 CC1 Interrupt Request */  HAL_TIM_IC_Stop_IT(&Input_Handle, TIM_CHANNEL_4);    /* Deinitialize the TIM5 peripheral registers to their default reset values */  HAL_TIM_IC_DeInit(&Input_Handle);  return uwLsiFreq;}
开发者ID:Lembed,项目名称:STM32CubeF1-mirrors,代码行数:62,


示例5: TIM4_Config

/**               * @brief  TIM4 Configuration  * @note   TIM4 configuration is based on APB1 frequency  * @note   TIM4 Update event occurs each Input Capture Rising Edge     * @param  None  * @retval None  */void TIM4_Config(void){  TIM_IC_InitTypeDef    TIMInput_Config;  uint16_t PeriodValue = 0;  TIM_SlaveConfigTypeDef sSlaveConfig;    /*##-1- Configure the TIM peripheral #######################################*/  /* Input Capture configuration */  Input_Handle.Instance = TIM4;    /* Calculate the period value */  PeriodValue = (uint16_t) ((SystemCoreClock) / FREQ);    Input_Handle.Init.Period = PeriodValue;            Input_Handle.Init.Prescaler = 0;         Input_Handle.Init.ClockDivision = 0;      Input_Handle.Init.CounterMode = TIM_COUNTERMODE_UP;   Input_Handle.Init.RepetitionCounter = 0;  HAL_TIM_IC_Init(&Input_Handle);  /*##-2- Configure the Input Capture ########################################*/    /* Input Capture configuration of channel 2 */  TIMInput_Config.ICPolarity  = TIM_ICPOLARITY_RISING;  TIMInput_Config.ICSelection = TIM_ICSELECTION_DIRECTTI;  TIMInput_Config.ICPrescaler = TIM_ICPSC_DIV1;  TIMInput_Config.ICFilter    = 0;  if(HAL_TIM_IC_ConfigChannel(&Input_Handle, &TIMInput_Config, TIM_CHANNEL_2) != HAL_OK)  {    /* Initialization Error */    Error_Handler();  }  /*##-3- Configure the Trigger Input ########################################*/    /* TIM4 Input Trigger selection */  sSlaveConfig.InputTrigger = TIM_TS_ITR2;  sSlaveConfig.SlaveMode = TIM_SLAVEMODE_TRIGGER;  HAL_TIM_SlaveConfigSynchronization(&Input_Handle, &sSlaveConfig);  /* Reset the flags */  Input_Handle.Instance->SR = 0;  /*##-4- Enable TIM peripheral counter ######################################*/  /* Start the TIM Input Capture measurement in interrupt mode */  if(HAL_TIM_IC_Start_IT(&Input_Handle, TIM_CHANNEL_2) != HAL_OK)  {    Error_Handler();  }}
开发者ID:eleciawhite,项目名称:STM32Cube,代码行数:57,


示例6: DHT22_Init

DHT22_RESULT DHT22_Init(DHT22_HandleTypeDef* handle) {    handle->timHandle.Init.Period = 0xFFFF;    handle->timHandle.Init.Prescaler = 0;    handle->timHandle.Init.ClockDivision = 0;    handle->timHandle.Init.CounterMode = TIM_COUNTERMODE_UP;    if (HAL_TIM_IC_Init(&handle->timHandle) != HAL_OK) {        return DHT22_ERROR;    }    handle->timICHandle.ICPolarity = TIM_ICPOLARITY_FALLING;    handle->timICHandle.ICSelection = TIM_ICSELECTION_DIRECTTI;    handle->timICHandle.ICPrescaler = TIM_ICPSC_DIV1;    handle->timICHandle.ICFilter = 0;    if (HAL_TIM_IC_ConfigChannel(&handle->timHandle, &handle->timICHandle,                                 handle->timChannel) != HAL_OK) {        return DHT22_ERROR;    }    return DHT22_OK;}
开发者ID:CynaCons,项目名称:stm32_BluTechDevice,代码行数:18,


示例7: TIM_Config

/**  * @brief  Configures TIM2 channel 4 in input capture mode  * @param  None  * @retval None  */static void TIM_Config(void){  /*##-1- Configure the TIM peripheral #######################################*/   /* Set TIMx instance */  TimHandle.Instance = TIMx;   /* Initialize TIMx peripheral as follow:       + Period = 0xFFFF       + Prescaler = 0       + ClockDivision = 0       + Counter direction = Up  */  TimHandle.Init.Period        = 0xFFFF;  TimHandle.Init.Prescaler     = 0;  TimHandle.Init.ClockDivision = 0;  TimHandle.Init.CounterMode   = TIM_COUNTERMODE_UP;    if(HAL_TIM_IC_Init(&TimHandle) != HAL_OK)  {    /* Error */    ErrorHandler();  }    HAL_TIMEx_RemapConfig(&TimHandle, TIM2_TI4_COMP1);     /*##-2- Configure the Input Capture channel ################################*/   /* Configure the Input Capture of channel 4 */  sICConfig.ICPolarity  = TIM_ICPOLARITY_BOTHEDGE;  sICConfig.ICSelection = TIM_ICSELECTION_DIRECTTI;  sICConfig.ICPrescaler = TIM_ICPSC_DIV1;  sICConfig.ICFilter    = 0;     if(HAL_TIM_IC_ConfigChannel(&TimHandle, &sICConfig, TIM_CHANNEL_4) != HAL_OK)  {    /* Configuration Error */    ErrorHandler();  }    /*##-3- Start the Input Capture in interrupt mode ##########################*/  if(HAL_TIM_IC_Start_IT(&TimHandle, TIM_CHANNEL_4) != HAL_OK)  {    /* Starting Error */    ErrorHandler();  }}
开发者ID:shjere,项目名称:common,代码行数:48,


示例8: MX_TIM1_Init

/* TIM1 init function */void MX_TIM1_Init(void){  TIM_ClockConfigTypeDef sClockSourceConfig;  TIM_SlaveConfigTypeDef sSlaveConfig;  TIM_MasterConfigTypeDef sMasterConfig;  TIM_IC_InitTypeDef sConfigIC;  htim1.Instance = TIM1;  htim1.Init.Prescaler = 167;  htim1.Init.CounterMode = TIM_COUNTERMODE_UP;  htim1.Init.Period = 0xFFFF;  htim1.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;  htim1.Init.RepetitionCounter = 0;  HAL_TIM_Base_Init(&htim1);  sClockSourceConfig.ClockSource = TIM_CLOCKSOURCE_INTERNAL;  HAL_TIM_ConfigClockSource(&htim1, &sClockSourceConfig);  HAL_TIM_IC_Init(&htim1);  sSlaveConfig.SlaveMode = TIM_SLAVEMODE_RESET;  sSlaveConfig.InputTrigger = TIM_TS_TI1F_ED;  sSlaveConfig.TriggerPolarity = TIM_INPUTCHANNELPOLARITY_RISING;  sSlaveConfig.TriggerFilter = 0;  HAL_TIM_SlaveConfigSynchronization(&htim1, &sSlaveConfig);  sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET;  sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE;  HAL_TIMEx_MasterConfigSynchronization(&htim1, &sMasterConfig);  sConfigIC.ICPolarity = TIM_INPUTCHANNELPOLARITY_FALLING;  sConfigIC.ICSelection = TIM_ICSELECTION_DIRECTTI;  sConfigIC.ICPrescaler = TIM_ICPSC_DIV1;  sConfigIC.ICFilter = 0;  HAL_TIM_IC_ConfigChannel(&htim1, &sConfigIC, TIM_CHANNEL_1);  HAL_TIM_IC_ConfigChannel(&htim1, &sConfigIC, TIM_CHANNEL_2);  HAL_TIM_IC_ConfigChannel(&htim1, &sConfigIC, TIM_CHANNEL_3);  HAL_TIM_ConfigTI1Input(&htim1, TIM_TI1SELECTION_XORCOMBINATION);}
开发者ID:dokor,项目名称:RobotCarto,代码行数:44,


示例9: TIM_Init

void TIM_Init(TIM_HandleTypeDef *timh){    TIM_IC_InitTypeDef       sConfig;    timh->Init.Period = 0xFFFF;    timh->Init.Prescaler = 0;    timh->Init.Prescaler = ((SystemCoreClock) / 1000000) - 1;	// 1Mhz    timh->Init.ClockDivision = 0;    timh->Init.CounterMode = TIM_COUNTERMODE_UP;    HAL_TIM_IC_Init(timh);    // Common configuration    sConfig.ICPrescaler = TIM_ICPSC_DIV1;    sConfig.ICFilter = 0;    // Configure the Input Capture of channel 1    sConfig.ICPolarity = TIM_ICPOLARITY_RISING;    sConfig.ICSelection = TIM_ICSELECTION_INDIRECTTI;    HAL_TIM_IC_ConfigChannel(timh, &sConfig, TIM_CHANNEL_1);    // Configure the Input Capture of channel 2    sConfig.ICPolarity = TIM_ICPOLARITY_FALLING;    sConfig.ICSelection = TIM_ICSELECTION_DIRECTTI;    HAL_TIM_IC_ConfigChannel(timh, &sConfig, TIM_CHANNEL_2);    // Configure the Input Capture of channel 3    sConfig.ICPolarity = TIM_ICPOLARITY_RISING;    sConfig.ICSelection = TIM_ICSELECTION_INDIRECTTI;    HAL_TIM_IC_ConfigChannel(timh, &sConfig, TIM_CHANNEL_3);    // Configure the Input Capture of channel 4    sConfig.ICPolarity = TIM_ICPOLARITY_FALLING;    sConfig.ICSelection = TIM_ICSELECTION_DIRECTTI;    HAL_TIM_IC_ConfigChannel(timh, &sConfig, TIM_CHANNEL_4);    HAL_TIM_IC_Start_IT(timh, TIM_CHANNEL_1);    HAL_TIM_IC_Start_IT(timh, TIM_CHANNEL_2);    HAL_TIM_IC_Start_IT(timh, TIM_CHANNEL_3);    HAL_TIM_IC_Start_IT(timh, TIM_CHANNEL_4);}
开发者ID:Bosvark,项目名称:STMf401_ahrs,代码行数:40,


示例10: MX_TIM5_Init

/* TIM5 init function */void MX_TIM5_Init(void){  TIM_MasterConfigTypeDef sMasterConfig;  TIM_IC_InitTypeDef sConfigIC;  htim5.Instance = TIM5;  htim5.Init.Prescaler = 0;  htim5.Init.CounterMode = TIM_COUNTERMODE_UP;  htim5.Init.Period = 0xFFFFFFFF;  htim5.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;  if (HAL_TIM_IC_Init(&htim5) != HAL_OK)  {    _Error_Handler(__FILE__, __LINE__);  }  sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET;  sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE;  if (HAL_TIMEx_MasterConfigSynchronization(&htim5, &sMasterConfig) != HAL_OK)  {    _Error_Handler(__FILE__, __LINE__);  }  sConfigIC.ICPolarity = TIM_INPUTCHANNELPOLARITY_BOTHEDGE;  sConfigIC.ICSelection = TIM_ICSELECTION_DIRECTTI;  sConfigIC.ICPrescaler = TIM_ICPSC_DIV1;  sConfigIC.ICFilter = 15;  if (HAL_TIM_IC_ConfigChannel(&htim5, &sConfigIC, TIM_CHANNEL_3) != HAL_OK)  {    _Error_Handler(__FILE__, __LINE__);  }  if (HAL_TIM_IC_ConfigChannel(&htim5, &sConfigIC, TIM_CHANNEL_4) != HAL_OK)  {    _Error_Handler(__FILE__, __LINE__);  }}
开发者ID:madcowswe,项目名称:ODrive,代码行数:38,


示例11: MX_TIM5_Init

/* TIM5 init function */void MX_TIM5_Init(void){  TIM_SlaveConfigTypeDef sSlaveConfig;  TIM_MasterConfigTypeDef sMasterConfig;  TIM_IC_InitTypeDef sConfigIC;  htim5.Instance = TIM5;  htim5.Init.Prescaler = 49;  htim5.Init.CounterMode = TIM_COUNTERMODE_UP;  htim5.Init.Period = 0xFFFF;  htim5.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;  HAL_TIM_Base_Init(&htim5);  HAL_TIM_IC_Init(&htim5);  sSlaveConfig.SlaveMode = TIM_SLAVEMODE_RESET;  sSlaveConfig.InputTrigger = TIM_TS_TI2FP2;  sSlaveConfig.TriggerPolarity = TIM_INPUTCHANNELPOLARITY_RISING;  sSlaveConfig.TriggerFilter = 0;  HAL_TIM_SlaveConfigSynchronization(&htim5, &sSlaveConfig);  sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET;  sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE;  HAL_TIMEx_MasterConfigSynchronization(&htim5, &sMasterConfig);  sConfigIC.ICPolarity = TIM_INPUTCHANNELPOLARITY_FALLING;  sConfigIC.ICSelection = TIM_ICSELECTION_INDIRECTTI;  sConfigIC.ICPrescaler = TIM_ICPSC_DIV1;  sConfigIC.ICFilter = 0;  HAL_TIM_IC_ConfigChannel(&htim5, &sConfigIC, TIM_CHANNEL_1);  sConfigIC.ICPolarity = TIM_INPUTCHANNELPOLARITY_RISING;  sConfigIC.ICSelection = TIM_ICSELECTION_DIRECTTI;  HAL_TIM_IC_ConfigChannel(&htim5, &sConfigIC, TIM_CHANNEL_2);}
开发者ID:cjackie,项目名称:Quadcopter-Flight-Controller,代码行数:38,


示例12: main

/**  * @brief  Main program  * @param  None  * @retval None  */int main(void){  /* STM32F4xx HAL library initialization:       - Configure the Flash prefetch, instruction and Data caches       - Systick timer is configured by default as source of time base, but user          can eventually implement his proper time base source (a general purpose          timer for example or other time source), keeping in mind that Time base          duration should be kept 1ms since PPP_TIMEOUT_VALUEs are defined and          handled in milliseconds basis.       - Set NVIC Group Priority to 4       - Low Level Initialization: global MSP (MCU Support Package) initialization     */  HAL_Init();  /* Configure the system clock to 180 MHz */  SystemClock_Config();  /* Configure LED3 */  BSP_LED_Init(LED3);  /*##-1- Configure the TIM peripheral #######################################*/  /* TIM1 configuration: Input Capture mode ---------------------     The external signal is connected to TIM1 CH2 pin (PA.09 - )       The Rising edge is used as active edge,     The TIM1 CCR2 is used to compute the frequency value   ------------------------------------------------------------ */  /* Set TIMx instance */  TimHandle.Instance = TIMx;  /* Initialize TIMx peripheral as follows:       + Period = 0xFFFF       + Prescaler = 0       + ClockDivision = 0       + Counter direction = Up  */  TimHandle.Init.Period            = 0xFFFF;  TimHandle.Init.Prescaler         = 0;  TimHandle.Init.ClockDivision     = 0;  TimHandle.Init.CounterMode       = TIM_COUNTERMODE_UP;  TimHandle.Init.RepetitionCounter = 0;  if(HAL_TIM_IC_Init(&TimHandle) != HAL_OK)  {    /* Initialization Error */    Error_Handler();  }  /*##-2- Configure the Input Capture channel ################################*/   /* Configure the Input Capture of channel 2 */  sICConfig.ICPolarity  = TIM_ICPOLARITY_RISING;  sICConfig.ICSelection = TIM_ICSELECTION_DIRECTTI;  sICConfig.ICPrescaler = TIM_ICPSC_DIV1;  sICConfig.ICFilter    = 0;     if(HAL_TIM_IC_ConfigChannel(&TimHandle, &sICConfig, TIM_CHANNEL_2) != HAL_OK)  {    /* Configuration Error */    Error_Handler();  }    /*##-3- Start the Input Capture in interrupt mode ##########################*/  if(HAL_TIM_IC_Start_IT(&TimHandle, TIM_CHANNEL_2) != HAL_OK)  {    /* Starting Error */    Error_Handler();  }  while (1)  {  }}
开发者ID:pierreroth64,项目名称:STM32Cube_FW_F4,代码行数:75,


示例13: main

/**  * @brief  Main program  * @param  None  * @retval None  */int main(void){  /* STM32F4xx HAL library initialization:       - Configure the Flash prefetch, instruction and Data caches       - Configure the Systick to generate an interrupt each 1 msec       - Set NVIC Group Priority to 4       - Global MSP (MCU Support Package) initialization     */  HAL_Init();    /* Configure the system clock to 168 MHz */  SystemClock_Config();    /* Configure LED3 */  BSP_LED_Init(LED3);    /*##-1- Configure the TIM peripheral #######################################*/  /* ---------------------------------------------------------------------------   TIM4 configuration: PWM Input mode    In this example TIM4 input clock (TIM4CLK) is set to 2 * APB1 clock (PCLK1),     since APB1 prescaler is different from 1.         TIM4CLK = 2 * PCLK1        PCLK1 = HCLK / 4       => TIM4CLK = HCLK / 2 = SystemCoreClock /2    External Signal Frequency = TIM4 counter clock / TIM4_CCR2 in Hz.     External Signal DutyCycle = (TIM4_CCR1*100)/(TIM4_CCR2) in %.  --------------------------------------------------------------------------- */    /* Set TIMx instance */  TimHandle.Instance = TIM4;   /* Initialize TIMx peripheral as follow:       + Period = 0xFFFF       + Prescaler = 0       + ClockDivision = 0       + Counter direction = Up  */  TimHandle.Init.Period = 0xFFFF;  TimHandle.Init.Prescaler = 0;  TimHandle.Init.ClockDivision = 0;  TimHandle.Init.CounterMode = TIM_COUNTERMODE_UP;    if(HAL_TIM_IC_Init(&TimHandle) != HAL_OK)  {    /* Initialization Error */    Error_Handler();  }    /*##-2- Configure the Input Capture channels ###############################*/   /* Common configuration */  sConfig.ICPrescaler = TIM_ICPSC_DIV1;  sConfig.ICFilter = 0;      /* Configure the Input Capture of channel 1 */  sConfig.ICPolarity = TIM_ICPOLARITY_FALLING;  sConfig.ICSelection = TIM_ICSELECTION_INDIRECTTI;      if(HAL_TIM_IC_ConfigChannel(&TimHandle, &sConfig, TIM_CHANNEL_1) != HAL_OK)  {    /* Configuration Error */    Error_Handler();  }    /* Configure the Input Capture of channel 2 */  sConfig.ICPolarity = TIM_ICPOLARITY_RISING;  sConfig.ICSelection = TIM_ICSELECTION_DIRECTTI;  if(HAL_TIM_IC_ConfigChannel(&TimHandle, &sConfig, TIM_CHANNEL_2) != HAL_OK)  {    /* Configuration Error */    Error_Handler();  }  /*##-3- Configure the slave mode ###########################################*/  /* Select the slave Mode: Reset Mode  */  sSlaveConfig.SlaveMode     = TIM_SLAVEMODE_RESET;  sSlaveConfig.InputTrigger  = TIM_TS_TI2FP2;  if(HAL_TIM_SlaveConfigSynchronization(&TimHandle, &sSlaveConfig) != HAL_OK)  {    /* Configuration Error */    Error_Handler();  }    /*##-4- Start the Input Capture in interrupt mode ##########################*/  if(HAL_TIM_IC_Start_IT(&TimHandle, TIM_CHANNEL_2) != HAL_OK)  {    /* Starting Error */    Error_Handler();  }    /*##-5- Start the Input Capture in interrupt mode ##########################*/  if(HAL_TIM_IC_Start_IT(&TimHandle, TIM_CHANNEL_1) != HAL_OK)  {    /* Starting Error */    Error_Handler();//.........这里部分代码省略.........
开发者ID:nidhiyanandh,项目名称:STM32Cube_FW_F4_V1.5.0_GCC_Makefile,代码行数:101,


示例14: GetLSIFrequency

/**  * @brief  Configures TIM5 to measure the LSI oscillator frequency.   * @param  None  * @retval LSI Frequency  */static uint32_t GetLSIFrequency(void){  uint32_t pclk1 = 0;  TIM_IC_InitTypeDef timinputconfig;      /* Enable the LSI oscillator */  __HAL_RCC_LSI_ENABLE();    /* Wait till LSI is ready */  while (__HAL_RCC_GET_FLAG(RCC_FLAG_LSIRDY) == RESET)  {  }    /* Configure the TIM peripheral */   /* Set TIMx instance */    TimInputCaptureHandle.Instance = TIM5;    /* TIM5 configuration: Input Capture mode ---------------------  The LSI oscillator is connected to TIM5 CH4.  The Rising edge is used as active edge.  The TIM5 CCR4 is used to compute the frequency value.   ------------------------------------------------------------ */  TimInputCaptureHandle.Init.Prescaler         = 0;   TimInputCaptureHandle.Init.CounterMode       = TIM_COUNTERMODE_UP;    TimInputCaptureHandle.Init.Period            = 0xFFFF;   TimInputCaptureHandle.Init.ClockDivision     = 0;       TimInputCaptureHandle.Init.RepetitionCounter = 0;   if(HAL_TIM_IC_Init(&TimInputCaptureHandle) != HAL_OK)  {    /* Initialization Error */    Error_Handler();  }  /* Connect internally the TIM5_CH4 Input Capture to the LSI clock output */  HAL_TIMEx_RemapConfig(&TimInputCaptureHandle, TIM_TIM5_LSI);    /* Configure the Input Capture of channel 4 */  timinputconfig.ICPolarity  = TIM_ICPOLARITY_RISING;  timinputconfig.ICSelection = TIM_ICSELECTION_DIRECTTI;  timinputconfig.ICPrescaler = TIM_ICPSC_DIV8;  timinputconfig.ICFilter    = 0;    if(HAL_TIM_IC_ConfigChannel(&TimInputCaptureHandle, &timinputconfig, TIM_CHANNEL_4) != HAL_OK)  {    /* Initialization Error */    Error_Handler();  }    /* Reset the flags */  TimInputCaptureHandle.Instance->SR = 0;    /* Start the TIM Input Capture measurement in interrupt mode */  if(HAL_TIM_IC_Start_IT(&TimInputCaptureHandle, TIM_CHANNEL_4) != HAL_OK)  {    Error_Handler();  }    /* Wait until the TIM5 get 2 LSI edges (refer to TIM5_IRQHandler() in   stm32f4xx_it.c file) */  while(uwMeasurementDone == 0)  {  }  uwCaptureNumber = 0;    /* Deinitialize the TIM5 peripheral registers to their default reset values */  HAL_TIM_IC_DeInit(&TimInputCaptureHandle);    /* Compute the LSI frequency, depending on TIM5 input clock frequency (PCLK1)*/  /* Get PCLK1 frequency */  pclk1 = HAL_RCC_GetPCLK1Freq();    /* Get PCLK1 prescaler */  if((RCC->CFGR & RCC_CFGR_PPRE1) == 0)  {     /* PCLK1 prescaler equal to 1 => TIMCLK = PCLK1 */    return ((pclk1 / uwPeriodValue) * 8);  }  else  { /* PCLK1 prescaler different from 1 => TIMCLK = 2 * PCLK1 */    return (((2 * pclk1) / uwPeriodValue) * 8);  }}
开发者ID:eemei,项目名称:library-stm32f4,代码行数:86,


示例15: MX_TIM5_Init

/* TIM5 init function */void MX_TIM5_Init(void){  TIM_ClockConfigTypeDef sClockSourceConfig;  TIM_SlaveConfigTypeDef sSlaveConfig;  TIM_MasterConfigTypeDef sMasterConfig;  TIM_IC_InitTypeDef sConfigIC;  htim5.Instance = TIM5;  htim5.Init.Prescaler = 840;  htim5.Init.CounterMode = TIM_COUNTERMODE_UP;  htim5.Init.Period = 65535;  htim5.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;  if (HAL_TIM_Base_Init(&htim5) != HAL_OK)  {    Error_Handler();  }  sClockSourceConfig.ClockSource = TIM_CLOCKSOURCE_INTERNAL;  if (HAL_TIM_ConfigClockSource(&htim5, &sClockSourceConfig) != HAL_OK)  {    Error_Handler();  }  if (HAL_TIM_IC_Init(&htim5) != HAL_OK)  {    Error_Handler();  }  sSlaveConfig.SlaveMode = TIM_SLAVEMODE_RESET;  sSlaveConfig.InputTrigger = TIM_TS_TI2FP2;  sSlaveConfig.TriggerPolarity = TIM_INPUTCHANNELPOLARITY_RISING;  sSlaveConfig.TriggerFilter = 0;  if (HAL_TIM_SlaveConfigSynchronization(&htim5, &sSlaveConfig) != HAL_OK)  {    Error_Handler();  }  sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET;  sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE;  if (HAL_TIMEx_MasterConfigSynchronization(&htim5, &sMasterConfig) != HAL_OK)  {    Error_Handler();  }  sConfigIC.ICPolarity = TIM_INPUTCHANNELPOLARITY_FALLING;  sConfigIC.ICSelection = TIM_ICSELECTION_INDIRECTTI;  sConfigIC.ICPrescaler = TIM_ICPSC_DIV1;  sConfigIC.ICFilter = 0;  if (HAL_TIM_IC_ConfigChannel(&htim5, &sConfigIC, TIM_CHANNEL_1) != HAL_OK)  {    Error_Handler();  }  sConfigIC.ICPolarity = TIM_INPUTCHANNELPOLARITY_RISING;  sConfigIC.ICSelection = TIM_ICSELECTION_DIRECTTI;  if (HAL_TIM_IC_ConfigChannel(&htim5, &sConfigIC, TIM_CHANNEL_2) != HAL_OK)  {    Error_Handler();  }}
开发者ID:RoboSec,项目名称:rs_sensor_board,代码行数:62,


示例16: main

/**  * @brief  Main program.  * @param  None  * @retval None  */int main(void){  /* STM32F4xx HAL library initialization:       - Configure the Flash prefetch, instruction and Data caches       - Configure the Systick to generate an interrupt each 1 msec       - Set NVIC Group Priority to 4       - Global MSP (MCU Support Package) initialization     */  if(HAL_Init()!= HAL_OK)  {    /* Start Conversation Error */    Error_Handler();   }    /* Configure the system clock to 84 Mhz */  SystemClock_Config();    /* Configure LED5 */  BSP_LED_Init(LED5);    /*##-1- Configure the TIM peripheral #######################################*/   /* Set TIMx instance */  TimHandle.Instance = TIMx;  /* Initialize TIMx peripheral as follow:       + Period = 0xFFFF       + Prescaler = 0       + ClockDivision = 0       + Counter direction = Up  */  TimHandle.Init.Period = 0xFFFF;  TimHandle.Init.Prescaler = 0;  TimHandle.Init.ClockDivision = 0;  TimHandle.Init.CounterMode = TIM_COUNTERMODE_UP;    if(HAL_TIM_IC_Init(&TimHandle) != HAL_OK)  {    /* Initialization Error */    Error_Handler();  }    /*##-2- Configure the Input Capture channels ###############################*/   /* Common configuration */  sConfig.ICPrescaler = TIM_ICPSC_DIV1;  sConfig.ICFilter = 0;      /* Configure the Input Capture of channel 1 */  sConfig.ICPolarity = TIM_ICPOLARITY_FALLING;  sConfig.ICSelection = TIM_ICSELECTION_INDIRECTTI;      if(HAL_TIM_IC_ConfigChannel(&TimHandle, &sConfig, TIM_CHANNEL_1) != HAL_OK)  {    /* Configuration Error */    Error_Handler();  }    /* Configure the Input Capture of channel 2 */  sConfig.ICPolarity = TIM_ICPOLARITY_RISING;  sConfig.ICSelection = TIM_ICSELECTION_DIRECTTI;  if(HAL_TIM_IC_ConfigChannel(&TimHandle, &sConfig, TIM_CHANNEL_2) != HAL_OK)  {    /* Configuration Error */    Error_Handler();  }  /*##-3- Configure the slave mode ###########################################*/  /* Select the slave Mode: Reset Mode */  sSlaveConfig.SlaveMode     = TIM_SLAVEMODE_RESET;  sSlaveConfig.InputTrigger  = TIM_TS_TI2FP2;  if(HAL_TIM_SlaveConfigSynchronization(&TimHandle, &sSlaveConfig) != HAL_OK)  {    /* Configuration Error */    Error_Handler();  }    /*##-4- Start the Input Capture in interrupt mode ##########################*/  if(HAL_TIM_IC_Start_IT(&TimHandle, TIM_CHANNEL_2) != HAL_OK)  {    /* Starting Error */    Error_Handler();  }    /*##-5- Start the Input Capture in interrupt mode ##########################*/  if(HAL_TIM_IC_Start_IT(&TimHandle, TIM_CHANNEL_1) != HAL_OK)  {    /* Starting Error */    Error_Handler();  }    /* Infinite loop */  while (1)  {      }}
开发者ID:EarnestHein89,项目名称:STM32Cube_FW_F4,代码行数:96,


示例17: main

/**  * @brief  Main program.  * @param  None  * @retval None  */int main(void){  /* STM32F0xx HAL library initialization:       - Configure the Flash prefetch       - Systick timer is configured by default as source of time base, but user          can eventually implement his proper time base source (a general purpose          timer for example or other time source), keeping in mind that Time base          duration should be kept 1ms since PPP_TIMEOUT_VALUEs are defined and          handled in milliseconds basis.       - Low Level Initialization     */  HAL_Init();  /* Configure LED2 */  BSP_LED_Init(LED2);  /* Configure the system clock to 48 MHz */  SystemClock_Config();  /*##-1- Configure the TIM peripheral #######################################*/  /* ---------------------------------------------------------------------------  TIM3 configuration: PWM Input mode  In this example TIM3 input clock (TIM3CLK) is set to APB1 clock (PCLK1),  since APB1 prescaler is 1.    TIM3CLK = PCLK1    PCLK1 = HCLK    => TIM3CLK = HCLK = SystemCoreClock  External Signal Frequency = TIM3 counter clock / TIM3_CCR2 in Hz.  External Signal DutyCycle = (TIM3_CCR1*100)/(TIM3_CCR2) in %.  --------------------------------------------------------------------------- */  /* Set TIMx instance */  TimHandle.Instance = TIMx;  /* Initialize TIMx peripheral as follows:       + Period = 0xFFFF       + Prescaler = 0       + ClockDivision = 0       + Counter direction = Up  */  TimHandle.Init.Period            = 0xFFFF;  TimHandle.Init.Prescaler         = 0;  TimHandle.Init.ClockDivision     = 0;  TimHandle.Init.CounterMode       = TIM_COUNTERMODE_UP;  TimHandle.Init.RepetitionCounter = 0;  if (HAL_TIM_IC_Init(&TimHandle) != HAL_OK)  {    /* Initialization Error */    Error_Handler();  }  /*##-2- Configure the Input Capture channels ###############################*/  /* Common configuration */  sConfig.ICPrescaler = TIM_ICPSC_DIV1;  sConfig.ICFilter = 0;  /* Configure the Input Capture of channel 1 */  sConfig.ICPolarity = TIM_ICPOLARITY_FALLING;  sConfig.ICSelection = TIM_ICSELECTION_INDIRECTTI;  if (HAL_TIM_IC_ConfigChannel(&TimHandle, &sConfig, TIM_CHANNEL_1) != HAL_OK)  {    /* Configuration Error */    Error_Handler();  }  /* Configure the Input Capture of channel 2 */  sConfig.ICPolarity = TIM_ICPOLARITY_RISING;  sConfig.ICSelection = TIM_ICSELECTION_DIRECTTI;  if (HAL_TIM_IC_ConfigChannel(&TimHandle, &sConfig, TIM_CHANNEL_2) != HAL_OK)  {    /* Configuration Error */    Error_Handler();  }  /*##-3- Configure the slave mode ###########################################*/  /* Select the slave Mode: Reset Mode  */  sSlaveConfig.SlaveMode        = TIM_SLAVEMODE_RESET;  sSlaveConfig.InputTrigger     = TIM_TS_TI2FP2;  sSlaveConfig.TriggerPolarity  = TIM_TRIGGERPOLARITY_NONINVERTED;  sSlaveConfig.TriggerPrescaler = TIM_TRIGGERPRESCALER_DIV1;  sSlaveConfig.TriggerFilter    = 0;  if (HAL_TIM_SlaveConfigSynchronization(&TimHandle, &sSlaveConfig) != HAL_OK)  {    /* Configuration Error */    Error_Handler();  }  /*##-4- Start the Input Capture in interrupt mode ##########################*/  if (HAL_TIM_IC_Start_IT(&TimHandle, TIM_CHANNEL_2) != HAL_OK)  {    /* Starting Error */    Error_Handler();//.........这里部分代码省略.........
开发者ID:GreyCardinalRus,项目名称:stm32-cube,代码行数:101,


示例18: wheelencoder_init

void wheelencoder_init(void){  TIM_IC_InitTypeDef     sICConfig;  TimHandle[0].Instance = TIM17;    TimHandle[0].Init.Period        = PERIOD - 1;  TimHandle[0].Init.Prescaler     = PRESCALER - 1;  TimHandle[0].Init.ClockDivision = 0;  TimHandle[0].Init.CounterMode   = TIM_COUNTERMODE_UP;  if(HAL_TIM_IC_Init(&TimHandle[0]) != HAL_OK)  {    /* Initialization Error */    Error_Handler();  }     /*##-2- Configure the Input Capture channel ################################*/   /* Configure the Input Capture of channel 2 */  sICConfig.ICPolarity  = TIM_ICPOLARITY_RISING;  sICConfig.ICSelection = TIM_ICSELECTION_DIRECTTI;  sICConfig.ICPrescaler = TIM_ICPSC_DIV1;  sICConfig.ICFilter    = 15;                   // Use max filter to avoid jitter  if(HAL_TIM_IC_ConfigChannel(&TimHandle[0], &sICConfig, TIM_CHANNEL_1) != HAL_OK)  {    /* Configuration Error */    Error_Handler();  }  if(HAL_TIM_IC_Start_IT(&TimHandle[0], TIM_CHANNEL_1) != HAL_OK)  {    /* Starting Error */    Error_Handler();  }    if(HAL_TIM_Base_Start_IT(&TimHandle[0]) != HAL_OK)  {    /* Starting Error */    Error_Handler();  }  TimHandle[1].Instance = TIM1;    TimHandle[1].Init.Period        = PERIOD - 1;  TimHandle[1].Init.Prescaler     = PRESCALER - 1;  TimHandle[1].Init.ClockDivision = 0;  TimHandle[1].Init.CounterMode   = TIM_COUNTERMODE_UP;  if(HAL_TIM_IC_Init(&TimHandle[1]) != HAL_OK)  {    /* Initialization Error */    Error_Handler();  }     /*##-2- Configure the Input Capture channel ################################*/   /* Configure the Input Capture of channel 2 */  sICConfig.ICPolarity  = TIM_ICPOLARITY_RISING;  sICConfig.ICSelection = TIM_ICSELECTION_DIRECTTI;  sICConfig.ICPrescaler = TIM_ICPSC_DIV1;  sICConfig.ICFilter    = 15;                   // Use max filter to avoid jitter  if(HAL_TIM_IC_ConfigChannel(&TimHandle[1], &sICConfig, TIM_CHANNEL_2) != HAL_OK)  {    /* Configuration Error */    Error_Handler();  }  if(HAL_TIM_IC_Start_IT(&TimHandle[1], TIM_CHANNEL_2) != HAL_OK)  {    /* Starting Error */    Error_Handler();  }    if(HAL_TIM_Base_Start_IT(&TimHandle[1]) != HAL_OK)  {    /* Starting Error */    Error_Handler();  }}
开发者ID:callemoon,项目名称:stm32_robot,代码行数:75,


示例19: MOTOR_Init

//.........这里部分代码省略.........    HAL_TIM_PWM_Start(&htimPump, TIM_CHANNEL_1);    HAL_TIM_PWM_Start(&htimPump, TIM_CHANNEL_2);    MOTOR_SetVal(MOTOR_M1, 0, 0);    MOTOR_SetVal(MOTOR_M2, 0 , 0);    MOTOR_SetVal(MOTOR_PUMP, 0, 0);    // Encoder ----------------------------------------------------------	// Configure the hall encoder pins	GPIO_InitStruct.Pin = MOTOR_HALL_M1A_ENC_PIN | MOTOR_HALL_M1B_ENC_PIN;	GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;	GPIO_InitStruct.Pull = GPIO_NOPULL;	GPIO_InitStruct.Speed = GPIO_SPEED_FAST;	GPIO_InitStruct.Alternate = MOTOR_HALL_ENC1_TIMER_AF;	HAL_GPIO_Init(MOTOR_HALL_M1_ENC_PORT, &GPIO_InitStruct);	GPIO_InitStruct.Pin = MOTOR_HALL_M2A_ENC_PIN | MOTOR_HALL_M2B_ENC_PIN;	GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;	GPIO_InitStruct.Pull = GPIO_NOPULL;	GPIO_InitStruct.Speed = GPIO_SPEED_FAST;	GPIO_InitStruct.Alternate = MOTOR_HALL_ENC2_TIMER_AF;	HAL_GPIO_Init(MOTOR_HALL_M2_ENC_PORT, &GPIO_InitStruct);	GPIO_InitStruct.Pin = MOTOR_HALL_M1A_SPEED_PIN | MOTOR_HALL_M1B_SPEED_PIN						| MOTOR_HALL_M2A_SPEED_PIN | MOTOR_HALL_M2B_SPEED_PIN;	GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;	GPIO_InitStruct.Pull = GPIO_NOPULL;	GPIO_InitStruct.Speed = GPIO_SPEED_FAST;	GPIO_InitStruct.Alternate = MOTOR_HALL_SPEED_TIMER_AF;	HAL_GPIO_Init(MOTOR_HALL_SPEED_PORT, &GPIO_InitStruct);    // Timer configuration for hall encoder M1	htimEncM1.Instance = MOTOR_HALL_ENC1_TIMER;	htimEncM1.Init.Period = 0xFFFF;	htimEncM1.Init.Prescaler = 0;	htimEncM1.Init.ClockDivision = 0;	htimEncM1.Init.CounterMode = TIM_COUNTERMODE_UP;	sConfigEncM.EncoderMode = TIM_ENCODERMODE_TI2;	sConfigEncM.IC1Filter = 0;	sConfigEncM.IC1Polarity = TIM_ICPOLARITY_RISING;	sConfigEncM.IC1Prescaler = TIM_ICPSC_DIV1;	sConfigEncM.IC1Selection = TIM_ICSELECTION_DIRECTTI;	sConfigEncM.IC2Filter = 0;	sConfigEncM.IC2Polarity = TIM_ICPOLARITY_RISING;	sConfigEncM.IC2Prescaler = TIM_ICPSC_DIV1;	sConfigEncM.IC2Selection = TIM_ICSELECTION_DIRECTTI;    // Encoder Mode	HAL_TIM_Encoder_Init(&htimEncM1, &sConfigEncM);    HAL_TIM_Encoder_Start(&htimEncM1, TIM_CHANNEL_1);    HAL_TIM_Encoder_Start(&htimEncM1, TIM_CHANNEL_2);    // Timer configuration for hall encoder M2	htimEncM2.Instance = MOTOR_HALL_ENC2_TIMER;	htimEncM2.Init.Period = 0xFFFF;	htimEncM2.Init.Prescaler = 0;	htimEncM2.Init.ClockDivision = 0;	htimEncM2.Init.CounterMode = TIM_COUNTERMODE_UP;    // Encoder mode	HAL_TIM_Encoder_Init(&htimEncM2, &sConfigEncM);    HAL_TIM_Encoder_Start(&htimEncM2, TIM_CHANNEL_1);    HAL_TIM_Encoder_Start(&htimEncM2, TIM_CHANNEL_2);#ifdef MOTOR_MEASURE_SPEED    // Timer configuration for input capture    htimEncSpeed.Instance = MOTOR_HALL_SPEED_TIMER;    htimEncSpeed.Init.Period = 0xFFFF;    htimEncSpeed.Init.Prescaler = 84-1; // 10us    htimEncSpeed.Init.ClockDivision = 0;    htimEncSpeed.Init.CounterMode = TIM_COUNTERMODE_UP;    HAL_TIM_IC_Init(&htimEncSpeed);    sConfigEncSpeed.ICFilter = 0;    sConfigEncSpeed.ICPolarity = TIM_ICPOLARITY_RISING;    sConfigEncSpeed.ICPrescaler = TIM_ICPSC_DIV1;    sConfigEncSpeed.ICSelection = TIM_ICSELECTION_DIRECTTI;    // Configure the NVIC    HAL_NVIC_SetPriority(TIM_HALL_SPEED_IRQn, 0, 1);    /* Enable the TIM8 global Interrupt */    HAL_NVIC_EnableIRQ(TIM_HALL_SPEED_IRQn);    // Input capture mode    HAL_TIM_IC_ConfigChannel(&htimEncSpeed, &sConfigEncSpeed, TIM_CHANNEL_1);    HAL_TIM_IC_ConfigChannel(&htimEncSpeed, &sConfigEncSpeed, TIM_CHANNEL_2);    HAL_TIM_IC_ConfigChannel(&htimEncSpeed, &sConfigEncSpeed, TIM_CHANNEL_3);    HAL_TIM_IC_ConfigChannel(&htimEncSpeed, &sConfigEncSpeed, TIM_CHANNEL_4);    HAL_TIM_IC_Start_IT(&htimEncSpeed, TIM_CHANNEL_1);    HAL_TIM_IC_Start_IT(&htimEncSpeed, TIM_CHANNEL_2);    HAL_TIM_IC_Start_IT(&htimEncSpeed, TIM_CHANNEL_3);    HAL_TIM_IC_Start_IT(&htimEncSpeed, TIM_CHANNEL_4);#endif //MOTOR_MEASURE_SPEED}
开发者ID:gerdb,项目名称:street-art-robot,代码行数:101,


示例20: Pb_init

void Pb_init(void) {	GPIO_InitTypeDef GPIO_InitStructure;	/* Enable PB clock */		__BRD_PB_GPIO_CLK();	/* Set priority of PB Interrupt [0 (HIGH priority) to 15(LOW priority)] */	HAL_NVIC_SetPriority(BRD_PB_EXTI_IRQ, 4, 0);	//Set Main priority ot 10 and sub-priority ot 0.	//Enable PB interrupt and interrupt vector for pin DO	NVIC_SetVector(BRD_PB_EXTI_IRQ, (uint32_t)&exti_pb_irqhandler);	NVIC_EnableIRQ(BRD_PB_EXTI_IRQ);	/* Configure PB pin as pull down input */	GPIO_InitStructure.Pin = BRD_PB_PIN;				//Pin		GPIO_InitStructure.Mode = GPIO_MODE_IT_RISING;		//interrupt Mode		GPIO_InitStructure.Pull = GPIO_PULLUP;			//Enable Pull up, down or no pull resister		GPIO_InitStructure.Speed = GPIO_SPEED_FAST;			//Pin latency		HAL_GPIO_Init(BRD_PB_GPIO_PORT, &GPIO_InitStructure);	//Initialise Pin		/*Set up Interrupt timer for laser transmit and pan tilt*/	  __PANTILT_IR_TIMER_CLK();		/* Compute the prescaler value for 50Khz */	  PrescalerValue = (uint16_t) ((SystemCoreClock /2)/1000000) - 1;		/* Time base configuration */		TIM_Init.Instance = PANTILT_IR_TIM;				//Enable Timer 2		//Set period count to be 1ms, so timer interrupt occurs every (1ms)*0.2.	  TIM_Init.Init.Period = (1000000/1000)*(vars->period_multiplyer); //10 = 1ms; 5 = 0.5ms 1khz half bit period for 100khz	  TIM_Init.Init.Prescaler = PrescalerValue;	//Set presale value	  TIM_Init.Init.ClockDivision = 0;			//Set clock division		TIM_Init.Init.RepetitionCounter = 0;	// Set Reload Value	  TIM_Init.Init.CounterMode = TIM_COUNTERMODE_UP;	//Set timer to count up.		/*Initialise Laser Transmit Port*/		__LASER_WAVE_GEN_1_GPIO_CLK();		GPIO_InitStructure.Mode = GPIO_MODE_OUTPUT_PP;		GPIO_InitStructure.Pull = GPIO_PULLDOWN;		GPIO_InitStructure.Speed = GPIO_SPEED_FAST;		GPIO_InitStructure.Pin = LASER_WAVE_GEN_1_PIN;		HAL_GPIO_Init(LASER_WAVE_GEN_1_GPIO_PORT, &GPIO_InitStructure);		HAL_Delay(500);		/* Initialise General interrupt Timer  */		HAL_TIM_Base_Init(&TIM_Init);		/* Set priority of Timer 2 update Interrupt [0 (HIGH priority) to 15(LOW priority)] */		/* 	DO NOT SET INTERRUPT PRIORITY HIGHER THAN 3 */		HAL_NVIC_SetPriority(PANTILT_TIM_IRQn, 10, 0);		//Set Main priority ot 10 and sub-priority ot 0.		/* Enable timer update interrupt and interrupt vector for Timer  */		NVIC_SetVector(PANTILT_TIM_IRQn, (uint32_t)&s4353096_general_irqhandler);		NVIC_EnableIRQ(PANTILT_TIM_IRQn);		/*Start the timer*/		HAL_TIM_Base_Start_IT(&TIM_Init);		/*Initialise Input capture*/		__TIM3_CLK_ENABLE();		/* Enable the D0 Clock */		__BRD_D0_GPIO_CLK();		/* Configure the D0 pin with TIM3 input capture */	GPIO_InitStructure.Pin = BRD_D0_PIN;				//Pin		GPIO_InitStructure.Mode =GPIO_MODE_AF_PP; 		//Set mode to be output alternate		GPIO_InitStructure.Pull = GPIO_NOPULL;			//Enable Pull up, down or no pull resister		GPIO_InitStructure.Speed = GPIO_SPEED_FAST;			//Pin latency	GPIO_InitStructure.Alternate = GPIO_AF2_TIM3;	//Set alternate function to be timer 2		HAL_GPIO_Init(BRD_D0_GPIO_PORT, &GPIO_InitStructure);	//Initialise Pin	/* Compute the prescaler value. SystemCoreClock = 168000000 - set for 500Khz clock */		PrescalerValue = (uint16_t) ((SystemCoreClock /2) / 500000) - 1;	/* Configure Timer 3 settings */	TIM_Init.Instance = TIM3;					//Enable Timer 3		TIM_Init.Init.Period = 2*500000;			//Set for 100ms (10Hz) period		TIM_Init.Init.Prescaler = PrescalerValue;	//Set presale value		TIM_Init.Init.ClockDivision = 0;			//Set clock division	TIM_Init.Init.RepetitionCounter = 0; 		// Set Reload Value		TIM_Init.Init.CounterMode = TIM_COUNTERMODE_UP;	//Set timer to count up.	/* Configure TIM3 Input capture */		TIM_ICInitStructure.ICPolarity = TIM_ICPOLARITY_RISING;			//Set to trigger on rising edge		TIM_ICInitStructure.ICSelection = TIM_ICSELECTION_DIRECTTI;		TIM_ICInitStructure.ICPrescaler = TIM_ICPSC_DIV1;		TIM_ICInitStructure.ICFilter = 0;	/* Set priority of Timer 3 Interrupt [0 (HIGH priority) to 15(LOW priority)] */	HAL_NVIC_SetPriority(TIM3_IRQn, 10, 0);	//Set Main priority ot 10 and sub-priority ot 0.	//Enable Timer 3 interrupt and interrupt vector	NVIC_SetVector(TIM3_IRQn, (uint32_t)&tim3_irqhandler);	NVIC_EnableIRQ(TIM3_IRQn);	/* Enable input capture for Timer 3, channel 2 */	HAL_TIM_IC_Init(&TIM_Init);	HAL_TIM_IC_ConfigChannel(&TIM_Init, &TIM_ICInitStructure, TIM_CHANNEL_2);	/* Start Input Capture */	HAL_TIM_IC_Start_IT(&TIM_Init, TIM_CHANNEL_2);}
开发者ID:Smitc114,项目名称:3010,代码行数:81,


示例21: main

/**  * @brief  Main program  * @param  None  * @retval None  */int main(void){  /* STM32F4xx HAL library initialization:       - Configure the Flash prefetch, instruction and Data caches       - Configure the Systick to generate an interrupt each 1 msec       - Set NVIC Group Priority to 4       - Global MSP (MCU Support Package) initialization     */  HAL_Init();    /* Configure the system clock to 180 MHz */  SystemClock_Config();    /* Configure LED3 */  BSP_LED_Init(LED3);    /*##-1- Configure the TIM peripheral #######################################*/   /* Set TIMx instance */  TimHandle.Instance = TIMx;   /* Initialize TIMx peripheral as follows:       + Period = 0xFFFF       + Prescaler = 0       + ClockDivision = 0       + Counter direction = Up  */  TimHandle.Init.Period            = 0xFFFF;  TimHandle.Init.Prescaler         = 0;  TimHandle.Init.ClockDivision     = 0;  TimHandle.Init.CounterMode       = TIM_COUNTERMODE_UP;  TimHandle.Init.RepetitionCounter = 0;      if(HAL_TIM_IC_Init(&TimHandle) != HAL_OK)  {    /* Initialization Error */    Error_Handler();  }    /*##-2- Configure the Input Capture channel ################################*/   /* Configure the Input Capture of channel 2 */  sICConfig.ICPolarity  = TIM_ICPOLARITY_RISING;  sICConfig.ICSelection = TIM_ICSELECTION_DIRECTTI;  sICConfig.ICPrescaler = TIM_ICPSC_DIV1;  sICConfig.ICFilter    = 0;     if(HAL_TIM_IC_ConfigChannel(&TimHandle, &sICConfig, TIM_CHANNEL_2) != HAL_OK)  {    /* Configuration Error */    Error_Handler();  }    /*##-3- Start the Input Capture in interrupt mode ##########################*/  if(HAL_TIM_IC_Start_IT(&TimHandle, TIM_CHANNEL_2) != HAL_OK)  {    /* Starting Error */    Error_Handler();  }    /* Infinite loop */  while (1)  {  } }
开发者ID:451506709,项目名称:automated_machine,代码行数:67,


示例22: main

/**  * @brief  Main program  * @param  None  * @retval None  */int main(void){ /*This sample code shows how to use STM32L0xx TIM HAL API to measure the  frequency and duty cycle of an external signal through the STM32L0xx HAL API. */    /* STM32L0xx HAL library initialization:       - Configure the Flash prefetch, Flash preread and Buffer caches       - Systick timer is configured by default as source of time base, but user              can eventually implement his proper time base source (a general purpose              timer for example or other time source), keeping in mind that Time base              duration should be kept 1ms since PPP_TIMEOUT_VALUEs are defined and              handled in milliseconds basis.       - Low Level Initialization     */  HAL_Init();    /* Configure the system clock */  SystemClock_Config();    /*##-1- Configure the TIM peripheral #######################################*/   /* Set TIM instance */  TimHandle.Instance = TIM2;   /* Initialize TIMx peripheral as follow:       + Period = 0xFFFF       + Prescaler = 0       + ClockDivision = 0       + Counter direction = Up  */  TimHandle.Init.Period = 0xFFFF;  TimHandle.Init.Prescaler = 0;  TimHandle.Init.ClockDivision = 0;  TimHandle.Init.CounterMode = TIM_COUNTERMODE_UP;    if(HAL_TIM_IC_Init(&TimHandle) != HAL_OK)  {    /* Initialization Error */    ErrorHandler();  }    /*##-2- Configure the Input Capture channels ###############################*/   /* Common configuration */  sConfig.ICPrescaler = TIM_ICPSC_DIV1;  sConfig.ICFilter = 0;      /* Configure the Input Capture of channel 1 */  sConfig.ICPolarity = TIM_ICPOLARITY_FALLING;  sConfig.ICSelection = TIM_ICSELECTION_INDIRECTTI;      if(HAL_TIM_IC_ConfigChannel(&TimHandle, &sConfig, TIM_CHANNEL_1) != HAL_OK)  {    /* Configuration Error */    ErrorHandler();  }    /* Configure the Input Capture of channel 2 */  sConfig.ICPolarity = TIM_ICPOLARITY_RISING;  sConfig.ICSelection = TIM_ICSELECTION_DIRECTTI;  if(HAL_TIM_IC_ConfigChannel(&TimHandle, &sConfig, TIM_CHANNEL_2) != HAL_OK)  {    /* Configuration Error */    ErrorHandler();  }    /*##-3- Configure the slave mode ###########################################*/  /* Select the slave Mode: Reset Mode */  sSlaveConfig.SlaveMode     = TIM_SLAVEMODE_RESET;  sSlaveConfig.InputTrigger  = TIM_TS_TI2FP2;  if(HAL_TIM_SlaveConfigSynchronization(&TimHandle, &sSlaveConfig) != HAL_OK)  {    /* Configuration Error */    ErrorHandler();  }    /*##-4- Start the Input Capture in interrupt mode ##########################*/  if(HAL_TIM_IC_Start_IT(&TimHandle, TIM_CHANNEL_2) != HAL_OK)  {    /* Starting Error */    ErrorHandler();  }    /*##-5- Start the Input Capture in interrupt mode ##########################*/  if(HAL_TIM_IC_Start_IT(&TimHandle, TIM_CHANNEL_1) != HAL_OK)  {    /* Starting Error */    ErrorHandler();  }    while (1)  {  } }
开发者ID:shjere,项目名称:common,代码行数:95,


示例23: GetLSIFrequency

/**  * @brief  Configures TIM14 to measure the LSI oscillator frequency.   * @param  None  * @retval LSI Frequency  */static uint32_t GetLSIFrequency(void){  TIM_IC_InitTypeDef    TIMInput_Config;  /* Configure the TIM peripheral *********************************************/   /* Set TIMx instance */    Input_Handle.Instance = TIM14;    /* TIM14 configuration: Input Capture mode ---------------------     The LSI oscillator is connected to TIM14 CH1.     The Rising edge is used as active edge.     The TIM14 CCR1 is used to compute the frequency value.   ------------------------------------------------------------ */  Input_Handle.Init.Prescaler         = 0;   Input_Handle.Init.CounterMode       = TIM_COUNTERMODE_UP;    Input_Handle.Init.Period            = 0xFFFF;   Input_Handle.Init.ClockDivision     = 0;       Input_Handle.Init.RepetitionCounter = 0;   if(HAL_TIM_IC_Init(&Input_Handle) != HAL_OK)  {    /* Initialization Error */    Error_Handler();  }    /* Connect internally the TIM14_CH1 Input Capture to the LSI clock output */  Input_Handle.Instance->OR |= 0x3;  // TIM14_OR linked to MCO   HAL_RCC_MCOConfig(RCC_MCO, RCC_MCO1SOURCE_LSI, RCC_MCODIV_1);    /* Configure the Input Capture of channel 1 */  TIMInput_Config.ICPolarity  = TIM_ICPOLARITY_RISING;  TIMInput_Config.ICSelection = TIM_ICSELECTION_DIRECTTI;  TIMInput_Config.ICPrescaler = TIM_ICPSC_DIV8;  TIMInput_Config.ICFilter    = 0;  if(HAL_TIM_IC_ConfigChannel(&Input_Handle, &TIMInput_Config, TIM_CHANNEL_1) != HAL_OK)  {    /* Initialization Error */    Error_Handler();  }  /* Reset the flags */  Input_Handle.Instance->SR = 0;  /* Start the TIM Input Capture measurement in interrupt mode */  if(HAL_TIM_IC_Start_IT(&Input_Handle, TIM_CHANNEL_1) != HAL_OK)  {    Error_Handler();  }  /* Wait until the TIM14 get 2 LSI edges (refer to TIM14_IRQHandler() in     stm32f3xx_it.c file) ******************************************************/  while(uwCaptureNumber != 2)  {  }  /* Disable TIM14 CC1 Interrupt Request */  HAL_TIM_IC_Stop_IT(&Input_Handle, TIM_CHANNEL_1);    /* Deinitialize the TIM14 peripheral registers to their default reset values */  HAL_TIM_IC_DeInit(&Input_Handle);  return uwLsiFreq/*0*/;}
开发者ID:PaxInstruments,项目名称:STM32CubeF3,代码行数:68,



注:本文中的HAL_TIM_IC_Init函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


C++ HAL_TIM_IRQHandler函数代码示例
C++ HAL_TIM_IC_ConfigChannel函数代码示例
万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。