Π Π°Π±ΠΎΡΠ° Ρ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ°ΠΌΠΈ ΡΠ΅ΠΌΠ΅ΠΉΡΡΠ²Π° STM32 ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠΊΠ°Π·Π°ΡΡΡΡ ΡΠ»ΠΎΠΆΠ½ΠΎΠΉ Π·Π°Π΄Π°ΡΠ΅ΠΉ, ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ Π΅ΡΠ»ΠΈ Π²Ρ ΡΠΎΠ»ΡΠΊΠΎ Π½Π°ΡΠΈΠ½Π°Π΅ΡΠ΅ ΠΎΡΠ²Π°ΠΈΠ²Π°ΡΡ Π²ΡΡΡΠ°ΠΈΠ²Π°Π΅ΠΌΡΡ ΡΠ»Π΅ΠΊΡΡΠΎΠ½ΠΈΠΊΡ. ΠΠ΄Π΅ΡΡ Π½Π° ΠΏΠΎΠΌΠΎΡΡ ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡ STM32CubeMX β Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ ΠΎΡ STMicroelectronics, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΏΡΠΎΡΠ°Π΅Ρ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ ΠΏΠ΅ΡΠΈΡΠ΅ΡΠΈΠΉΠ½ΡΡ ΡΡΡΡΠΎΠΉΡΡΠ², Π³Π΅Π½Π΅ΡΠ°ΡΠΈΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΎΠ½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° ΠΈ Π΄Π°ΠΆΠ΅ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ Ρ ΡΠ°ΡΠΏΠΈΠ½ΠΎΠ²ΠΊΠΎΠΉ ΠΏΠ»Π°Ρ. ΠΠΎ ΠΊΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠΎΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ, ΡΡΠΎΠ±Ρ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ ΡΠΈΠΏΠΈΡΠ½ΡΡ ΠΎΡΠΈΠ±ΠΎΠΊ ΠΈ ΡΡΠΊΠΎΡΠΈΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΡ?
Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ ΠΌΡ ΡΠ°Π·Π±Π΅ΡΡΠΌ STM32CubeMX ΠΎΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ Π΄ΠΎ ΡΠΎΠ½ΠΊΠΎΠΉ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ² ΠΏΠΎΠ΄ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠ΅ Π·Π°Π΄Π°ΡΠΈ. ΠΡ ΡΠ·Π½Π°Π΅ΡΠ΅, ΠΊΠ°ΠΊ Π²ΡΠ±ΡΠ°ΡΡ ΠΏΠΎΠ΄Ρ
ΠΎΠ΄ΡΡΠΈΠΉ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ, ΡΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠ°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅, Π½Π°ΡΡΡΠΎΠΈΡΡ ΠΏΠ΅ΡΠΈΡΠ΅ΡΠΈΡ (ΠΎΡ GPIO Π΄ΠΎ USB), Π° ΡΠ°ΠΊΠΆΠ΅ ΡΠΊΡΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΏΡΠΎΠ΅ΠΊΡ Π² ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΠ΅ ΡΡΠ΅Π΄Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ β Keil, IAR ΠΈΠ»ΠΈ STM32CubeIDE. ΠΡΠΎΠ±ΠΎΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΡΠ΄Π΅Π»ΠΈΠΌ ΡΠΊΡΡΡΡΠΌ Π½Π°ΡΡΡΠΎΠΉΠΊΠ°ΠΌ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ΅Π΄ΠΊΠΎ ΡΠΏΠΎΠΌΠΈΠ½Π°ΡΡΡΡ Π² Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ, Π½ΠΎ ΠΌΠΎΠ³ΡΡ ΡΡΠΊΠΎΠ½ΠΎΠΌΠΈΡΡ ΡΠ°ΡΡ ΠΎΡΠ»Π°Π΄ΠΊΠΈ.
Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ STM32CubeMX ΠΈ Π·Π°ΡΠ΅ΠΌ ΠΎΠ½ Π½ΡΠΆΠ΅Π½?
STM32CubeMX β ΡΡΠΎ Π½Π΅ ΠΏΡΠΎΡΡΠΎ ΡΡΠΈΠ»ΠΈΡΠ° Π΄Π»Ρ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ ΠΊΠΎΠ΄Π°, Π° ΠΏΠΎΠ»Π½ΠΎΡΠ΅Π½Π½ΡΠΉ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΎΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ΅ΡΠ°Π΅Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΊΠ»ΡΡΠ΅Π²ΡΡ Π·Π°Π΄Π°Ρ:
- π§ ΠΠΈΠ·ΡΠ°Π»ΡΠ½Π°Ρ Π½Π°ΡΡΡΠΎΠΉΠΊΠ° ΠΏΠ΅ΡΠΈΡΠ΅ΡΠΈΠΈ: Π²ΠΌΠ΅ΡΡΠΎ ΡΡΡΠ½ΠΎΠ³ΠΎ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ ΡΠ΅Π³ΠΈΡΡΡΠΎΠ²ΡΡ
Π½Π°ΡΡΡΠΎΠ΅ΠΊ Π²Ρ ΡΠ°Π±ΠΎΡΠ°Π΅ΡΠ΅ Ρ ΠΈΠ½ΡΡΠΈΡΠΈΠ²Π½ΡΠΌ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠΌ, Π³Π΄Π΅ ΠΊΠ°ΠΆΠ΄ΡΡ Π½ΠΎΠΆΠΊΡ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ° ΠΌΠΎΠΆΠ½ΠΎ Π½Π°Π·Π½Π°ΡΠΈΡΡ ΠΏΠΎΠ΄
UART,SPI,ADCΠΈΠ»ΠΈGPIOΠ±ΡΠΊΠ²Π°Π»ΡΠ½ΠΎ ΠΏΠ°ΡΠΎΠΉ ΠΊΠ»ΠΈΠΊΠΎΠ². - π‘ ΠΠ²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠ°Ρ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΎΠ½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°: ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ ΡΠΎΠ·Π΄Π°ΡΡ ΡΠ°ΠΉΠ»Ρ
main.c,stm32fxxx_hal_conf.hΠΈ Π΄ΡΡΠ³ΠΈΠ΅, ΡΠΆΠ΅ Π½Π°ΡΡΡΠΎΠ΅Π½Π½ΡΠ΅ ΠΏΠΎΠ΄ Π²ΡΠ±ΡΠ°Π½Π½ΡΠΉ ΡΠΈΠΏ ΠΈ ΠΏΠ΅ΡΠΈΡΠ΅ΡΠΈΡ. - π ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° Π²ΡΠ΅Ρ ΡΠ΅ΠΌΠ΅ΠΉΡΡΠ² STM32: ΠΎΡ Π±ΡΠ΄ΠΆΠ΅ΡΠ½ΡΡ STM32F0 Π΄ΠΎ ΠΌΠΎΡΠ½ΡΡ STM32H7 Ρ ΡΠ΄ΡΠ°ΠΌΠΈ Cortex-M7.
- π οΈ ΠΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡ Ρ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΠΌΠΈ IDE: ΡΠΊΡΠΏΠΎΡΡ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ² Π² Keil MDK, IAR Embedded Workbench, STM32CubeIDE, Π° ΡΠ°ΠΊΠΆΠ΅ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΡ
MakefileΠ΄Π»Ρ ΡΡΡΠ½ΠΎΠΉ ΡΠ±ΠΎΡΠΊΠΈ.
ΠΠ»Π°Π²Π½ΠΎΠ΅ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²ΠΎ STM32CubeMX ΠΏΠ΅ΡΠ΅Π΄ ΡΡΡΠ½ΠΎΠΉ Π½Π°ΡΡΡΠΎΠΉΠΊΠΎΠΉ β ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·Π°ΡΠΈΡ ΠΎΡΠΈΠ±ΠΎΠΊ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΡΠΈ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ ΡΠ°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠΈΡΡΠ΅ΠΌΠ° Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΏΡΠΎΠ²Π΅ΡΡΠ΅Ρ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΡ ΡΠ°ΡΡΠΎΡ ΠΈ ΠΏΡΠ΅Π΄ΠΎΡΠ²ΡΠ°ΡΠ°Π΅Ρ Π²ΡΠ±ΠΎΡ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΡ
ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΠΉ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΠΎΠΏΡΡΠΊΡ ΡΠ°Π·ΠΎΠ³Π½Π°ΡΡ STM32F103 Π΄ΠΎ 100 ΠΠΡ ΠΏΡΠΈ ΠΏΠΈΡΠ°Π½ΠΈΠΈ 3.3Π). ΠΠ΄Π½Π°ΠΊΠΎ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ Π½Π΅ Π»ΠΈΡΡΠ½ ΠΏΠΎΠ΄Π²ΠΎΠ΄Π½ΡΡ
ΠΊΠ°ΠΌΠ½Π΅ΠΉ: Π½Π΅Π²Π΅ΡΠ½Π°Ρ Π½Π°ΡΡΡΠΎΠΉΠΊΠ° Clock Configuration ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ ΠΊ Π½Π΅ΡΡΠ°Π±ΠΈΠ»ΡΠ½ΠΎΠΉ ΡΠ°Π±ΠΎΡΠ΅ ΡΡΡΡΠΎΠΉΡΡΠ²Π°, Π° Π½Π΅ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΠ΅ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΈΠ½ΠΎΠ² β ΠΊ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΠ°ΠΌ ΠΏΠ΅ΡΠΈΡΠ΅ΡΠΈΠΈ.
- STM32CubeIDE
- Keil MDK
- IAR Embedded Workbench
- PlatformIO
- ΠΡΡΠ³Π°Ρ
Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° ΠΈ ΠΏΠ΅ΡΠ²ΠΎΠ΅ Π·Π°ΠΏΡΡΠΊ STM32CubeMX
ΠΠ΅ΡΠ΅Π΄ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΎΠΉ ΡΠ±Π΅Π΄ΠΈΡΠ΅ΡΡ, ΡΡΠΎ Π²Π°Ρ ΠΊΠΎΠΌΠΏΡΡΡΠ΅Ρ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΡΠΌ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡΠΌ:
| ΠΠ°ΡΠ°ΠΌΠ΅ΡΡ | ΠΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΡΠ΅ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ | Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΠΌΡΠ΅ |
|---|---|---|
| ΠΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½Π°Ρ ΡΠΈΡΡΠ΅ΠΌΠ° | Windows 7/10/11, Linux, macOS | Windows 10/11 (64-bit) |
| ΠΠΠ£ | 2 ΠΠ | 4 ΠΠ ΠΈ Π±ΠΎΠ»Π΅Π΅ |
| Π‘Π²ΠΎΠ±ΠΎΠ΄Π½ΠΎΠ΅ ΠΌΠ΅ΡΡΠΎ Π½Π° Π΄ΠΈΡΠΊΠ΅ | 500 ΠΠ | 1 ΠΠ (Ρ ΡΡΡΡΠΎΠΌ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ² Π΄Π»Ρ Π²ΡΠ΅Ρ ΡΠ΅ΠΌΠ΅ΠΉΡΡΠ²) |
| Java | JRE 8 ΠΈΠ»ΠΈ Π½ΠΎΠ²Π΅Π΅ | OpenJDK 11+ |
Π‘ΠΊΠ°ΡΠ°ΠΉΡΠ΅ ΠΏΠΎΡΠ»Π΅Π΄Π½ΡΡ Π²Π΅ΡΡΠΈΡ STM32CubeMX Ρ ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠ°ΠΉΡΠ° STMicroelectronics (ΡΠ°Π·Π΄Π΅Π» Tools & Software β Development Tools β STM32CubeMX). Π£ΡΡΠ°Π½ΠΎΠ²ΠΈΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΡΠ»Π΅Π΄ΡΡ ΠΌΠ°ΡΡΠ΅ΡΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ. ΠΠΎΡΠ»Π΅ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ Π·Π°ΠΏΡΡΠΊΠ°:
- ΠΡΠΈΠΌΠΈΡΠ΅ Π»ΠΈΡΠ΅Π½Π·ΠΈΠΎΠ½Π½ΠΎΠ΅ ΡΠΎΠ³Π»Π°ΡΠ΅Π½ΠΈΠ΅.
- ΠΡΠ±Π΅ΡΠΈΡΠ΅ ΠΏΠ°ΠΏΠΊΡ Π΄Π»Ρ Ρ
ΡΠ°Π½Π΅Π½ΠΈΡ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ² (ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΡΡΠΎ
C:\Users\<ΠΠΌΡ>\STM32Cube\Repository). - ΠΠ±Π½ΠΎΠ²ΠΈΡΠ΅ ΠΏΠ°ΠΊΠ΅ΡΡ Π΄Π»Ρ ΡΠ΅ΠΌΠ΅ΠΉΡΡΠ² ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠΎΠ² ΡΠ΅ΡΠ΅Π·
Help β Manage embedded software packages.
β οΈ ΠΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅: ΠΡΠ»ΠΈ Π²Ρ ΡΠ°Π±ΠΎΡΠ°Π΅ΡΠ΅ ΠΏΠΎΠ΄ Linux, Π·Π°ΠΏΡΡΠΊΠ°ΠΉΡΠ΅ STM32CubeMX ΡΠ΅ΡΠ΅Π· ΡΠΊΡΠΈΠΏΡSetupSTM32CubeMX-<Π²Π΅ΡΡΠΈΡ>.linuxΡ ΠΏΡΠ°Π²Π°ΠΌΠΈ ΡΡΠΏΠ΅ΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ (sudo). Π ΠΏΡΠΎΡΠΈΠ²Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΌΠΎΠ³ΡΡ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Ρ Π΄ΠΎΡΡΡΠΏΠΎΠΌ ΠΊ USB-ΠΏΠΎΡΡΠ°ΠΌ ΠΏΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ Ρ ΠΎΡΠ»Π°Π΄ΡΠΈΠΊΠ°ΠΌΠΈ.
ΠΡΠ±ΠΎΡ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ° ΠΈ Π±Π°Π·ΠΎΠ²Π°Ρ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ
ΠΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ° (File β New Project) Π²Π°Ρ Π²ΡΡΡΠ΅ΡΠΈΡ ΠΎΠΊΠ½ΠΎ Π²ΡΠ±ΠΎΡΠ° ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ°. ΠΠ΄Π΅ΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡΡΠΈΠ»ΡΡΡΠΎΠ²Π°ΡΡ ΡΠΈΠΏΡ ΠΏΠΎ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌ ΠΊΡΠΈΡΠ΅ΡΠΈΡΠΌ:
- π Π‘Π΅ΠΌΠ΅ΠΉΡΡΠ²ΠΎ: STM32F0, STM32F1, STM32F4, STM32H7 ΠΈ Π΄Ρ.
- π¦ ΠΠΎΡΠΏΡΡ:
LQFP-48,BGA-176,WLCSP-36. - π ΠΠ΅ΡΠΈΡΠ΅ΡΠΈΡ: Π½Π°Π»ΠΈΡΠΈΠ΅
USB,Ethernet,CAN,ADCΡ ΡΠ°Π·ΡΡΠ΄Π½ΠΎΡΡΡΡ 12/16 Π±ΠΈΡ. - π‘ ΠΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠΈ: ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° DSP, FPU, TrustZone.
ΠΠΎΡΠ»Π΅ Π²ΡΠ±ΠΎΡΠ° ΡΠΈΠΏΠ° (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, STM32F407G-DISC1 Π΄Π»Ρ ΠΎΡΠ»Π°Π΄ΠΎΡΠ½ΠΎΠΉ ΠΏΠ»Π°ΡΡ Discovery) ΠΎΡΠΊΡΠΎΠ΅ΡΡΡ Π³Π»Π°Π²Π½ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ. ΠΠ΄Π΅ΡΡ Π²Π°ΠΆΠ½ΠΎ:
- ΠΡΠΎΠ²Π΅ΡΠΈΡΡ
Pinout & ConfigurationΠ½Π° ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΡ ΠΏΠ΅ΡΠΈΡΠ΅ΡΠΈΠΈ (ΠΊΡΠ°ΡΠ½ΡΠ΅ Π²ΠΎΡΠΊΠ»ΠΈΡΠ°ΡΠ΅Π»ΡΠ½ΡΠ΅ Π·Π½Π°ΠΊΠΈ Ρ ΠΏΠΈΠ½ΠΎΠ²). - ΠΠ°ΡΡΡΠΎΠΈΡΡ
Clock Configuration(ΡΠ°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅) β ΡΡΠΎ ΠΊΡΠΈΡΠΈΡΠ½ΠΎ Π΄Π»Ρ ΡΡΠ°Π±ΠΈΠ»ΡΠ½ΠΎΠΉ ΡΠ°Π±ΠΎΡΡUART,SPIΠΈ ΡΠ°ΠΉΠΌΠ΅ΡΠΎΠ². - ΠΠΊΡΠΈΠ²ΠΈΡΠΎΠ²Π°ΡΡ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΡΠ΅ ΠΌΠΎΠ΄ΡΠ»ΠΈ Π² ΡΠ°Π·Π΄Π΅Π»Π΅
Middleware(Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ,FreeRTOSΠΈΠ»ΠΈFatFS).
ΠΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ ΡΠ°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ: ΠΈΠ·Π±Π΅Π³Π°Π΅ΠΌ ΡΠΈΠΏΠΈΡΠ½ΡΡ ΠΎΡΠΈΠ±ΠΎΠΊ
ΠΠ΅ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½Π°Ρ Π½Π°ΡΡΡΠΎΠΉΠΊΠ° Clock Configuration β ΠΎΠ΄Π½Π° ΠΈΠ· Π³Π»Π°Π²Π½ΡΡ
ΠΏΡΠΈΡΠΈΠ½ Π½Π΅ΡΡΠ°Π±ΠΈΠ»ΡΠ½ΠΎΠΉ ΡΠ°Π±ΠΎΡΡ STM32. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΠΎΠΏΡΡΠΊΠ° ΡΠ°ΠΊΡΠΈΡΠΎΠ²Π°ΡΡ STM32F103 ΠΎΡ Π²Π½ΡΡΡΠ΅Π½Π½Π΅Π³ΠΎ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠ° HSI (8 ΠΠΡ) Ρ ΠΊΠΎΡΡΡΠΈΡΠΈΠ΅Π½ΡΠΎΠΌ ΡΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΡ x9 (72 ΠΠΡ) ΠΏΡΠΈΠ²Π΅Π΄ΡΡ ΠΊ ΡΠ±ΠΎΡΠΌ, Π΅ΡΠ»ΠΈ Π½Π΅ Π½Π°ΡΡΡΠΎΠΈΡΡ PLL ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎ. Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΏΠΎΡΠ°Π³ΠΎΠ²ΡΡ Π½Π°ΡΡΡΠΎΠΉΠΊΡ Π΄Π»Ρ STM32F407:
- ΠΠΊΠ»Π°Π΄ΠΊΠ°
Clock Configurationβ Π²ΡΠ±Π΅ΡΠΈΡΠ΅ ΠΈΡΡΠΎΡΠ½ΠΈΠΊ ΡΠ°ΠΊΡΠΎΠ²ΠΎΠ³ΠΎ ΡΠΈΠ³Π½Π°Π»Π°:HSE (8 ΠΠΡ)(Π²Π½Π΅ΡΠ½ΠΈΠΉ ΠΊΠ²Π°ΡΡ) ΠΈΠ»ΠΈHSI (16 ΠΠΡ)(Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΠΉ). - ΠΠ°ΡΡΡΠΎΠΉΡΠ΅
PLL:PLL Source: HSEPLLM (Π΄Π΅Π»ΠΈΡΠ΅Π»Ρ): 8 (Π΄Π»Ρ HSE 8 ΠΠΡ β 1 ΠΠΡ)
PLLN (ΡΠΌΠ½ΠΎΠΆΠΈΡΠ΅Π»Ρ): 336 (β 336 ΠΠΡ)
PLLP (Π΄Π΅Π»ΠΈΡΠ΅Π»Ρ Π΄Π»Ρ ΡΠΈΡΡΠ΅ΠΌΠ½ΠΎΠΉ ΡΠΈΠ½Ρ): 2 (β 168 ΠΠΡ)
- Π£ΡΡΠ°Π½ΠΎΠ²ΠΈΡΠ΅ Π΄Π΅Π»ΠΈΡΠ΅Π»ΠΈ Π΄Π»Ρ ΡΠΈΠ½:
AHB Prescaler: /1 (168 ΠΠΡ),APB1 Prescaler: /4 (42 ΠΠΡ),APB2 Prescaler: /2 (84 ΠΠΡ).
ΠΠΎΡΠ»Π΅ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ Π½Π°ΡΡΡΠΎΠ΅ΠΊ STM32CubeMX ΠΏΠΎΠΊΠ°ΠΆΠ΅Ρ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠ΅, Π΅ΡΠ»ΠΈ Π²ΡΠ±ΡΠ°Π½Π½ΡΠ΅ ΡΠ°ΡΡΠΎΡΡ ΠΏΡΠ΅Π²ΡΡΠ°ΡΡ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΡΠ΅ Π΄Π»Ρ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΡΠΈΠΏΠ°. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΄Π»Ρ STM32F4 ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½Π°Ρ ΡΠ°ΡΡΠΎΡΠ° AHB β 168 ΠΠΡ, Π° APB1 β 42 ΠΠΡ.
ΠΡΠ»ΠΈ Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ Π²Π½Π΅ΡΠ½ΠΈΠΉ ΠΊΠ²Π°ΡΡ (HSE), ΡΠ±Π΅Π΄ΠΈΡΠ΅ΡΡ, ΡΡΠΎ Π½Π° ΠΏΠ»Π°ΡΠ΅ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Ρ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠ΅ ΠΊΠΎΠ½Π΄Π΅Π½ΡΠ°ΡΠΎΡΡ Π½Π°Π³ΡΡΠ·ΠΊΠΈ (ΠΎΠ±ΡΡΠ½ΠΎ 12β22 ΠΏΠ€). ΠΡ
ΠΎΡΡΡΡΡΡΠ²ΠΈΠ΅ ΠΈΠ»ΠΈ Π½Π΅ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΠΉ Π½ΠΎΠΌΠΈΠ½Π°Π» ΠΏΡΠΈΠ²Π΅Π΄ΡΡ ΠΊ Π½Π΅ΡΡΠ°Π±ΠΈΠ»ΡΠ½ΠΎΠΉ ΡΠ°Π±ΠΎΡΠ΅ ΡΠ°ΠΊΡΠΎΠ²ΠΎΠ³ΠΎ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠ°.
ΠΠ°ΡΡΡΠΎΠΉΠΊΠ° ΠΏΠ΅ΡΠΈΡΠ΅ΡΠΈΠΈ: ΠΎΡ GPIO Π΄ΠΎ USB
Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Π²ΠΎΡΡΡΠ΅Π±ΠΎΠ²Π°Π½Π½ΡΡ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ:
1. GPIO (General Purpose Input/Output)
- π ΠΠ°Π·Π½Π°ΡΡΡΠ΅ ΠΏΠΈΠ½ ΠΊΠ°ΠΊ
Input,Output,Alternate FunctionΠΈΠ»ΠΈAnalog. - π ΠΠ»Ρ
OutputΠ²ΡΠ±Π΅ΡΠΈΡΠ΅ ΡΠ΅ΠΆΠΈΠΌ:Push-Pull(ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΉ),Open-Drain(Π΄Π»Ρ ΡΠΈΠ½ΡI2C) ΠΈΠ»ΠΈPull-Up/Pull-Down. - β‘ Π£ΡΡΠ°Π½ΠΎΠ²ΠΈΡΠ΅ ΡΠΊΠΎΡΠΎΡΡΡ:
Low,Medium,HighΠΈΠ»ΠΈVery High(Π²Π»ΠΈΡΠ΅Ρ Π½Π° ΠΏΠΎΡΡΠ΅Π±Π»Π΅Π½ΠΈΠ΅ ΠΈ ΡΡΠΎΠ²Π΅Π½Ρ ΡΡΠΌΠΎΠ²).
2. UART (ΠΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΡΠΉ ΠΏΡΠΈΡΠΌΠΎΠΏΠ΅ΡΠ΅Π΄Π°ΡΡΠΈΠΊ)
- π‘ ΠΡΠ±Π΅ΡΠΈΡΠ΅ ΡΠ΅ΠΆΠΈΠΌ:
Asynchronous,SynchronousΠΈΠ»ΠΈSingle-Wire. - βοΈ ΠΠ°ΡΡΡΠΎΠΉΡΠ΅ ΡΠΊΠΎΡΠΎΡΡΡ (baud rate), ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΡΠΎΠΏ-Π±ΠΈΡΠΎΠ² ΠΈ ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ ΡΡΡΠ½ΠΎΡΡΠΈ.
- π ΠΠΊΡΠΈΠ²ΠΈΡΡΠΉΡΠ΅ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΡ ΠΏΠΎ ΠΏΡΠΈΡΠΌΡ (
RXNE) ΠΈΠ»ΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠ΅ (TC).
3. SPI (ΠΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΡΠΉ ΠΏΠ΅ΡΠΈΡΠ΅ΡΠΈΠΉΠ½ΡΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ)
- π ΠΡΠ±Π΅ΡΠΈΡΠ΅ ΡΠ΅ΠΆΠΈΠΌ:
MasterΠΈΠ»ΠΈSlave. - π ΠΠ°ΡΡΡΠΎΠΉΡΠ΅ Π΄Π»ΠΈΠ½Ρ ΡΠ»ΠΎΠ²Π° (8 ΠΈΠ»ΠΈ 16 Π±ΠΈΡ), ΠΏΠΎΡΡΠ΄ΠΎΠΊ Π±ΠΈΡ (
MSB FirstΠΈΠ»ΠΈLSB First). - β‘ Π£ΡΡΠ°Π½ΠΎΠ²ΠΈΡΠ΅ ΡΠ°ΠΊΡΠΎΠ²ΡΡ ΡΠ°ΡΡΠΎΡΡ (Π½Π΅ ΠΏΡΠ΅Π²ΡΡΠ°ΠΉΡΠ΅ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΡΡ Π΄Π»Ρ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΡΠ½Π½ΠΎΠ³ΠΎ ΡΡΡΡΠΎΠΉΡΡΠ²Π°!).
β οΈ ΠΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅: ΠΡΠΈ Π½Π°ΡΡΡΠΎΠΉΠΊΠ΅SPIΠ² ΡΠ΅ΠΆΠΈΠΌΠ΅MasterΡΠ±Π΅Π΄ΠΈΡΠ΅ΡΡ, ΡΡΠΎ ΡΠ°ΡΡΠΎΡΠ°SCKΠ½Π΅ ΠΏΡΠ΅Π²ΡΡΠ°Π΅Ρ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΡΡ Π΄Π»Ρ Π²Π΅Π΄ΠΎΠΌΠΎΠ³ΠΎ ΡΡΡΡΠΎΠΉΡΡΠ²Π°. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΄Π°ΡΡΠΈΠΊ MPU6050 ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΠΌΠ°ΠΊΡΠΈΠΌΡΠΌ 1 ΠΠΡ, Π° ΠΏΠΎΠΏΡΡΠΊΠ° ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ 10 ΠΠΡ ΠΏΡΠΈΠ²Π΅Π΄ΡΡ ΠΊ ΠΎΡΠΈΠ±ΠΊΠ°ΠΌ ΡΡΠ΅Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ .
ΠΠ°ΠΊ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΡ ΠΏΠ΅ΡΠΈΡΠ΅ΡΠΈΠΈ?
ΠΠΊΠ»Π°Π΄ΠΊΠ° Pinout & Configuration ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅Ρ ΠΊΡΠ°ΡΠ½ΡΠ΅ Π²ΠΎΡΠΊΠ»ΠΈΡΠ°ΡΠ΅Π»ΡΠ½ΡΠ΅ Π·Π½Π°ΠΊΠΈ ΡΡΠ΄ΠΎΠΌ Ρ ΠΏΠΈΠ½Π°ΠΌΠΈ, Π΅ΡΠ»ΠΈ:
- ΠΠ΄ΠΈΠ½ ΠΈ ΡΠΎΡ ΠΆΠ΅ ΠΏΠΈΠ½ Π½Π°Π·Π½Π°ΡΠ΅Π½ ΠΏΠΎΠ΄ Π΄Π²Π΅ ΡΠ°Π·Π½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, USART2_TX ΠΈ SPI1_MOSI).
- ΠΠ΅ΡΠΈΡΠ΅ΡΠΈΠΉΠ½ΡΠΉ ΠΌΠΎΠ΄ΡΠ»Ρ ΡΡΠ΅Π±ΡΠ΅Ρ Π°Π»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Π½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ, Π½ΠΎ ΠΏΠΈΠ½ Π½Π°ΡΡΡΠΎΠ΅Π½ ΠΊΠ°ΠΊ GPIO.
- Π’Π°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΌΠΎΠ΄ΡΠ»Ρ ΠΎΡΠΊΠ»ΡΡΠ΅Π½ΠΎ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, USART1 Π½Π΅ Π±ΡΠ΄Π΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ, Π΅ΡΠ»ΠΈ Π½Π΅ Π°ΠΊΡΠΈΠ²ΠΈΡΠΎΠ²Π°Π½ USART1 Clock Π² Clock Configuration).
ΠΠ΅Π½Π΅ΡΠ°ΡΠΈΡ ΠΊΠΎΠ΄Π° ΠΈ ΡΠΊΡΠΏΠΎΡΡ Π² IDE
ΠΠΎΡΠ»Π΅ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ Π½Π°ΠΆΠΌΠΈΡΠ΅ Project β Generate Code. ΠΠ΄Π΅ΡΡ Π²ΡΠ±Π΅ΡΠΈΡΠ΅:
- π Toolchain/IDE: STM32CubeIDE, Keil MDK-ARM, IAR EWARM ΠΈΠ»ΠΈ
Makefile. - π§ Generate Under Root: ΡΠΎΠ·Π΄Π°ΡΡ ΠΏΡΠΎΠ΅ΠΊΡ Π² ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠΉ ΠΏΠ°ΠΏΠΊΠ΅ (ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΡΡΡ Π΄Π»Ρ ΠΈΠ·Π±Π΅ΠΆΠ°Π½ΠΈΡ ΠΏΡΡΠ°Π½ΠΈΡΡ).
- π Copy only the necessary library files: ΡΠΌΠ΅Π½ΡΡΠ°Π΅Ρ ΡΠ°Π·ΠΌΠ΅Ρ ΠΏΡΠΎΠ΅ΠΊΡΠ°, ΠΊΠΎΠΏΠΈΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ.
ΠΠ»Ρ STM32CubeIDE ΠΏΡΠΎΡΠ΅ΡΡ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎ ΠΏΡΠΎΡΡ: ΠΏΠΎΡΠ»Π΅ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ ΠΎΡΠΊΡΠΎΠΉΡΠ΅ ΡΠ°ΠΉΠ» ΠΏΡΠΎΠ΅ΠΊΡΠ° (.project) ΡΠ΅ΡΠ΅Π· File β Open Projects from File System. Π Keil ΠΈΠΌΠΏΠΎΡΡΠΈΡΡΠΉΡΠ΅ .uvprojx, Π° Π² IAR β .eww.
Π‘Π³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΠΊΠΎΠ΄ Π²ΠΊΠ»ΡΡΠ°Π΅Ρ:
- π
main.cβ ΡΠΎΡΠΊΠ° Π²Ρ ΠΎΠ΄Π° Ρ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠ΅ΠΉ HAL-Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ. - π
stm32fxxx_hal_msp.cβ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ Π½ΠΈΠ·ΠΊΠΎΡΡΠΎΠ²Π½Π΅Π²ΠΎΠΉ ΠΏΠ΅ΡΠΈΡΠ΅ΡΠΈΠΈ (ΡΠ°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅, GPIO). - π
stm32fxxx_it.cβ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΠΉ.
ΠΡΠ΅Π³Π΄Π° ΠΏΡΠΎΠ²Π΅ΡΡΠΉΡΠ΅ ΡΠ°ΠΉΠ» stm32fxxx_hal_conf.h ΠΏΠΎΡΠ»Π΅ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ ΠΊΠΎΠ΄Π°. ΠΠ΄Π΅ΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡΠΊΠ»ΡΡΠΈΡΡ Π½Π΅Π½ΡΠΆΠ½ΡΠ΅ ΠΌΠΎΠ΄ΡΠ»ΠΈ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, #define HAL_I2C_MODULE_DISABLED), ΡΡΠΎΠ±Ρ ΡΠΌΠ΅Π½ΡΡΠΈΡΡ ΡΠ°Π·ΠΌΠ΅Ρ ΠΏΡΠΎΡΠΈΠ²ΠΊΠΈ ΠΈ ΡΡΠΊΠΎΡΠΈΡΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΡ.
ΠΡΠ»Π°Π΄ΠΊΠ° ΠΈ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ ΠΏΡΠΎΠ΅ΠΊΡΠ°
ΠΠ°ΠΆΠ΅ ΠΏΠΎΡΠ»Π΅ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ ΠΊΠΎΠ΄Π° Π² STM32CubeMX ΠΌΠΎΠ³ΡΡ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ. Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ ΡΠΈΠΏΠΈΡΠ½ΡΠ΅ ΡΡΠ΅Π½Π°ΡΠΈΠΈ ΠΈ ΠΈΡ ΡΠ΅ΡΠ΅Π½ΠΈΡ:
1. ΠΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ Π½Π΅ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΡΡΡ
- π ΠΡΠΎΠ²Π΅ΡΡΡΠ΅ ΠΏΠΈΡΠ°Π½ΠΈΠ΅: STM32 ΡΡΠ΅Π±ΡΠ΅Ρ ΡΡΠ°Π±ΠΈΠ»ΡΠ½ΠΎΠ³ΠΎ Π½Π°ΠΏΡΡΠΆΠ΅Π½ΠΈΡ (ΠΎΠ±ΡΡΠ½ΠΎ 3.3Π ΠΈΠ»ΠΈ 5Π Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΠΌΠΎΠ΄Π΅Π»ΠΈ).
- β‘ Π£Π±Π΅Π΄ΠΈΡΠ΅ΡΡ, ΡΡΠΎ ΡΠ°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π°ΡΡΡΠΎΠ΅Π½ΠΎ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎ (ΡΠΌ. ΡΠ°Π·Π΄Π΅Π» Π²ΡΡΠ΅).
- π ΠΡΠΎΠ²Π΅ΡΡΡΠ΅ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅
BOOT0(Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ Π²0Π΄Π»Ρ Π·Π°ΠΏΡΡΠΊΠ° Ρ Flash).
2. ΠΠ΅ΡΠΈΡΠ΅ΡΠΈΡ Π½Π΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ
- π‘ ΠΠ»Ρ
UART: ΠΏΡΠΎΠ²Π΅ΡΡΡΠ΅ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅TX/RXΠΈ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΡΠΊΠΎΡΠΎΡΡΠΈ (baud rate). - π ΠΠ»Ρ
SPI: ΡΠ±Π΅Π΄ΠΈΡΠ΅ΡΡ, ΡΡΠΎ Π²Π΅Π΄ΠΎΠΌΠΎΠ΅ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ Π²ΡΠ±ΡΠ°Π½Π½ΡΡ ΡΠ°ΡΡΠΎΡΡ ΠΈ ΡΠ΅ΠΆΠΈΠΌ (CPOL/CPHA). - π‘ ΠΠ»Ρ
ADC: Π½Π°ΡΡΡΠΎΠΉΡΠ΅ Π²ΡΠ΅ΠΌΡ Π²ΡΠ±ΠΎΡΠΊΠΈ (Sampling Time) β ΡΠ»ΠΈΡΠΊΠΎΠΌ ΠΊΠΎΡΠΎΡΠΊΠΎΠ΅ ΠΏΡΠΈΠ²Π΅Π΄ΡΡ ΠΊ Π½Π΅ΡΠΎΡΠ½ΡΠΌ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΈΡΠΌ.
3. ΠΡΠΎΠ΅ΠΊΡ Π½Π΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΡΠ΅ΡΡΡ
- π ΠΡΠΎΠ²Π΅ΡΡΡΠ΅ ΠΏΡΡΠΈ ΠΊ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΠΌ Π² Π½Π°ΡΡΡΠΎΠΉΠΊΠ°Ρ IDE (ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ Π΅ΡΠ»ΠΈ ΠΏΠ΅ΡΠ΅Π½ΠΎΡΠΈΠ»ΠΈ ΠΏΡΠΎΠ΅ΠΊΡ).
- π§ ΠΠ±Π½ΠΎΠ²ΠΈΡΠ΅ ΠΏΠ°ΠΊΠ΅ΡΡ STM32Cube ΡΠ΅ΡΠ΅Π·
Help β Manage embedded software packages. - π Π£Π±Π΅Π΄ΠΈΡΠ΅ΡΡ, ΡΡΠΎ Π²
main.cΠ½Π΅Ρ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΡΡΡΠΈΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠΉ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π΄ΡΠ±Π»ΠΈΡΡΡΡΠΈΡ ΡΡHAL_UART_MspInit).
ΠΠ»Ρ ΠΎΡΠ»Π°Π΄ΠΊΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅:
- π οΈ ST-Link (Π²ΡΡΡΠΎΠ΅Π½Π½ΡΠΉ Π² Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π΅ ΠΎΡΠ»Π°Π΄ΠΎΡΠ½ΡΡ ΠΏΠ»Π°Ρ) ΠΈΠ»ΠΈ J-Link.
- π
printfΡΠ΅ΡΠ΅Π·UART(Π½Π°ΡΡΡΠΎΠΉΡΠ΅RetargetΠ² Keil). - π Logic Analyzer Π΄Π»Ρ Π°Π½Π°Π»ΠΈΠ·Π° ΡΠΈΠ³Π½Π°Π»ΠΎΠ²
SPI/I2C.
FAQ: ΠΎΡΠ²Π΅ΡΡ Π½Π° ΡΠ°ΡΡΡΠ΅ Π²ΠΎΠΏΡΠΎΡΡ
ΠΠΎΠΆΠ½ΠΎ Π»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ STM32CubeMX Π΄Π»Ρ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠΎΠ² Π΄ΡΡΠ³ΠΈΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π΅ΠΉ?
ΠΠ΅Ρ, STM32CubeMX ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΡΠΎΠ»ΡΠΊΠΎ Ρ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ°ΠΌΠΈ ΡΠ΅ΠΌΠ΅ΠΉΡΡΠ²Π° STM32 ΠΎΡ STMicroelectronics. ΠΠ»Ρ Π΄ΡΡΠ³ΠΈΡ ΡΠΈΠΏΠΎΠ² (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, NXP ΠΈΠ»ΠΈ Microchip) ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΡΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ: MCUXpresso Config Tools ΠΈΠ»ΠΈ MPLAB Code Configurator.
ΠΠ°ΠΊ ΠΏΠ΅ΡΠ΅Π½Π΅ΡΡΠΈ ΠΏΡΠΎΠ΅ΠΊΡ ΠΈΠ· STM32CubeMX Π² PlatformIO?
ΠΠΊΡΠΏΠΎΡΡΠΈΡΡΠΉΡΠ΅ ΠΏΡΠΎΠ΅ΠΊΡ Π² ΡΠΎΡΠΌΠ°ΡΠ΅ Makefile, Π·Π°ΡΠ΅ΠΌ:
- Π‘ΠΎΠ·Π΄Π°ΠΉΡΠ΅ Π½ΠΎΠ²ΡΠΉ ΠΏΡΠΎΠ΅ΠΊΡ Π² PlatformIO Π΄Π»Ρ Π²Π°ΡΠ΅ΠΉ ΠΏΠ»Π°ΡΡ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ,
stm32f407g-disc1). - Π‘ΠΊΠΎΠΏΠΈΡΡΠΉΡΠ΅ ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ (
Src/,Inc/,Drivers/) Π² ΠΏΠ°ΠΏΠΊΡ ΠΏΡΠΎΠ΅ΠΊΡΠ°. - ΠΠ°ΡΡΡΠΎΠΉΡΠ΅
platformio.ini, ΡΠΊΠ°Π·Π°Π² ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊstm32cube.
ΠΠΎΡΠ΅ΠΌΡ ΠΏΠΎΡΠ»Π΅ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ ΠΊΠΎΠ΄Π° Π² Keil ΠΏΡΠΎΠ΅ΠΊΡ Π½Π΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΡΠ΅ΡΡΡ?
Π§Π°ΡΡΡΠ΅ ΠΏΡΠΈΡΠΈΠ½Ρ:
- ΠΠ΅ Ρ
Π²Π°ΡΠ°Π΅Ρ ΠΏΠ°ΠΌΡΡΠΈ Π² ΡΠΈΠΏΠ΅ (ΠΏΡΠΎΠ²Π΅ΡΡΡΠ΅
.map-ΡΠ°ΠΉΠ»). - ΠΠΎΠ½ΡΠ»ΠΈΠΊΡ Π²Π΅ΡΡΠΈΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ (ΠΎΠ±Π½ΠΎΠ²ΠΈΡΠ΅ STM32CubeMX ΠΈ ΠΏΠ°ΠΊΠ΅ΡΡ).
- ΠΠ΅ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΠ΅ ΠΏΡΡΠΈ ΠΊ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡΠ½ΡΠΌ ΡΠ°ΠΉΠ»Π°ΠΌ (ΠΏΡΠΎΠ²Π΅ΡΡΡΠ΅
Include PathsΠ² Π½Π°ΡΡΡΠΎΠΉΠΊΠ°Ρ ΠΏΡΠΎΠ΅ΠΊΡΠ°).
ΠΠ°ΠΊ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ FreeRTOS Π² ΠΏΡΠΎΠ΅ΠΊΡ ΡΠ΅ΡΠ΅Π· STM32CubeMX?
ΠΠΊΡΠΈΠ²ΠΈΡΡΠΉΡΠ΅ FreeRTOS Π² ΡΠ°Π·Π΄Π΅Π»Π΅ Middleware:
- Π£ΠΊΠ°ΠΆΠΈΡΠ΅ Π²Π΅ΡΡΠΈΡ (ΠΎΠ±ΡΡΠ½ΠΎ ΠΏΠΎΡΠ»Π΅Π΄Π½ΡΡ ΡΡΠ°Π±ΠΈΠ»ΡΠ½ΡΡ).
- ΠΠ°ΡΡΡΠΎΠΉΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΡΠ΄ΡΠ°: ΡΠ°Π·ΠΌΠ΅Ρ ΡΡΠ΅ΠΊΠ°, ΠΏΡΠΈΠΎΡΠΈΡΠ΅ΡΡ Π·Π°Π΄Π°Ρ, ΡΠ°ΠΉΠΌΠ΅ΡΡ.
- Π
Project ManagerΡΠ±Π΅Π΄ΠΈΡΠ΅ΡΡ, ΡΡΠΎ Π³Π°Π»ΠΎΡΠΊΠ°Generate FreeRTOSΠ²ΠΊΠ»ΡΡΠ΅Π½Π°.
ΠΠΎΡΠ»Π΅ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ ΠΊΠΎΠ΄Π° Π² main.c ΠΏΠΎΡΠ²ΡΡΡΡ ΠΏΡΠΈΠΌΠ΅ΡΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π·Π°Π΄Π°Ρ.
ΠΠΎΠΆΠ½ΠΎ Π»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ STM32CubeMX Π±Π΅Π· Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ ΠΊΠΎΠ΄Π°?
ΠΠ°! ΠΠ½ΡΡΡΡΠΌΠ΅Π½Ρ ΠΏΠΎΠ»Π΅Π·Π΅Π½ Π΄Π°ΠΆΠ΅ Π΅ΡΠ»ΠΈ Π²Ρ ΠΏΠΈΡΠ΅ΡΠ΅ ΠΊΠΎΠ΄ Π²ΡΡΡΠ½ΡΡ:
- ΠΠ»Ρ Π²ΠΈΠ·ΡΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΡΠ°ΡΠΏΠΈΠ½ΠΎΠ²ΠΊΠΈ ΠΈ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΠΎΠ².
- ΠΠ»Ρ ΡΠ°ΡΡΡΡΠ° ΡΠ°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΡΠ°ΡΡΠΎΡ.
- ΠΠ»Ρ ΡΠΊΡΠΏΠΎΡΡΠ° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ Π² ΡΠΎΡΠΌΠ°ΡΠ΅
.ioc, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡΠΊΡΡΡΡ ΠΏΠΎΠ·ΠΆΠ΅.