ΠΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² ΡΠΊΠΎΡΠΈΡΡΠ΅ΠΌΡ STMicroelectronics
Π Π°Π·ΡΠ°Π±ΠΎΡΠΊΠ° Π²ΡΡΡΠΎΠ΅Π½Π½ΡΡ ΡΠΈΡΡΠ΅ΠΌ Π½Π° Π±Π°Π·Π΅ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠΎΠ² STM32 ΡΠ°ΡΡΠΎ Π½Π°ΡΠΈΠ½Π°Π΅ΡΡΡ Ρ ΠΏΡΠ΅ΠΎΠ΄ΠΎΠ»Π΅Π½ΠΈΡ Π±Π°ΡΡΠ΅ΡΠ° Π²Ρ ΠΎΠ΄Π°, ΡΠ²ΡΠ·Π°Π½Π½ΠΎΠ³ΠΎ Ρ Π½Π°ΡΡΡΠΎΠΉΠΊΠΎΠΉ Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΠΎΠΉ ΡΠ°ΡΡΠΈ. Π Π°Π½ΡΡΠ΅ ΠΈΠ½ΠΆΠ΅Π½Π΅ΡΡ ΡΡΠ°ΡΠΈΠ»ΠΈ Π½Π΅Π΄Π΅Π»ΠΈ Π½Π° ΡΡΡΠ½ΡΡ ΠΏΡΠΎΠΏΠΈΡΠΊΡ ΡΠ΅Π³ΠΈΡΡΡΠΎΠ², Π½ΠΎ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ ΠΊΠ°ΡΠ΄ΠΈΠ½Π°Π»ΡΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ»ΠΈ ΡΡΠΎΡ ΠΏΡΠΎΡΠ΅ΡΡ. STM32CubeMX ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ, ΠΊΠΎΡΠΎΡΡΠΉ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΡΠ΅Ρ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ° ΠΈ Π³Π΅Π½Π΅ΡΠΈΡΡΠ΅Ρ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΎΠ½Π½ΡΠΉ ΠΊΠΎΠ΄ Π΄Π»Ρ IDE.
ΠΡΠΎΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ ΡΠ²Π»ΡΠ΅ΡΡΡ Π½Π΅ΠΎΡΡΠ΅ΠΌΠ»Π΅ΠΌΠΎΠΉ ΡΠ°ΡΡΡΡ ΡΠΊΠΎΡΠΈΡΡΠ΅ΠΌΡ STM32Cube, ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΠΌ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π²ΠΈΠ·ΡΠ°Π»ΡΠ½ΠΎΠ³ΠΎ Π²ΡΠ±ΠΎΡΠ° ΠΏΠ΅ΡΠΈΡΠ΅ΡΠΈΠΈ ΠΈ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΡΠ°ΠΊΡΠΎΠ²ΠΎΠΉ ΡΠ°ΡΡΠΎΡΡ Π±Π΅Π· Π³Π»ΡΠ±ΠΎΠΊΠΎΠ³ΠΎ ΠΏΠΎΠ³ΡΡΠΆΠ΅Π½ΠΈΡ Π² ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΡΡ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ ΡΡΠ°Π·Ρ Π½Π° ΡΡΠ°ΡΡΠ΅. ΠΠ»Ρ Π½ΠΎΠ²ΠΈΡΠΊΠ° ΡΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΡΡΡΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΠ°Π±ΠΎΡΠΈΠΉ ΠΏΡΠΎΠ΅ΠΊΡ, Π΄Π°ΠΆΠ΅ Π½Π΅ Π·Π½Π°Ρ Π½Π°ΠΈΠ·ΡΡΡΡ ΡΡΡΡΠΊΡΡΡΡ ΡΠ΅Π³ΠΈΡΡΡΠΎΠ² ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠ³ΠΎ ΡΠΈΠΏΠ°.
ΠΠ΄Π½Π°ΠΊΠΎ, Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΡ Π½Π΅ ΠΎΡΠΌΠ΅Π½ΡΠ΅Ρ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΡ Π±Π°Π·ΠΎΠ²ΡΡ ΠΏΡΠΈΠ½ΡΠΈΠΏΠΎΠ² ΡΠ°Π±ΠΎΡΡ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ°. ΠΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π»ΠΈΡΡ ΡΠΊΡΡΠ²Π°Π΅Ρ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΡ, Π½ΠΎ Π½Π΅ Π·Π°ΠΌΠ΅Π½ΡΠ΅Ρ Π·Π½Π°Π½ΠΈΡ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ. Π£ΡΠΏΠ΅ΡΠ½ΠΎΠ΅ ΠΎΠ±ΡΡΠ΅Π½ΠΈΠ΅ STM32 CubeMX ΡΡΠ΅Π±ΡΠ΅Ρ Π±Π°Π»Π°Π½ΡΠ° ΠΌΠ΅ΠΆΠ΄Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π³ΠΎΡΠΎΠ²ΡΡ ΡΠ΅ΡΠ΅Π½ΠΈΠΉ ΠΈ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ΠΌ ΡΠΎΠ³ΠΎ, ΡΡΠΎ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ Β«ΠΏΠΎΠ΄ ΠΊΠ°ΠΏΠΎΡΠΎΠΌΒ» ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°.
Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° ΠΈ ΠΏΠ΅ΡΠ²ΠΈΡΠ½Π°Ρ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ ΡΡΠ΅Π΄Ρ
ΠΠ΅ΡΠ²ΡΠΌ ΡΠ°Π³ΠΎΠΌ Π² ΠΎΡΠ²ΠΎΠ΅Π½ΠΈΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ° ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½Π°Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ. ΠΠ°ΠΌ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΊΠ°ΡΠ°ΡΡ ΡΡΡΠ°Π½ΠΎΠ²ΡΠΈΠΊ STM32CubeMX Ρ ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠ°ΠΉΡΠ° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Ρ ΠΈΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ², Π΅ΡΠ»ΠΈ Π²Ρ ΡΠ°Π±ΠΎΡΠ°Π΅ΡΠ΅ Π² ΡΡΠ΅Π΄Π΅ Linux. ΠΠΎΡΠ»Π΅ ΠΈΠ½ΡΡΠ°Π»Π»ΡΡΠΈΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΠΏΠΎΡΡΠ΅Π±ΡΠ΅Ρ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ² ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ Π΄Π»Ρ Π²ΡΠ±ΡΠ°Π½Π½ΡΡ ΡΠ΅ΡΠΈΠΉ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠΎΠ².
ΠΡΠΈ Π·Π°ΠΏΡΡΠΊΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π²Ρ ΡΠ²ΠΈΠ΄ΠΈΡΠ΅ ΠΎΠΊΠ½ΠΎ Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΡ Π²ΡΠ±ΠΎΡΠ° ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠ³ΠΎ ΡΡΡΡΠΎΠΉΡΡΠ²Π°. ΠΠ΄Π΅ΡΡ Π²Π°ΠΆΠ½ΠΎ ΠΎΠ±ΡΠ°ΡΠ°ΡΡ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Π½Π°Π»ΠΈΡΠΈΠ΅ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ² MCU Package, ΡΠ°ΠΊ ΠΊΠ°ΠΊ Π±Π΅Π· Π½ΠΈΡ
Π²Ρ Π½Π΅ ΡΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎ Π½Π°ΡΡΡΠΎΠΈΡΡ ΠΏΠ΅ΡΠΈΡΠ΅ΡΠΈΡ. ΠΡΠ»ΠΈ Π½ΡΠΆΠ½ΡΠΉ ΡΠΈΠΏ ΠΎΡΡΡΡΡΡΠ²ΡΠ΅Ρ Π² ΡΠΏΠΈΡΠΊΠ΅, Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ Π½Π°ΠΆΠ°ΡΡ ΠΊΠ½ΠΎΠΏΠΊΡ Get MCU Packages ΠΈ Π΄ΠΎΠΆΠ΄Π°ΡΡΡΡ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ Π·Π°Π³ΡΡΠ·ΠΊΠΈ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ
.
ΠΡΠ±ΠΎΡ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ° ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡΡΡΠ΅ΡΡΠ²ΠΈΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌΠΈ ΡΠΏΠΎΡΠΎΠ±Π°ΠΌΠΈ: Π²ΡΡΡΠ½ΡΡ ΡΠ΅ΡΠ΅Π· Π΄Π΅ΡΠ΅Π²ΠΎ ΡΠ΅ΡΠΈΠΉ, ΠΏΠΎ ΠΏΠΎΠΈΡΠΊΡ ΠΏΠΎ Π½Π°Π·Π²Π°Π½ΠΈΡ ΠΈΠ»ΠΈ ΡΠ΅ΡΠ΅Π· Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ Π²ΡΠ±ΠΎΡ ΠΊΠΎΡΠΏΡΡΠ° ΠΈ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π° Π²ΡΠ²ΠΎΠ΄ΠΎΠ². ΠΠ»Ρ Π½Π°ΡΠ°Π»Π° ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ Π»ΡΡΡΠ΅ Π²ΡΠ±ΡΠ°ΡΡ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΡ ΡΠ΅ΡΠΈΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, STM32F4 ΠΈΠ»ΠΈ STM32H7, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΏΠΎ Π½ΠΈΠΌ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π½Π°ΠΈΠ±ΠΎΠ»ΡΡΠ΅Π΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ ΠΈ ΠΏΡΠΈΠΌΠ΅ΡΠΎΠ².
β οΈ ΠΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅: ΠΠ΅ΡΠ΅Π΄ Π½Π°ΡΠ°Π»ΠΎΠΌ ΡΠ°Π±ΠΎΡΡ ΡΠ±Π΅Π΄ΠΈΡΠ΅ΡΡ, ΡΡΠΎ Π²Π°ΡΠ° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½Π°Ρ ΡΠΈΡΡΠ΅ΠΌΠ° ΠΈΠΌΠ΅Π΅Ρ Π°ΠΊΡΡΠ°Π»ΡΠ½ΡΠ΅ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΡ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ, ΠΈΠ½Π°ΡΠ΅ Π·Π°Π³ΡΡΠ·ΠΊΠ° ΠΏΠ°ΠΊΠ΅ΡΠΎΠ² ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π·Π°Π±Π»ΠΎΠΊΠΈΡΠΎΠ²Π°Π½Π° Π°Π½ΡΠΈΠ²ΠΈΡΡΡΠΎΠΌ ΠΈΠ»ΠΈ Π±ΡΠ°Π½Π΄ΠΌΠ°ΡΡΡΠΎΠΌ.
- π₯ Π‘ΠΊΠ°ΡΠ°ΠΉΡΠ΅ ΡΡΡΠ°Π½ΠΎΠ²ΡΠΈΠΊ Ρ ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠ°ΠΉΡΠ° STMicroelectronics.
- π ΠΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΠ΅ ΠΈΠ½ΡΠ΅ΡΠ½Π΅Ρ Π΄Π»Ρ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ² ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ MCU.
- π₯οΈ ΠΡΠ±Π΅ΡΠΈΡΠ΅ ΡΠ΄ΠΎΠ±Π½ΡΠΉ ΡΠΏΠΎΡΠΎΠ± ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ: Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΈΠ»ΠΈ ΠΏΠΎΠΈΡΠΊΠΎΠ²ΡΠΉ.
ΠΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΡ ΡΠ°ΡΠΎΠ² ΠΈ ΠΏΠ΅ΡΠΈΡΠ΅ΡΠΈΠΈ
Π‘Π΅ΡΠ΄ΡΠ΅ΠΌ Π»ΡΠ±ΠΎΠ³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ° Π½Π° ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ΅ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ°ΠΊΡΠΎΠ²Π°Ρ ΡΠ°ΡΡΠΎΡΠ°. ΠΠΊΠ»Π°Π΄ΠΊΠ° System Core ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΡΠ°Π·Π΄Π΅Π» RCC (Reset and Clock Control), Π³Π΄Π΅ ΠΏΡΠΎΠΈΡΡ
ΠΎΠ΄ΠΈΡ Π½Π°ΡΡΡΠΎΠΉΠΊΠ° ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠ° ΡΠ°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ. ΠΠ°ΠΌ Π½ΡΠΆΠ½ΠΎ Π²ΡΠ±ΡΠ°ΡΡ ΠΌΠ΅ΠΆΠ΄Ρ Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΠΌ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠΎΠΌ HSI ΠΈ Π²Π½Π΅ΡΠ½ΠΈΠΌ ΠΊΠ²Π°ΡΡΠ΅Π²ΡΠΌ ΡΠ΅Π·ΠΎΠ½Π°ΡΠΎΡΠΎΠΌ HSE, ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ Π±ΠΎΠ»ΡΡΡΡ ΡΠΎΡΠ½ΠΎΡΡΡ.
ΠΠΎΡΠ»Π΅ Π²ΡΠ±ΠΎΡΠ° ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠ° Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π½Π°ΡΡΡΠΎΠΈΡΡ ΡΠΈΡΡΠ΅ΠΌΡ ΡΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΡ ΡΠ°ΡΡΠΎΡΡ PLL (Phase Locked Loop). ΠΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΡΠ°ΡΡΡΠΈΡΡΠ²Π°Π΅Ρ ΠΊΠΎΡΡΡΠΈΡΠΈΠ΅Π½ΡΡ ΡΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΡ ΠΈ Π΄Π΅Π»Π΅Π½ΠΈΡ, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΠ΅Π»Π΅Π²ΡΡ ΡΠ°ΡΡΠΎΡΡ ΡΠ΄ΡΠ°. ΠΡΠ»ΠΈ ΡΠ°ΡΡΠ΅ΡΡ Π½Π΅ Π΄Π°ΡΡ ΡΠ΅Π»ΡΡ ΡΠΈΡΠ΅Π», ΡΠΈΡΡΠ΅ΠΌΠ° ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΈΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΠΊΡΠ°ΡΠ½ΡΠΌ ΡΠ²Π΅ΡΠΎΠΌ, ΡΠΈΠ³Π½Π°Π»ΠΈΠ·ΠΈΡΡΡ ΠΎ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π΄ΠΎΡΡΠΈΠΆΠ΅Π½ΠΈΡ ΡΠΎΡΠ½ΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ.
ΠΡΠ°Π²ΠΈΠ»ΡΠ½Π°Ρ Π½Π°ΡΡΡΠΎΠΉΠΊΠ° ΡΠ°ΠΊΡΠΎΠ²ΠΎΠΉ ΡΠ°ΡΡΠΎΡΡ ΠΊΡΠΈΡΠΈΡΠ΅ΡΠΊΠΈ Π²Π°ΠΆΠ½Π° Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ ΡΠ°ΠΉΠΌΠ΅ΡΠΎΠ², ΠΊΠΎΠΌΠΌΡΠ½ΠΈΠΊΠ°ΡΠΈΠΎΠ½Π½ΡΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠ² ΠΈ Π°Π½Π°Π»ΠΎΠ³ΠΎ-ΡΠΈΡΡΠΎΠ²ΡΡ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ. ΠΡΠΈΠ±ΠΊΠΈ Π·Π΄Π΅ΡΡ ΠΏΡΠΈΠ²Π΅Π΄ΡΡ ΠΊ Π½Π΅ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎΠΉ ΡΠ°Π±ΠΎΡΠ΅ Π²ΡΠ΅Π³ΠΎ ΡΡΡΡΠΎΠΉΡΡΠ²Π°, Π΄Π°ΠΆΠ΅ Π΅ΡΠ»ΠΈ ΠΊΠΎΠ΄ Π½Π°ΠΏΠΈΡΠ°Π½ Π²Π΅ΡΠ½ΠΎ. ΠΡΠ΅Π³Π΄Π° ΠΏΡΠΎΠ²Π΅ΡΡΠΉΡΠ΅ ΠΈΡΠΎΠ³ΠΎΠ²ΡΡ ΡΠ°ΡΡΠΎΡΡ Π² Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΌ ΠΎΠΊΠ½Π΅ ΠΏΠ΅ΡΠ΅Π΄ ΡΠΊΡΠΏΠΎΡΡΠΎΠΌ ΠΊΠΎΠ΄Π°.
ΠΠ°Π»Π΅Π΅ ΡΠ»Π΅Π΄ΡΠ΅Ρ Π½Π°ΡΡΡΠΎΠΉΠΊΠ° Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ ΠΏΠ΅ΡΠΈΡΠ΅ΡΠΈΠΈ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΅ΡΠ»ΠΈ Π²Π°ΠΌ Π½ΡΠΆΠ΅Π½ Π²ΡΠ²ΠΎΠ΄ ΡΠ²Π΅ΡΠΎΠ΄ΠΈΠΎΠ΄ΠΎΠ², Π²Ρ Π²ΡΠ±ΠΈΡΠ°Π΅ΡΠ΅ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠ΅ ΠΏΠΈΠ½Ρ ΠΈ Π½Π°Π·Π½Π°ΡΠ°Π΅ΡΠ΅ ΠΈΠΌ ΡΠ΅ΠΆΠΈΠΌ GPIO_Output. ΠΠ»Ρ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΡΡ
ΠΏΠΎΡΡΠΎΠ² (UART, SPI, I2C) ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅Ρ Π΄ΠΎΡΡΡΠΏΠ½ΡΠ΅ ΠΏΠΈΠ½Ρ ΠΈ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π°.
- β±οΈ ΠΠ°ΡΡΡΠΎΠΉΡΠ΅ ΠΈΡΡΠΎΡΠ½ΠΈΠΊ ΡΠ°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ (HSI ΠΈΠ»ΠΈ HSE) Π² ΡΠ°Π·Π΄Π΅Π»Π΅ RCC.
- π§ ΠΡΠΎΠ²Π΅ΡΡΡΠ΅ ΠΊΠΎΡΡΡΠΈΡΠΈΠ΅Π½ΡΡ PLL Π΄Π»Ρ Π΄ΠΎΡΡΠΈΠΆΠ΅Π½ΠΈΡ ΡΠ΅Π»Π΅Π²ΠΎΠΉ ΡΠ°ΡΡΠΎΡΡ ΡΠ΄ΡΠ°.
- π‘ ΠΠ°Π·Π½Π°ΡΡΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ Π½Π° ΠΏΠΈΠ½Ρ ΡΠ΅ΡΠ΅Π· Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΡΡ ΠΊΠ°ΡΡΡ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ°.
- ΠΠ½ΡΡΡΠ΅Π½Π½ΠΈΠΉ HSI
- ΠΠ½Π΅ΡΠ½ΠΈΠΉ HSE
- ΠΠ½Π΅ΡΠ½ΠΈΠΉ LSE
- ΠΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ PLL
βοΈ ΠΡΠΎΠ²Π΅ΡΠΊΠ° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ ΡΠ°ΡΠΎΠ²
Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ Π΄Π΅ΡΠ΅Π²ΠΎ ΡΠ°ΡΡΠΎΡ?
ΠΠ΅ΡΠ΅Π²ΠΎ ΡΠ°ΡΡΠΎΡ Π² STM32CubeMX Π½Π°Π³Π»ΡΠ΄Π½ΠΎ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΠΏΡΡΡ ΡΠΈΠ³Π½Π°Π»Π° ΠΎΡ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠ° Π΄ΠΎ ΡΠ΄ΡΠ° ΠΈ ΠΏΠ΅ΡΠΈΡΠ΅ΡΠΈΠΈ. ΠΠ°ΠΆΠ΄ΡΠΉ ΡΠ·Π΅Π» Π΄Π΅ΡΠ΅Π²Π° ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ Π΄Π΅Π»ΠΈΡΠ΅Π»ΡΡ
ΠΈ ΡΠΌΠ½ΠΎΠΆΠΈΡΠ΅Π»ΡΡ
, ΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΈΠ½ΠΆΠ΅Π½Π΅ΡΡ ΡΠ²ΠΈΠ΄Π΅ΡΡ, ΠΊΠ°ΠΊ ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΏΠΎΠ»ΡΡΠ°Π΅ΡΡΡ ΠΈΡΠΎΠ³ΠΎΠ²Π°Ρ ΡΠ°ΡΡΠΎΡΠ° Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΌΠΎΠ΄ΡΠ»Ρ. ΠΡΠΎ Π½Π΅Π·Π°ΠΌΠ΅Π½ΠΈΠΌΡΠΉ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ Π΄Π»Ρ ΠΎΡΠ»Π°Π΄ΠΊΠΈ ΡΠ°ΠΉΠΌΠΈΠ½Π³ΠΎΠ².-->
ΠΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π²ΠΈΠ΄Π΅ΡΡ Π²Π·Π°ΠΈΠΌΠΎΠ·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ Π²ΡΠ²ΠΎΠ΄ΠΎΠ². ΠΡΠ»ΠΈ ΠΏΠΈΠ½ ΡΠΆΠ΅ Π·Π°Π½ΡΡ Π΄ΡΡΠ³ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ, ΠΎΠ½ Π±ΡΠ΄Π΅Ρ ΠΏΠΎΠΌΠ΅ΡΠ΅Π½ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΌ ΡΠ²Π΅ΡΠΎΠΌ, ΠΈ Π½Π°Π·Π½Π°ΡΠΈΡΡ Π΅Π³ΠΎ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ Π½Π΅ ΠΏΠΎΠ»ΡΡΠΈΡΡΡ. ΠΡΠΎ ΠΏΡΠ΅Π΄ΠΎΡΠ²ΡΠ°ΡΠ°Π΅Ρ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΎΡΠΈΠ±ΠΊΠΈ Π½Π° ΡΡΠ°ΠΏΠ΅ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΡ
Π΅ΠΌΡ.
β οΈ ΠΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅
ΠΠ΅ ΠΈΠ³Π½ΠΎΡΠΈΡΡΠΉΡΠ΅ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΡ ΠΎ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΠ°Ρ Π²ΡΠ²ΠΎΠ΄ΠΎΠ², ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡΡ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ ΠΊ ΠΊΠΎΡΠΎΡΠΊΠΈΠΌ Π·Π°ΠΌΡΠΊΠ°Π½ΠΈΡΠΌ Π½Π° ΠΏΠ»Π°ΡΠ΅ ΠΈΠ»ΠΈ Π½Π΅ΡΠ°Π±ΠΎΡΠΎΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΠΈ ΠΏΠ΅ΡΠΈΡΠ΅ΡΠΈΠΈ ΠΏΠΎΡΠ»Π΅ ΠΏΡΠΎΡΠΈΠ²ΠΊΠΈ.
ΠΠ΅Π½Π΅ΡΠ°ΡΠΈΡ ΠΊΠΎΠ΄Π° ΠΈ Π½Π°ΡΡΡΠΎΠΉΠΊΠ° IDE
ΠΠΎΡΠ»Π΅ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΠΎΠΉ ΡΠ°ΡΡΠΈ Π½Π°ΡΡΡΠΏΠ°Π΅Ρ ΡΡΠ°ΠΏ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ ΠΈΡΡ
ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°. ΠΠ°ΠΆΠΌΠΈΡΠ΅ ΠΊΠ½ΠΎΠΏΠΊΡ Project Manager Π² Π»Π΅Π²ΠΎΠΉ ΠΏΠ°Π½Π΅Π»ΠΈ, ΡΡΠΎΠ±Ρ Π½Π°ΡΡΡΠΎΠΈΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ Π±ΡΠ΄ΡΡΠ΅Π³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ°. ΠΠ΄Π΅ΡΡ Π²Ρ ΡΠΊΠ°Π·ΡΠ²Π°Π΅ΡΠ΅ ΠΏΡΡΡ ΠΊ ΠΏΠ°ΠΏΠΊΠ΅, ΠΈΠΌΡ ΠΏΡΠΎΠ΅ΠΊΡΠ° ΠΈ Π²ΡΠ±ΠΈΡΠ°Π΅ΡΠ΅ ΡΡΠ΅Π΄Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ (IDE), Π² ΠΊΠΎΡΠΎΡΠΎΠΉ Π±ΡΠ΄Π΅ΡΠ΅ ΡΠ°Π±ΠΎΡΠ°ΡΡ.
ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΠΌΡΠ΅ ΡΡΠ΅Π΄Ρ Π²ΠΊΠ»ΡΡΠ°ΡΡ Keil MDK, IAR Embedded Workbench, STM32CubeIDE ΠΈ Π΄ΡΡΠ³ΠΈΠ΅. ΠΡΠ±ΠΎΡ Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ Π²Π°ΡΠΈΡ ΠΏΡΠ΅Π΄ΠΏΠΎΡΡΠ΅Π½ΠΈΠΉ ΠΈ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΠΉ ΠΏΡΠΎΠ΅ΠΊΡΠ°. ΠΡΠ»ΠΈ Π²Ρ Π½ΠΎΠ²ΠΈΡΠΎΠΊ, ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ STM32CubeIDE, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½Π° Π±Π΅ΡΠΏΠ»Π°ΡΠ½Π° ΠΈ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΠΎΠ²Π°Π½Π° Ρ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠΌ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ.
ΠΠ°ΠΆΠ½ΡΠΌ Π°ΡΠΏΠ΅ΠΊΡΠΎΠΌ ΡΠ²Π»ΡΠ΅ΡΡΡ Π²ΡΠ±ΠΎΡ Π²Π΅ΡΡΠΈΠΈ Toolchain (ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ°) ΠΈ Π½Π°ΡΡΡΠΎΠΉΠΊΠ° ΠΏΠ°ΠΏΠΎΠΊ Π΄Π»Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°. ΠΠ½ΡΡΡΡΠΌΠ΅Π½Ρ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ, Π³Π΄Π΅ Π±ΡΠ΄ΡΡ Π½Π°Ρ
ΠΎΠ΄ΠΈΡΡΡΡ Π²Π°ΡΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠ΅ ΡΠ°ΠΉΠ»Ρ, ΡΡΠΎΠ±Ρ ΠΏΡΠΈ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎΠΉ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ ΠΊΠΎΠ΄Π° ΠΎΠ½ΠΈ Π½Π΅ Π±ΡΠ»ΠΈ ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΠΈΡΠ°Π½Ρ. ΠΠ±ΡΡΠ½ΠΎ ΡΡΠΎ ΡΠ°ΠΉΠ»Ρ Ρ ΡΡΡΡΠΈΠΊΡΠ°ΠΌΠΈ main.c ΠΈ usart.c.
- π ΠΡΠ±Π΅ΡΠΈΡΠ΅ ΡΠ΅Π»Π΅Π²ΡΡ ΠΏΠ°ΠΏΠΊΡ Π΄Π»Ρ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΡ ΠΏΡΠΎΠ΅ΠΊΡΠ°.
- π οΈ Π£ΠΊΠ°ΠΆΠΈΡΠ΅ ΠΏΡΠ΅Π΄ΠΏΠΎΡΠΈΡΠ°Π΅ΠΌΡΡ ΡΡΠ΅Π΄Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ (IDE).
- π ΠΠ°ΡΡΡΠΎΠΉΡΠ΅ ΡΡΡΡΠΊΡΡΡΡ ΠΏΠ°ΠΏΠΎΠΊ Π΄Π»Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°.
ΠΠ°ΠΆΠΌΠΈΡΠ΅ ΠΊΠ½ΠΎΠΏΠΊΡ Generate Code, ΠΈ ΡΠΈΡΡΠ΅ΠΌΠ° ΡΠΎΠ·Π΄Π°ΡΡ Π²ΡΡ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΡΡ ΡΡΡΡΠΊΡΡΡΡ ΡΠ°ΠΉΠ»ΠΎΠ². Π ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ Π²Ρ ΠΏΠΎΠ»ΡΡΠΈΡΠ΅ Π³ΠΎΡΠΎΠ²ΡΠΉ ΠΏΡΠΎΠ΅ΠΊΡ Ρ ΡΡΠ½ΠΊΡΠΈΡΠΌΠΈ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ, Π½Π°ΡΡΡΠΎΠΉΠΊΠΎΠΉ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΠΉ ΠΈ Π·Π°Π³Π»ΡΡΠΊΠ°ΠΌΠΈ Π΄Π»Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°. ΠΡΠΎ ΡΡΠ½Π΄Π°ΠΌΠ΅Π½Ρ, Π½Π° ΠΊΠΎΡΠΎΡΠΎΠΌ ΡΡΡΠΎΠΈΡΡΡ Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠ°Ρ Π»ΠΎΠ³ΠΈΠΊΠ° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
ΠΠ΅Π½Π΅ΡΠ°ΡΠΈΡ ΠΊΠΎΠ΄Π° ΡΠΎΠ·Π΄Π°Π΅Ρ ΠΊΠ°ΡΠΊΠ°Ρ ΠΏΡΠΎΠ΅ΠΊΡΠ°, Π½ΠΎ Π½Π΅ Π·Π°ΠΌΠ΅Π½ΡΠ΅Ρ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠ΅ Π±ΠΈΠ·Π½Π΅Ρ-Π»ΠΎΠ³ΠΈΠΊΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΡΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠ°Π·ΠΌΠ΅ΡΠ°ΡΡΡΡ Π² ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎ ΠΎΡΠ²Π΅Π΄Π΅Π½Π½ΡΡ ΠΌΠ΅ΡΡΠ°Ρ .
Π Π°Π±ΠΎΡΠ° Ρ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΡΠΌΠΈ ΠΈ HAL Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΎΠΉ
ΠΠ΄Π½ΠΎΠΉ ΠΈΠ· ΠΊΠ»ΡΡΠ΅Π²ΡΡ
ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠ΅ΠΉ STM32CubeMX ΡΠ²Π»ΡΠ΅ΡΡΡ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΡ ΠΊΠΎΠ΄Π° Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ HAL (Hardware Abstraction Layer). ΠΡΠ° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Π²ΡΡΠΎΠΊΠΎΡΡΠΎΠ²Π½Π΅Π²ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ ΠΏΠ΅ΡΠΈΡΠ΅ΡΠΈΠ΅ΠΉ, Π°Π±ΡΡΡΠ°Π³ΠΈΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠ° ΠΎΡ ΡΠ°Π±ΠΎΡΡ Ρ ΡΠ΅Π³ΠΈΡΡΡΠ°ΠΌΠΈ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΄Π»Ρ ΠΎΡΠΏΡΠ°Π²ΠΊΠΈ Π΄Π°Π½Π½ΡΡ
ΡΠ΅ΡΠ΅Π· UART Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π²ΡΠ·Π²Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΡ HAL_UART_Transmit.
ΠΡΠΈ Π°ΠΊΡΠΈΠ²Π°ΡΠΈΠΈ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΠΉ Π² Π½Π°ΡΡΡΠΎΠΉΠΊΠ°Ρ
ΠΏΠ΅ΡΠΈΡΠ΅ΡΠΈΠΈ, ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ Π½Π°ΡΡΡΠ°ΠΈΠ²Π°Π΅Ρ Π²Π΅ΠΊΡΠΎΡΠ½ΡΡ ΡΠ°Π±Π»ΠΈΡΡ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΠΉ ΠΈ Π³Π΅Π½Π΅ΡΠΈΡΡΠ΅Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ Π² ΡΠ°ΠΉΠ»Π΅ stm32fxxx_it.c. ΠΠ°ΠΌ ΠΎΡΡΠ°Π΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ Π»ΠΎΠ³ΠΈΠΊΡ Π² ΡΠ»Π°Π±ΡΡ
ΡΡΠ½ΠΊΡΠΈΡΡ
(weak functions), ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ
Π² main.c ΠΈΠ»ΠΈ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ
ΡΠ°ΠΉΠ»Π°Ρ
Π΄ΡΠ°ΠΉΠ²Π΅ΡΠΎΠ².
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ HAL Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΡΠΊΠΎΡΡΠ΅Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΡ, Π½ΠΎ ΠΌΠΎΠΆΠ΅Ρ ΡΠ²Π΅Π»ΠΈΡΠΈΠ²Π°ΡΡ ΠΎΠ±ΡΠ΅ΠΌ ΠΊΠΎΠ΄Π° ΠΈ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ ΠΏΠΎ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ Ρ ΡΠ΅Π³ΠΈΡΡΡΠ°ΠΌΠΈ. ΠΠ°ΠΆΠ½ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°ΡΡ ΠΊΠΎΠΌΠΏΡΠΎΠΌΠΈΡΡΡ: ΡΠΊΠΎΡΠΎΡΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΏΡΠΎΡΠΈΠ² ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ. ΠΠ»Ρ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΡΡΠ° ΡΠ°Π·Π½ΠΈΡΠ° Π½Π΅Π·Π°ΠΌΠ΅ΡΠ½Π°, Π½ΠΎ Π² ΡΠΈΡΡΠ΅ΠΌΠ°Ρ ΡΠ΅Π°Π»ΡΠ½ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Ρ ΠΆΠ΅ΡΡΠΊΠΈΠΌΠΈ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡΠΌΠΈ ΠΎΠ½Π° ΠΌΠΎΠΆΠ΅Ρ ΡΡΠ°ΡΡ ΠΊΡΠΈΡΠΈΡΠ½ΠΎΠΉ.
Π’Π°ΠΊΠΆΠ΅ ΡΡΠΎΠΈΡ ΠΎΠ±ΡΠ°ΡΠΈΡΡ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Π½Π°ΡΡΡΠΎΠΉΠΊΡ ΠΏΡΠΈΠΎΡΠΈΡΠ΅ΡΠΎΠ² ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΠΉ Π² ΡΠ°Π·Π΄Π΅Π»Π΅ NVIC (Nested Vectored Interrupt Controller). ΠΡΠ°Π²ΠΈΠ»ΡΠ½Π°Ρ ΠΈΠ΅ΡΠ°ΡΡ ΠΈΡ ΠΏΡΠΈΠΎΡΠΈΡΠ΅ΡΠΎΠ² Π³Π°ΡΠ°Π½ΡΠΈΡΡΠ΅Ρ, ΡΡΠΎ ΠΊΡΠΈΡΠΈΡΠ΅ΡΠΊΠΈ Π²Π°ΠΆΠ½ΡΠ΅ ΡΠΎΠ±ΡΡΠΈΡ Π±ΡΠ΄ΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ°Π½Ρ Π²ΠΎΠ²ΡΠ΅ΠΌΡ, Π½Π΅ Π±Π»ΠΎΠΊΠΈΡΡΡ ΠΌΠ΅Π½Π΅Π΅ Π²Π°ΠΆΠ½ΡΠ΅ Π·Π°Π΄Π°ΡΠΈ.
void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)
{
if (huart->Instance == USART1)
{
// ΠΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΠΎΠ³ΠΎ Π±Π°ΠΉΡΠ°
}
}
- π ΠΠΊΡΠΈΠ²ΠΈΡΡΠΉΡΠ΅ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΡ Π² Π½Π°ΡΡΡΠΎΠΉΠΊΠ°Ρ ΠΏΠ΅ΡΠΈΡΠ΅ΡΠΈΠΈ.
- βοΈ ΠΠ°ΡΡΡΠΎΠΉΡΠ΅ ΠΏΡΠΈΠΎΡΠΈΡΠ΅ΡΡ Π² NVIC Π΄Π»Ρ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎΠΉ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΡΠΎΠ±ΡΡΠΈΠΉ.
- π ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ HAL Π΄Π»Ρ ΡΠΏΡΠΎΡΠ΅Π½ΠΈΡ ΡΠ°Π±ΠΎΡΡ Ρ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ°ΠΌΠΈ.
Π ΡΠ΅ΠΌ ΡΠ°Π·Π½ΠΈΡΠ° ΠΌΠ΅ΠΆΠ΄Ρ HAL ΠΈ LL Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΠΌΠΈ?
HAL (Hardware Abstraction Layer) ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Π²ΡΡΠΎΠΊΠΎΡΡΠΎΠ²Π½Π΅Π²ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ, ΡΠ΄ΠΎΠ±Π½ΡΠ΅ Π΄Π»Ρ Π±ΡΡΡΡΠΎΠΉ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΈ ΠΏΠ΅ΡΠ΅Π½ΠΎΡΠ° ΠΊΠΎΠ΄Π° ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ°Π·Π½ΡΠΌΠΈ ΠΌΠΎΠ΄Π΅Π»ΡΠΌΠΈ. LL (Low Layer) Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π±Π»ΠΈΠΆΠ΅ ΠΊ ΡΠ΅Π³ΠΈΡΡΡΠ°ΠΌ, ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Ρ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΠΈ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΡΠΉ ΡΠ°Π·ΠΌΠ΅Ρ ΠΊΠΎΠ΄Π°, Π½ΠΎ ΡΡΠ΅Π±ΡΠ΅Ρ Π±ΠΎΠ»Π΅Π΅ Π³Π»ΡΠ±ΠΎΠΊΠΈΡ
Π·Π½Π°Π½ΠΈΠΉ Π°ΡΡ
ΠΈΡΠ΅ΠΊΡΡΡΡ.-->
ΠΡΠ»Π°Π΄ΠΊΠ° ΠΈ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ Ρ Π²Π½Π΅ΡΠ½ΠΈΠΌ ΠΌΠΈΡΠΎΠΌ
ΠΠΎΡΠ»Π΅ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΠΏΡΠΎΡΠΈΠ²ΠΊΠΈ Π½Π° ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ ΡΠ°Π±ΠΎΡΠΎΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΡ ΡΠΈΡΡΠ΅ΠΌΡ. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΎΡΠ»Π°Π΄ΡΠΈΠΊ, ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½Π½ΡΠΉ ΡΠ΅ΡΠ΅Π· ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ SWD ΠΈΠ»ΠΈ JTAG. Π ΡΡΠ΅Π΄Π΅ IDE ΠΌΠΎΠΆΠ½ΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΡΠΎΡΠΊΠΈ ΠΎΡΡΠ°Π½ΠΎΠ²Π°, ΠΏΡΠΎΡΠΌΠ°ΡΡΠΈΠ²Π°ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ
Π² ΡΠ΅Π°Π»ΡΠ½ΠΎΠΌ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΈ Π°Π½Π°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΡΡΠ΅ΠΊ Π²ΡΠ·ΠΎΠ²ΠΎΠ².
ΠΡΠ»ΠΈ Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ STM32CubeMonitor ΠΈΠ»ΠΈ Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΡΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΠΈΠ·ΡΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ Π΄Π°Π½Π½ΡΠ΅ Ρ Π΄Π°ΡΡΠΈΠΊΠΎΠ² Π±Π΅Π· Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ ΠΏΠΈΡΠ°ΡΡ ΠΊΠΎΠ΄ Π΄Π»Ρ Π²ΡΠ²ΠΎΠ΄Π° Π½Π° ΡΠΊΡΠ°Π½. ΠΡΠΎ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ Π½Π° ΡΡΠ°ΠΏΠ΅ ΠΎΡΠ»Π°Π΄ΠΊΠΈ Π°Π»Π³ΠΎΡΠΈΡΠΌΠΎΠ² ΠΈ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎΡΡΠΈ Π½Π°ΡΡΡΠΎΠ΅ΠΊ Π°Π½Π°Π»ΠΎΠ³ΠΎΠ²ΡΡ
Π²Ρ
ΠΎΠ΄ΠΎΠ².
Π§Π°ΡΡΠΎΠΉ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΎΠΉ ΠΏΡΠΈ ΠΎΡΠ»Π°Π΄ΠΊΠ΅ ΡΠ²Π»ΡΠ΅ΡΡΡ Π½Π΅ΡΠΎΠ²ΠΏΠ°Π΄Π΅Π½ΠΈΠ΅ Π½Π°ΡΡΡΠΎΠ΅ΠΊ ΠΎΡΠ»Π°Π΄ΡΠΈΠΊΠ° Π² IDE ΠΈ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ ΡΠΈΠΏΠ°. Π£Π±Π΅Π΄ΠΈΡΠ΅ΡΡ, ΡΡΠΎ ΡΠ΅ΠΆΠΈΠΌ ΡΠ°Π±ΠΎΡΡ ΠΎΡΠ»Π°Π΄ΡΠΈΠΊΠ° (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Reset and Run) ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ Π²Π°ΡΠΈΠΌ ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΡΠΌ. Π’Π°ΠΊΠΆΠ΅ ΠΏΡΠΎΠ²Π΅ΡΡΡΠ΅, Π½Π΅ ΠΎΡΠΊΠ»ΡΡΠ΅Π½Π° Π»ΠΈ ΠΏΠ΅ΡΠΈΡΠ΅ΡΠΈΡ Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ ΠΎΡΠ»Π°Π΄ΠΊΠΈ, ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ ΠΊ Π·Π°Π²ΠΈΡΠ°Π½ΠΈΡ ΡΠ°ΠΉΠΌΠ΅ΡΠΎΠ².
ΠΠ½ΡΡΡΡΠΌΠ΅Π½Ρ
ΠΠ°Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅
ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅
STM32CubeIDE
ΠΠΎΠΌΠΏΠ»Π΅ΠΊΡΠ½Π°Ρ ΡΡΠ΅Π΄Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ
ΠΠΊΠ»ΡΡΠ°Π΅Ρ ΠΎΡΠ»Π°Π΄ΡΠΈΠΊ ΠΈ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡ ΠΊΠΎΠ΄Π°
OpenOCD
ΠΡΠ»Π°Π΄ΡΠΈΠΊ Ρ ΠΎΡΠΊΡΡΡΡΠΌ ΠΈΡΡ
ΠΎΠ΄Π½ΡΠΌ ΠΊΠΎΠ΄ΠΎΠΌ
Π Π°Π±ΠΎΡΠ°Π΅Ρ Ρ GDB ΠΈ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠΌΠΈ Π°Π΄Π°ΠΏΡΠ΅ΡΠ°ΠΌΠΈ
J-Link GDB Server
ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ΅ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΠ΅ Π΄Π»Ρ ΠΎΡΠ»Π°Π΄ΡΠΈΠΊΠ° SEGGER
ΠΡΡΠΎΠΊΠ°Ρ ΡΠΊΠΎΡΠΎΡΡΡ ΠΈ ΡΡΠ°Π±ΠΈΠ»ΡΠ½ΠΎΡΡΡ
ST-Link Utility
ΠΡΠΎΡΠΈΠ²ΠΊΠ° ΠΈ Π±Π°Π·ΠΎΠ²Π°Ρ ΠΎΡΠ»Π°Π΄ΠΊΠ°
Π£ΡΡΠ°ΡΠ΅Π²Π°Π΅Ρ, Π·Π°ΠΌΠ΅Π½ΡΠ΅ΡΡΡ STM32CubeProgrammer
- π ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΡΠΎΡΠΊΠΈ ΠΎΡΡΠ°Π½ΠΎΠ²Π° Π΄Π»Ρ Π°Π½Π°Π»ΠΈΠ·Π° Π»ΠΎΠ³ΠΈΠΊΠΈ ΡΠ°Π±ΠΎΡΡ.
- π ΠΠΎΠ΄ΠΊΠ»ΡΡΠ°ΠΉΡΠ΅ ΠΎΡΡΠΈΠ»Π»ΠΎΠ³ΡΠ°Ρ Π΄Π»Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΡΠΈΠ³Π½Π°Π»ΠΎΠ² Π½Π° Π²ΡΠ²ΠΎΠ΄Π°Ρ
.
- π Π£Π±Π΅Π΄ΠΈΡΠ΅ΡΡ Π² ΡΡΠ°Π±ΠΈΠ»ΡΠ½ΠΎΡΡΠΈ ΠΏΠΈΡΠ°Π½ΠΈΡ ΠΈ ΠΊΠ°ΡΠ΅ΡΡΠ²Π° ΡΠΈΠ³Π½Π°Π»Π° SWD.
β οΈ ΠΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅
ΠΡΠΈ ΠΎΡΠ»Π°Π΄ΠΊΠ΅ Π½Π° Π²ΡΡΠΎΠΊΠΈΡ ΡΠ°ΡΡΠΎΡΠ°Ρ ΡΠ°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠ±Π΅Π΄ΠΈΡΠ΅ΡΡ, ΡΡΠΎ Π²Π°ΡΠ° ΠΎΡΠ»Π°Π΄ΠΎΡΠ½Π°Ρ ΠΏΠ»Π°ΡΠ° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΡΡΠ΅Π±ΡΠ΅ΠΌΡΡ ΡΠΊΠΎΡΠΎΡΡΡ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ Π΄Π°Π½Π½ΡΡ ΠΏΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ SWD.
Π§Π°ΡΡΡΠ΅ ΠΎΡΠΈΠ±ΠΊΠΈ ΠΈ ΡΠΏΠΎΡΠΎΠ±Ρ ΠΈΡ ΡΡΡΡΠ°Π½Π΅Π½ΠΈΡ
Π ΠΏΡΠΎΡΠ΅ΡΡΠ΅ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΡΡΠ°Π»ΠΊΠΈΠ²Π°ΡΡΡΡ Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°ΠΌΠΈ, ΡΠ²ΡΠ·Π°Π½Π½ΡΠΌΠΈ Ρ Π½Π΅ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎΠΉ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠ΅ΠΉ. Π‘Π°ΠΌΠ°Ρ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½Π½Π°Ρ ΠΎΡΠΈΠ±ΠΊΠ° β ΠΏΠΎΠΏΡΡΠΊΠ° ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΠ΅ΡΠΈΡΠ΅ΡΠΈΡ Π΄ΠΎ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ Π΅Π΅ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΡΡΠ½ΠΊΡΠΈΡΠΌΠΈ HAL_Init() ΠΈ MX_GPIO_Init(). ΠΡΠΎ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ Π½Π΅ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΌΡ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΡ ΠΈ ΡΠ±ΠΎΡΠΌ.
ΠΡΡΠ³Π°Ρ ΡΠ°ΡΡΠ°Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° β ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΠΉ. ΠΡΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠΎΠ² ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΠΉ ΠΈΠΌΠ΅ΡΡ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΡΠΉ ΠΏΡΠΈΠΎΡΠΈΡΠ΅Ρ ΠΈ Π°ΠΊΡΠΈΠ²ΠΈΡΡΡΡΡΡ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ, ΡΠΈΡΡΠ΅ΠΌΠ° ΠΌΠΎΠΆΠ΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π½Π΅ΡΡΠ°Π±ΠΈΠ»ΡΠ½ΠΎ. ΠΠ΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΡΠ°ΡΠ΅Π»ΡΠ½ΠΎ ΠΏΡΠΎΠ΄ΡΠΌΡΠ²Π°ΡΡ ΠΈΠ΅ΡΠ°ΡΡ ΠΈΡ ΠΏΡΠΈΠΎΡΠΈΡΠ΅ΡΠΎΠ² Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΠΊΡΠΈΡΠΈΡΠ½ΠΎΡΡΠΈ Π·Π°Π΄Π°Ρ.
ΠΠ½ΠΎΠ³Π΄Π° Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡΡ ΠΎΡΠΈΠ±ΠΊΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ ΠΈΠ·-Π·Π° ΠΎΡΡΡΡΡΡΠ²ΠΈΡ ΡΠ°ΠΉΠ»ΠΎΠ² Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠ² ΠΈΠ»ΠΈ Π½Π΅Π²Π΅ΡΠ½ΡΡ ΠΏΡΡΠ΅ΠΉ. ΠΡΠΎ ΡΠ°ΡΡΠΎ ΡΠ»ΡΡΠ°Π΅ΡΡΡ ΠΏΡΠΈ ΡΡΡΠ½ΠΎΠΌ ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ ΡΠ°ΠΉΠ»ΠΎΠ² ΠΌΠ΅ΠΆΠ΄Ρ ΠΏΡΠΎΠ΅ΠΊΡΠ°ΠΌΠΈ. ΠΡΠ΅Π³Π΄Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΡΡΠ½ΠΊΡΠΈΡ ΡΠΊΡΠΏΠΎΡΡΠ° ΠΏΡΠΎΠ΅ΠΊΡΠ° Π²Π½ΡΡΡΠΈ STM32CubeMX, ΡΡΠΎΠ±Ρ ΡΠΎΡ ΡΠ°Π½ΠΈΡΡ ΡΠ΅Π»ΠΎΡΡΠ½ΠΎΡΡΡ ΡΡΡΡΠΊΡΡΡΡ ΡΠ°ΠΉΠ»ΠΎΠ².
- β‘ ΠΡΠΎΠ²Π΅ΡΡΠΉΡΠ΅ ΠΏΠΎΡΡΠ΄ΠΎΠΊ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΡΡΠ½ΠΊΡΠΈΠΉ Π² main().
- π‘οΈ ΠΠ°ΡΡΡΠ°ΠΈΠ²Π°ΠΉΡΠ΅ ΠΏΡΠΈΠΎΡΠΈΡΠ΅ΡΡ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΠΉ ΡΠΎΠ³Π»Π°ΡΠ½ΠΎ Π²Π°ΠΆΠ½ΠΎΡΡΠΈ Π·Π°Π΄Π°Ρ.
- π ΠΠ΅ ΠΊΠΎΠΏΠΈΡΡΠΉΡΠ΅ ΡΠ°ΠΉΠ»Ρ Π²ΡΡΡΠ½ΡΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΡΠΊΡΠΏΠΎΡΡ ΠΈΠ· ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΎΡΠ°.
Π’Π°ΠΊΠΆΠ΅ ΡΡΠΎΠΈΡ ΠΏΠΎΠΌΠ½ΠΈΡΡ ΠΎ ΡΠ΅ΡΡΡΡΠ°Ρ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ°. ΠΡΠ΅Π²ΡΡΠ΅Π½ΠΈΠ΅ ΠΎΠ±ΡΠ΅ΠΌΠ° Flash ΠΈΠ»ΠΈ RAM ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ ΠΊ ΠΎΡΠΈΠ±ΠΊΠ°ΠΌ Π»ΠΈΠ½ΠΊΠΎΠ²ΡΠΈΠΊΠ°. ΠΠ½ΡΡΡΡΠΌΠ΅Π½Ρ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠ°ΠΌΡΡΠΈ Π² ΡΠ΅Π°Π»ΡΠ½ΠΎΠΌ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ, ΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π²ΠΎΠ²ΡΠ΅ΠΌΡ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΠΊΠΎΠ΄ ΠΈΠ»ΠΈ Π²ΡΠ±ΡΠ°ΡΡ Π±ΠΎΠ»Π΅Π΅ ΠΌΠΎΡΠ½ΡΠΉ ΡΠΈΠΏ.
ΠΠ°Π»ΡΠ½Π΅ΠΉΡΠ΅Π΅ ΡΠ°Π·Π²ΠΈΡΠΈΠ΅ Π½Π°Π²ΡΠΊΠΎΠ²
ΠΡΠ²ΠΎΠ΅Π½ΠΈΠ΅ Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π° STM32CubeMX ΠΎΡΠΊΡΡΠ²Π°Π΅Ρ ΠΏΡΡΡ ΠΊ ΠΈΠ·ΡΡΠ΅Π½ΠΈΡ Π±ΠΎΠ»Π΅Π΅ ΡΠ»ΠΎΠΆΠ½ΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΠΉ, ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ RTOS (Real-Time Operating System) ΠΈ DMA (Direct Memory Access). ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° FreeRTOS Π² Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΌ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΌΠ½ΠΎΠ³ΠΎΠ·Π°Π΄Π°ΡΠ½ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Ρ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΡΠΌΠΈ ΡΡΠΈΠ»ΠΈΡΠΌΠΈ.
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ DMA Π΄Π»Ρ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ Π΄Π°Π½Π½ΡΡ Π±Π΅Π· ΡΡΠ°ΡΡΠΈΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ° Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠ°Π·Π³ΡΡΠΆΠ°Π΅Ρ ΡΠ΄ΡΠΎ ΠΈ ΠΏΠΎΠ²ΡΡΠ°Π΅Ρ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΡΡΡ ΡΠΈΡΡΠ΅ΠΌΡ. Π ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ ΡΡΠΎ Π²ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΠΎΠ΄ΠΈΠ½ ΠΊΠ»ΠΈΠΊ, Π° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° HAL Π±Π΅ΡΠ΅Ρ Π½Π° ΡΠ΅Π±Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΊΠ°Π½Π°Π»Π°ΠΌΠΈ ΠΈ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΡΠΌΠΈ ΠΏΠΎ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ.
ΠΠ»Ρ ΠΏΡΠΎΡΠ΅ΡΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠΎΡΡΠ° ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΡΡΡ ΠΈΠ·ΡΡΠ°ΡΡ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄, Π³Π΅Π½Π΅ΡΠΈΡΡΠ΅ΠΌΡΠΉ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠΌ. ΠΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ HAL ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅Ρ ΡΡΠ½ΠΊΡΠΈΠΈ Π½Π° ΡΡΠΎΠ²Π½Π΅ ΡΠ΅Π³ΠΈΡΡΡΠΎΠ², ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ Π²Π°ΠΌ ΠΏΠΈΡΠ°ΡΡ Π±ΠΎΠ»Π΅Π΅ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΡΠΉ ΠΊΠΎΠ΄ ΠΈ ΡΠ΅ΡΠ°ΡΡ Π½Π΅ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠ΅ Π·Π°Π΄Π°ΡΠΈ, Π²ΡΡ ΠΎΠ΄ΡΡΠΈΠ΅ Π·Π° ΡΠ°ΠΌΠΊΠΈ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ.
Π‘ΠΎΠΎΠ±ΡΠ΅ΡΡΠ²ΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² STM32 Π°ΠΊΡΠΈΠ²Π½ΠΎ ΡΠ°ΡΡΠ΅Ρ, ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ Π³ΠΎΡΠΎΠ²ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ ΠΈ ΠΏΡΠΈΠΌΠ΅ΡΠΎΠ². ΠΠ·ΡΡΠ΅Π½ΠΈΠ΅ ΡΡΠΆΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° ΠΈ ΠΎΠ±ΠΌΠ΅Π½ ΠΎΠΏΡΡΠΎΠΌ ΡΡΠΊΠΎΡΡΡ Π²Π°ΡΠ΅ ΠΎΠ±ΡΡΠ΅Π½ΠΈΠ΅ ΠΈ ΠΏΠΎΠΌΠΎΠ³ΡΡ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ ΠΏΠΎΠ²ΡΠΎΡΠ΅Π½ΠΈΡ ΡΡΠΆΠΈΡ ΠΎΡΠΈΠ±ΠΎΠΊ. ΠΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ STM32CubeMX ΡΠΎΠΊΡΠ°ΡΠ°Π΅Ρ Π²ΡΠ΅ΠΌΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Π½Π° 70% ΠΏΠΎ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ Ρ ΡΡΡΠ½ΡΠΌ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠ΅ΠΌ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠΎΠ².
FAQ: Π§Π°ΡΡΠΎ Π·Π°Π΄Π°Π²Π°Π΅ΠΌΡΠ΅ Π²ΠΎΠΏΡΠΎΡΡ
ΠΡΠΆΠ½ΠΎ Π»ΠΈ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡ STM32CubeMX ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎ ΠΎΡ IDE?
ΠΠ°, STM32CubeMX ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ. ΠΠ΄Π½Π°ΠΊΠΎ, Π² ΡΠΎΡΡΠ°Π²Π΅ STM32CubeIDE ΠΎΠ½ Π²ΡΡΡΠΎΠ΅Π½ ΠΊΠ°ΠΊ ΠΏΠ»Π°Π³ΠΈΠ½, ΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ ΠΏΡΡΠΌΠΎ ΠΈΠ· ΡΡΠ΅Π΄Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ.
ΠΠΎΠΆΠ½ΠΎ Π»ΠΈ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΠΊΠΎΠ΄ Π²ΡΡΡΠ½ΡΡ?
ΠΠ°, Π½ΠΎ ΡΠΎΠ»ΡΠΊΠΎ Π² ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎ ΠΎΡΠ²Π΅Π΄Π΅Π½Π½ΡΡ
ΠΌΠ΅ΡΡΠ°Ρ
ΠΌΠ΅ΠΆΠ΄Ρ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΡΠΌΠΈ USER CODE BEGIN ΠΈ USER CODE END. ΠΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π° Π²Π½Π΅ ΡΡΠΈΡ
Π·ΠΎΠ½ ΠΏΡΠΈΠ²Π΅Π΄Π΅Ρ ΠΊ ΠΏΠΎΡΠ΅ΡΠ΅ Π²Π°ΡΠΈΡ
ΠΏΡΠ°Π²ΠΎΠΊ ΠΏΡΠΈ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ.
ΠΠ°ΠΊ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ Π² ΠΏΡΠΎΠ΅ΠΊΡ?
Π‘Π°ΠΌΡΠΉ Π½Π°Π΄Π΅ΠΆΠ½ΡΠΉ ΡΠΏΠΎΡΠΎΠ± β ΠΏΠΎΠΌΠ΅ΡΡΠΈΡΡ ΡΠ°ΠΉΠ»Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Π² ΠΏΠ°ΠΏΠΊΡ ΠΏΡΠΎΠ΅ΠΊΡΠ° ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΠΈΡ Π² Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠ° Π² IDE. Π’Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΎΠΏΡΠΈΡ "Add Folder" Π² STM32CubeMX, Π΅ΡΠ»ΠΈ ΠΎΠ½Π° Π΄ΠΎΡΡΡΠΏΠ½Π° Π΄Π»Ρ Π²Π°ΡΠ΅ΠΉ Π²Π΅ΡΡΠΈΠΈ.
Π§ΡΠΎ Π΄Π΅Π»Π°ΡΡ, Π΅ΡΠ»ΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ Π½Π΅ Π²ΠΈΠ΄ΠΈΡ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ?
ΠΡΠΎΠ²Π΅ΡΡΡΠ΅ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΎΡΠ»Π°Π΄ΡΠΈΠΊΠ°, ΡΠ±Π΅Π΄ΠΈΡΠ΅ΡΡ, ΡΡΠΎ ΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΏΠΎΠ΄Π°Π½ΠΎ Π½Π° ΠΏΠ»Π°ΡΡ, ΠΈ ΡΡΠΎ Π² STM32CubeMX Π·Π°Π³ΡΡΠΆΠ΅Π½ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΉ ΠΏΠ°ΠΊΠ΅Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ MCU ΡΠ΅ΡΠ΅Π· ΠΊΠ½ΠΎΠΏΠΊΡ Get MCU Packages.
ΠΠΎΠΆΠ½ΠΎ Π»ΠΈ ΠΏΠ΅ΡΠ΅Π½Π΅ΡΡΠΈ ΠΏΡΠΎΠ΅ΠΊΡ Ρ ΠΎΠ΄Π½ΠΎΠΉ ΡΠ΅ΡΠΈΠΈ STM32 Π½Π° Π΄ΡΡΠ³ΡΡ?
ΠΠ°, Π½ΠΎ ΡΠΎΠ»ΡΠΊΠΎ Π΅ΡΠ»ΠΈ ΠΎΠ½ΠΈ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΡ ΠΏΠΎ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ΅. ΠΠ°ΠΌ ΠΏΡΠΈΠ΄Π΅ΡΡΡ ΠΎΡΠΊΡΡΡΡ ΠΏΡΠΎΠ΅ΠΊΡ, Π²ΡΠ±ΡΠ°ΡΡ Π½ΠΎΠ²ΡΠΉ ΡΠΈΠΏ Π² ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΎΡΠ΅ ΠΈ Π²ΡΡΡΠ½ΡΡ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΠΏΠ΅ΡΠΈΡΠ΅ΡΠΈΠΈ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΡΠ΅Π³ΠΈΡΡΡΡ ΠΌΠΎΠ³ΡΡ ΠΎΡΠ»ΠΈΡΠ°ΡΡΡΡ.