Обзор
MyLibs - это набор библиотек для удобной работы с периферией микроконтроллеров STM32.
Основные возможности
- Инициализация портов и тактирования (General tools)
- Управление светодиодами (включение/выключение, моргание, плавное затухание) (LED tools)
- Работа с кнопками (чтение состояния, фильтрация дребезга) (Switch 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
Использование
Инструкция по подключению:
- Настройте конфигурацию Configs в mylibs_config.h
- Подключите главный заголовочный файл:
Заголочный файл для всех библиотек
- Используйте нужные модули в своем коде
Пример работы с GPIO
MX_GPIO_Init();
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_settings.
htim.Instance = TIM2;
HAL_TIM_Base_Start(&tim_settings.
htim);
HAL_StatusTypeDef TIM_Base_Init(TIM_SettingsTypeDef *stim)
Инициализация таймера.
@ TIM_TickBase_1MS
Таймер тактируется с частотой 1 кГц
Структура инициализации таймера
TIM_MHzTickBaseTypeDef sTickBaseUS
Длительность одного тика
float sTimAHBFreqMHz
Частота шины тактирования таймера
TIM_ITModeTypeDef sTimMode
Настройки прерывания таймера
TIM_HandleTypeDef htim
HAL handle таймера
float sTimFreqHz
Желаемая частота таймера
Зависимости
- HAL библиотека STM32
- SEGGER RTT (опционально, для RTT трассировки)
- FreeRTOS (опционально, для FreeRTOS задержек)