STM32_General 1.0
Библиотеки для периферии STM32
Loading...
Searching...
No Matches
General tools

Функции для базовой инициализации таймеров More...

Collaboration diagram for General tools:

Topics

 TIM Init defines
 Настройка таймеров

Classes

struct  TIM_SettingsTypeDef
 Структура инициализации таймера More...

Enumerations

enum  TIM_ITModeTypeDef { TIM_DEFAULT = 0 , TIM_IT_MODE = TIM_IT_CONF }
 Режим прерываний таймера More...
enum  TIM_MHzTickBaseTypeDef {
  TIM_Base_Disable = 0 , TIM_TickBase_1US = 1 , TIM_TickBase_10US = 10 , TIM_TickBase_100US = 100 ,
  TIM_TickBase_1MS = 1000 , TIM_TickBase_10MS = 10000 , TIM_TickBase_100MS = 100000
}
 Длительность тика таймера (частота тактирования таймера) More...

Functions

HAL_StatusTypeDef TIM_Base_Init (TIM_SettingsTypeDef *stim)
 Инициализация таймера.
void TIM_Base_MspInit (TIM_HandleTypeDef *htim, TIM_ITModeTypeDef it_mode)
 Инициализация CLK и NVIC таймеров.
void TIM_Base_MspDeInit (TIM_HandleTypeDef *htim)
 Деинициализация CLK и NVIC таймеров.

Detailed Description

Функции для базовой инициализации таймеров

Пример использования:
TIM_SettingsTypeDef tim2Settings;
void TIM2_Init(void)
{
// Настройка таймера TIM2 на 1 кГц с прерываниями с шагом таймера 10 мкс
tim2Settings.htim.Instance = TIM2;
tim2Settings.sTimMode = TIM_IT_MODE;
tim2Settings.sTickBasePrescaler = 1;
tim2Settings.sTimFreqHz = 1000; // 1 кГц
tim2Settings.sTimAHBFreqMHz = 72000000; // Hz
if(TIM_Base_Init(&tim2Settings) != HAL_OK)
{
Error_Handler();
}
}
HAL_StatusTypeDef TIM_Base_Init(TIM_SettingsTypeDef *stim)
Инициализация таймера.
Definition general_tim.c:34
@ TIM_TickBase_10US
Таймер тактируется с частотой 100 кГц
Definition general_tim.h:96
@ TIM_IT_MODE
Прерываний включены
Definition general_tim.h:81
Структура инициализации таймера
uint8_t sTickBasePrescaler
Дополнительный делитель, для удобного деления sTickBaseUS.
TIM_MHzTickBaseTypeDef sTickBaseUS
Длительность одного тика
float sTimAHBFreqMHz
Частота шины тактирования таймера
TIM_ITModeTypeDef sTimMode
Настройки прерывания таймера
TIM_HandleTypeDef htim
HAL handle таймера
float sTimFreqHz
Желаемая частота таймера

Enumeration Type Documentation

◆ TIM_ITModeTypeDef

Режим прерываний таймера

Enumerator
TIM_DEFAULT 

Прерываний отключены

TIM_IT_MODE 

Прерываний включены

Definition at line 78 of file general_tim.h.

◆ TIM_MHzTickBaseTypeDef

Длительность тика таймера (частота тактирования таймера)

enum дает базовые длительности, но можно выставить другие (напр 500 - 0.5 мс)

Enumerator
TIM_Base_Disable 

Таймер отключен

TIM_TickBase_1US 

Таймер тактируется с частотой 1 МГц

TIM_TickBase_10US 

Таймер тактируется с частотой 100 кГц

TIM_TickBase_100US 

Таймер тактируется с частотой 10 кГц

TIM_TickBase_1MS 

Таймер тактируется с частотой 1 кГц

TIM_TickBase_10MS 

Таймер тактируется с частотой 100 Гц

TIM_TickBase_100MS 

Таймер тактируется с частотой 10 Гц

Definition at line 92 of file general_tim.h.

Function Documentation

◆ TIM_Base_Init()

HAL_StatusTypeDef TIM_Base_Init ( TIM_SettingsTypeDef * stim)

Инициализация таймера.

Parameters
stimУказатель на структуру с настройками таймера.
Returns
HAL status.


Инициализирует таймер исходя из настроек верхнего уровня:

  • Длительность одного тика TIM_MHzTickBaseTypeDef
  • Частота таймера (в Гц, float)
  • Частота тактирования таймера от шины (в Гц, float)

При невозможности выставления частоты при заданой длительности тика длительность тика увеличивается до тех пор, пока частота не будет достигнута.

При выставлении дефайна UPDATE_TIM_PARAMS_AFTER_INITIALIZATION новая длительность тика записывается в структуру.

Также остается возможность низкоуровневой настройки по структурам TIM_SettingsTypeDef. Для этого надо высокоуровневые настройки приравнять к нулю

Definition at line 34 of file general_tim.c.

◆ TIM_Base_MspInit()

void TIM_Base_MspInit ( TIM_HandleTypeDef * htim,
TIM_ITModeTypeDef it_mode )

Инициализация CLK и NVIC таймеров.

Parameters
htimУказатель на хендл таймера.
Note
Чтобы не генерировать функцию с иницилизацией неиспользуемых таймеров, дефайнами TIM Init defines в general_tim.h определяются используемые таймеры.

Definition at line 408 of file general_tim.c.

◆ TIM_Base_MspDeInit()

void TIM_Base_MspDeInit ( TIM_HandleTypeDef * htim)

Деинициализация CLK и NVIC таймеров.

Parameters
htimУказатель на хендл таймера.
Note
Чтобы не генерировать функцию с деиницилизацией неиспользуемых таймеров, дефайнами TIM Init defines в general_tim.h определяются используемые таймеры.

Definition at line 617 of file general_tim.c.