你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

【经验分享】STM32L0系列之【TIM通用定时器】

[复制链接]
STMCU小助手 发布时间:2021-11-15 22:02
频率2.097Mhz , TIM2定时1s触发一次中断
1.TIM2初始化
HAL_TIM_Base_Init>HAL_TIM_ConfigClockSource>HAL_TIMEx_MasterConfigSynchronization

  1. /**
  2.   * @brief TIM2 Initialization Function
  3.   * @param None
  4.   * @retval None
  5.   */
  6. TIM_HandleTypeDef htim2;
  7. void MX_TIM2_Init(uint16_t time)
  8. {
  9.   TIM_ClockConfigTypeDef sClockSourceConfig = {0};
  10.   TIM_MasterConfigTypeDef sMasterConfig = {0};

  11.   htim2.Instance = TIM2;
  12.   htim2.Init.Prescaler = 2000;
  13.   htim2.Init.CounterMode = TIM_COUNTERMODE_UP;
  14.   htim2.Init.Period = time - 1;
  15.   htim2.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
  16.   htim2.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE;
  17.   if (HAL_TIM_Base_Init(&htim2) != HAL_OK)
  18.   {
  19.     Error_Handler();
  20.   }
  21.   sClockSourceConfig.ClockSource = TIM_CLOCKSOURCE_INTERNAL;
  22.   if (HAL_TIM_ConfigClockSource(&htim2, &sClockSourceConfig) != HAL_OK)
  23.   {
  24.     Error_Handler();
  25.   }
  26.   sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET;
  27.   sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE;
  28.   if (HAL_TIMEx_MasterConfigSynchronization(&htim2, &sMasterConfig) != HAL_OK)
  29.   {
  30.     Error_Handler();
  31.   }
  32. }
复制代码

2.TIM2 中断处理函数
  1. /**
  2.   * @brief This function handles TIM2 global interrupt.
  3.   */
  4. void TIM2_IRQHandler(void)
  5. {
  6.   HAL_TIM_IRQHandler(&htim2);
  7. }
复制代码

3.主函数main

  1. int main(void)
  2. {
  3.          HAL_Init();
  4.     /* Configure the system clock */
  5.     SystemClock_Config();
  6.     LED_Init();//LED初始化
  7.         MX_TIM2_Init(1001); //1s一次
  8.         HAL_TIM_Base_Stop_IT(&htim2);
  9.         HAL_TIM_Base_Start_IT(&htim2);

  10.         while(1)
  11.         {}
  12. }
复制代码

4.TIM中断回调处理函数
  1. void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
  2. {
  3.     if(htim == &htim2)
  4.     {
  5.             HAL_GPIO_TogglePin(GPIOB,GPIO_PIN8);
  6.     }
  7. }
复制代码

收藏 评论0 发布时间:2021-11-15 22:02

举报

0个回答

所属标签

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版