MyLibs 1.0
Расширенные библиотеки для STM32
Loading...
Searching...
No Matches
MyLibs

Обзор

MyLibs - это набор библиотек для удобной работы с периферией микроконтроллеров STM32.

Основные возможности

Общие утилиты (General Tools)

Трассировка Trace defines

Модуль GPIO GPIO Tools

  • Инициализация портов и тактирования (General tools)
  • Управление светодиодами (включение/выключение, моргание, плавное затухание) (LED tools)
  • Работа с кнопками (чтение состояния, фильтрация дребезга) (Switch tools)

Модуль таймеров TIM Tools

  • Базовая инициализация таймеров (General tools)
  • Формирование задержек (блокирующие и неблокирующие) (Delay tools)
  • Работа с энкодерами (чтение положения, обработка кнопок) (Encoder tools)
  • Настройка ШИМ и Output Compare (PWM/OC Channels tools)

Структура проекта

├── inc/ # Заголовочные файлы
│ ├── mylibs_include.h # Главный include файл
│ ├── mylibs_config.h # Конфигурация библиотек
│ ├── mylibs_defs.h # Общие определения и макросы
│ ├── bit_access.h # Битовый доступ к регистрам
│ ├── trackers.h # Трекеры для отладки
│ ├── trace.h # Трассировка и логирование
│ ├── general_gpio.h # Работа с GPIO
│ └── general_tim.h # Работа с таймерами
└── src/ # Исходные файлы
├── general_gpio.c # Реализация GPIO
└── general_tim.c # Реализация TIM

Использование

Инструкция по подключению:

  1. Настройте конфигурацию Configs в mylibs_config.h
  2. Подключите главный заголовочный файл:
    #include "mylibs_include.h"
    Заголочный файл для всех библиотек
  3. Используйте нужные модули в своем коде

Пример работы с GPIO

// Инициализация светодиода
MX_GPIO_Init();
GPIO_LED_Init(&led, GPIOA, GPIO_PIN_5, 1);
// Включение светодиода
// Запуск моргания
GPIO_LED_Blink_Start(&led, 500); // Период 500 мс
// В основном цикле
while (1) {
}
HAL_StatusTypeDef GPIO_LED_On(GPIO_LEDTypeDef *led)
Включить светодиод
HAL_StatusTypeDef GPIO_LED_Init(GPIO_LEDTypeDef *led, GPIO_TypeDef *GPIOx, uint32_t GPIO_PIN_X, uint8_t LED_On_State)
Инициализировать светодиод (структуру светодиода)
void GPIO_LED_Dynamic_Handle(GPIO_LEDTypeDef *led)
Управление динамическими режимами свечения светодиода
HAL_StatusTypeDef GPIO_LED_Blink_Start(GPIO_LEDTypeDef *led, uint32_t period)
Активировать моргание светодиодом
Структура светодиода

Пример работы с таймером

// Настройка таймера
TIM_SettingsTypeDef tim_settings = {0};
tim_settings.htim.Instance = TIM2;
tim_settings.sTimAHBFreqMHz = SystemCoreClock;
tim_settings.sTimFreqHz = 1000; // 1 кГц
tim_settings.sTimMode = TIM_IT_CONF;
TIM_Base_Init(&tim_settings);
HAL_TIM_Base_Start(&tim_settings.htim);
HAL_StatusTypeDef TIM_Base_Init(TIM_SettingsTypeDef *stim)
Инициализация таймера.
Definition general_tim.c:34
@ TIM_TickBase_1MS
Таймер тактируется с частотой 1 кГц
Definition general_tim.h:96
Структура инициализации таймера
TIM_MHzTickBaseTypeDef sTickBaseUS
Длительность одного тика
float sTimAHBFreqMHz
Частота шины тактирования таймера
TIM_ITModeTypeDef sTimMode
Настройки прерывания таймера
TIM_HandleTypeDef htim
HAL handle таймера
float sTimFreqHz
Желаемая частота таймера

Зависимости

  • HAL библиотека STM32
  • SEGGER RTT (опционально, для RTT трассировки)
  • FreeRTOS (опционально, для FreeRTOS задержек)