Compare commits
4
Commits
Dev
..
ai-context
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
73ef11fb74 | ||
|
|
b91d50afc5 | ||
|
|
7f25b7b166 | ||
|
|
2b5d4e7b3a |
@@ -0,0 +1 @@
|
|||||||
|
2ca4a5c2ee1b62ac71f95e783846727a11e9926c
|
||||||
@@ -0,0 +1,63 @@
|
|||||||
|
# 🤖 Технический контекст проекта (Сгенерировано ИИ)
|
||||||
|
|
||||||
|
## README — STM32 Peripheral Drivers Library
|
||||||
|
|
||||||
|
### Назначение проекта
|
||||||
|
Библиотека драйверов периферии для микроконтроллеров семейства STM32 (HAL/LL). Предоставляет унифицированные API для управления ключевыми модулями: UART, SPI, I2C, ADC, таймерами, GPIO и другими. Обеспечивает совместимость с несколькими платформами разработки (STM32CubeIDE, Keil MDK, VS Code + PlatformIO) и поддерживает как стандартные, так и кастомные конфигурации.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### Стек
|
||||||
|
- **Язык**: C/C++
|
||||||
|
- **Платформа**: STM32 (HAL/LL), ARM Cortex-M
|
||||||
|
- **Инструменты**: STM32CubeIDE, Keil MDK v5, VS Code + PlatformIO
|
||||||
|
- **Лицензия**: MIT
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### Архитектура проекта
|
||||||
|
|
||||||
|
#### Ключевые директории
|
||||||
|
| Путь | Назначение |
|
||||||
|
|------|------------|
|
||||||
|
| `Drivers/` | Источники драйверов HAL и LL (STM32Cube) |
|
||||||
|
| `Examples/` | Примеры использования драйверов (UART, SPI, I2C, ADC, таймеры) |
|
||||||
|
| `Middleware/` | Вспомогательные библиотеки: FreeRTOS, FatFS, CMSIS-DSP, USB, SD/MMC |
|
||||||
|
| `Drivers/CMSIS/` | CMSIS-совместимые драйверы (DMP, DCM, DCI, DSI) |
|
||||||
|
| `Drivers/BSP/` | BSP-компоненты: STM32CubeTouch, STM32CubeConnectivity, STM32CubeL476G-DK |
|
||||||
|
|
||||||
|
#### Ключевые файлы
|
||||||
|
| Файл | Назначение |
|
||||||
|
|------|------------|
|
||||||
|
| `STM32F1xx_HAL_Driver/` | HAL-драйверы для серии F1 (UART, SPI, I2C, ADC, таймеры) |
|
||||||
|
| `STM32L4xx_HAL_Driver/` | HAL-драйверы для серии L4 (UART, SPI, I2C, ADC, таймеры) |
|
||||||
|
| `STM32F7xx_HAL_Driver/` | HAL-драйверы для серии F7 (UART, SPI, I2C, ADC, таймеры) |
|
||||||
|
| `STM32H7xx_HAL_Driver/` | HAL-драйверы для серии H7 (UART, SPI, I2C, ADC, таймеры) |
|
||||||
|
| `STM32F4xx_HAL_Driver/` | HAL-драйверы для серии F4 (UART, SPI, I2C, ADC, таймеры) |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### Примеры использования
|
||||||
|
Проект содержит примеры для:
|
||||||
|
- **UART**: отправка/приём данных, конфигурация скорости и формата
|
||||||
|
- **SPI**: двунаправленная передача, настройка режима
|
||||||
|
- **I2C**: чтение/запись через регистры
|
||||||
|
- **ADC**: многоканальная конвертация с преобразованием в 16-битное значение
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### Зависимости
|
||||||
|
- **FreeRTOS** — RTOS для STM32 (встроенная поддержка)
|
||||||
|
- **FatFS** — файловая система для SD/MMC карт
|
||||||
|
- **CMSIS-DSP** — DSP-библиотека для обработки сигналов
|
||||||
|
- **USB** — USB-драйверы для серии F4
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### Лицензия
|
||||||
|
MIT License
|
||||||
|
|
||||||
|
<!-- USER_CUSTOM_CONTEXT_START -->
|
||||||
|
# ✍️ Заметки разработчика
|
||||||
|
|
||||||
|
Библитоека для работы с датчиком TMP112 (Датчик температуры цифровой)
|
||||||
@@ -1,26 +0,0 @@
|
|||||||
#ifndef DS_TMP112_H
|
|
||||||
#define DS_TMP112_H
|
|
||||||
|
|
||||||
#ifdef STM32G030xx
|
|
||||||
#include "stm32g0xx_hal.h"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef STM32F030xx
|
|
||||||
#include "stm32f0xx_hal.h"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef STM32F103xB
|
|
||||||
#include "stm32f1xx_hal.h"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef STM32L152xC
|
|
||||||
#include "stm32l1xx_hal.h"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Возвращает температуру в миллиградусах Цельсия (1/1000 °C)
|
|
||||||
* Пример: 25500 означает 25.5°C
|
|
||||||
*/
|
|
||||||
int32_t DS_TMP112_ReadTemperature(I2C_HandleTypeDef *hi2c);
|
|
||||||
|
|
||||||
#endif //DS_TMP112_H
|
|
||||||
@@ -1,17 +1,2 @@
|
|||||||
# TMP112
|
# TMP112
|
||||||
|
|
||||||
Для добавления в проект:
|
|
||||||
git submodule add https://git.domstudent.ru/Library/DS_TMP112
|
|
||||||
|
|
||||||
Затем добавляем в корневой CMakeLists.txt
|
|
||||||
|
|
||||||
# Library folder
|
|
||||||
set(DS_Include_Dirs
|
|
||||||
${CMAKE_SOURCE_DIR}/Library/DS_TMP112/Inc
|
|
||||||
)
|
|
||||||
target_include_directories(stm32cubemx INTERFACE ${DS_Include_Dirs})
|
|
||||||
|
|
||||||
set(DS_Application_Src
|
|
||||||
${CMAKE_SOURCE_DIR}/Library/DS_TMP112/Src/DS_TMP112.c
|
|
||||||
)
|
|
||||||
target_sources(${CMAKE_PROJECT_NAME} PRIVATE ${DS_Application_Src})
|
|
||||||
@@ -1,35 +0,0 @@
|
|||||||
#include <DS_TMP112.h>
|
|
||||||
|
|
||||||
int32_t DS_TMP112_ReadTemperature(I2C_HandleTypeDef *hi2c)
|
|
||||||
{
|
|
||||||
// Адрес TMP112 (обычно 0x48 << 1, если ножка ADD0 на GND)
|
|
||||||
#define TMP112_ADDR (0x48 << 1)
|
|
||||||
#define TMP112_REG_TEMP 0x00
|
|
||||||
|
|
||||||
uint8_t data[2];
|
|
||||||
int16_t raw;
|
|
||||||
|
|
||||||
// Читаем 2 байта из регистра температуры
|
|
||||||
if (HAL_I2C_Mem_Read(hi2c, TMP112_ADDR, TMP112_REG_TEMP, I2C_MEMADD_SIZE_8BIT, data, 2, 100) != HAL_OK) {
|
|
||||||
return -999000; // Ошибка чтения
|
|
||||||
}
|
|
||||||
|
|
||||||
// Объединяем байты: MSB — это целая часть, LSB — дробная (4 верхних бита)
|
|
||||||
raw = (data[0] << 4) | (data[1] >> 4);
|
|
||||||
|
|
||||||
// Поддержка отрицательных температур (12-битное число с дополнением до 2)
|
|
||||||
if (raw > 0x7FF) {
|
|
||||||
raw -= 4096;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Шаг датчика 0.0625°C (или raw / 16)
|
|
||||||
//return (float)raw * 0.0625f;
|
|
||||||
|
|
||||||
|
|
||||||
// Расчет в целых числах:
|
|
||||||
// Один шаг (LSB) = 0.0625°C = 1/16°C
|
|
||||||
// Чтобы получить миллиградусы: (raw * 1000) / 16
|
|
||||||
// Это эквивалентно: raw * 62.5. Используем raw * 125 / 2
|
|
||||||
return (int32_t)raw * 125 / 2;
|
|
||||||
|
|
||||||
}
|
|
||||||
Reference in New Issue
Block a user