# πŸ€– ВСхничСский контСкст ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° (Π‘Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Π½ΠΎ ИИ) ## 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 # ✍️ Π—Π°ΠΌΠ΅Ρ‚ΠΊΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° Π‘ΠΈΠ±Π»ΠΈΡ‚ΠΎΠ΅ΠΊΠ° для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠΎΠΌ TMP112 (Π”Π°Ρ‚Ρ‡ΠΈΠΊ Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Ρ‹ Ρ†ΠΈΡ„Ρ€ΠΎΠ²ΠΎΠΉ)