STM32: рдХреНрд▓реЙрдХ рд╕рд┐рдХреНрдпреЛрд░рд┐рдЯреА рд╕рд┐рд╕реНрдЯрдо

рдЫрд╡рд┐
рдЖрдкрдХрд╛ рджрд┐рди рд╢реБрдн рд╣реЛ!
рдпрд╣ рдЖрд▓реЗрдЦ STM32 рдорд╛рдЗрдХреНрд░реЛрдХрдВрдЯреНрд░реЛрд▓рд░ рдХреЗ рд╕реНрд╡-рдирд┐рджрд╛рди рдкреНрд░рдгрд╛рд▓реА рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░реЗрдЧрд╛, рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, STM32F100RB, рдЬреЛ STM32-рдбрд┐рд╕реНрдХрд╡рд░реА рдбрд┐рдмрдЧрд┐рдВрдЧ рдХрд┐рдЯ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИред рд▓реЗрдХрд┐рди рдЪреВрдВрдХрд┐ рдПрд╕рдЯреАрдПрдо 32 рдорд╛рдЗрдХреНрд░реЛрдХрдВрдЯреНрд░реЛрд▓рд░ рдХрдИ рдорд╛рдпрдиреЛрдВ рдореЗрдВ рд╕рдорд╛рди рд╣реИрдВ, рдФрд░ рдореБрдЦреНрдп рд░реВрдк рд╕реЗ рдЙрдирдХреЗ рдмрд╛рд╣реНрдп рдЙрдкрдХрд░рдгреЛрдВ рдореЗрдВ рднрд┐рдиреНрди рд╣реИрдВ - рд▓рд┐рдЦрд┐рдд рдЕрдиреНрдп рдирд┐рдпрдВрддреНрд░рдХреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдЪ рд╣реЛрдЧрд╛ (рд╕рдВрднрд╡рддрдГ рдорд╛рдореВрд▓реА рдмрджрд▓рд╛рд╡ рдХреЗ рд╕рд╛рде)ред рд▓реЗрдЦ рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рд╣реИ рдЬреЛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдПрд╕рдЯреАрдПрдо 32 рд╕реЗ рдереЛрдбрд╝рд╛ рдкрд░рд┐рдЪрд┐рдд рд╣реИрдВ, рд▓реЗрдХрд┐рди рдореИрдВ рдЬрд┐рддрдирд╛ рд╕рдВрднрд╡ рд╣реЛ рдЙрддрдирд╛ рдмрддрд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реВрдВрдЧрд╛ред

рдШрдбрд╝реА рд╕реБрд░рдХреНрд╖рд╛ рдкреНрд░рдгрд╛рд▓реА (CSS)


рддреЛ рдЪрд▓рд┐рдП рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред
рдФрд░ рд╣рдо рд╕рд┐рд╕реНрдЯрдо рдЖрд╡реГрддреНрддрд┐ рдХреЗ рд╕реНрд░реЛрддреЛрдВ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рдХреЗ рд╢реБрд░реВ рдХрд░реЗрдВрдЧреЗ, рд╣рдо рдбреЗрдЯрд╢реАрдЯ рдореЗрдВ рдЪрдврд╝рддреЗ рд╣реИрдВ:

рдЖрдЗрдП рдЬрд╛рдиреЗрдВ рдХрд┐ рдХреНрдпрд╛ рдФрд░ рдХрд╣рд╛рдВ - рдЙрдЪреНрдЪ рдЖрд╡реГрддреНрддрд┐ рд╡рд╛рд▓реЗ рдПрдПрдЪрдмреА рдмрд╕ рд╕реЗ рд╕рд┐рд╕реНрдЯрдо рдХреА рдЖрд╡реГрддреНрддрд┐ рдкрд░рд┐рдзрд┐ рддрдХ рдкрд╣реБрдВрдЪ рдЬрд╛рддреА рд╣реИред рдмрд╕ рдкрд░ рд╣реА, рдПрдХ рд╡рд┐рднрдХреНрдд рдХреЗ рд╕рд╛рде рдЬреЛ рдЖрдкрдХреЛ рд╕рд┐рд╕реНрдЯрдо рдЖрд╡реГрддреНрддрд┐ рдХреЛ 1..512 рд╕реЗ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдФрд░ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕рд┐рд╕реНрдЯрдо рдЖрд╡реГрддреНрддрд┐ рд╕реНрд╡рдпрдВ рдорд▓реНрдЯреАрдкреНрд▓реЗрдХреНрд╕ рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХреА рдЬрд╛рддреА рд╣реИ, рдЖрд░реЗрдЦ рдкрд░ SW рдХреЗ рд░реВрдк рдореЗрдВ рдЗрдВрдЧрд┐рдд рдХреА рдЬрд╛рддреА рд╣реИред рдорд▓реНрдЯреАрдкреНрд▓реЗрдХреНрд╕ рдореЗрдВ рддреАрди рд╕реНрд░реЛрддреЛрдВ рд╕реЗ рдЖрд╡реГрддреНрддрд┐рдпреЛрдВ рдХреЛ рдЦрд┐рд▓рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ: рдПрдЪрдПрд╕рдЖрдИ , рдкреАрдПрд▓рдПрд▓ , рдПрдЪрдПрд╕рдИ , рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ рдЙрдирдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдкрд░ рдЬрд╛рддреЗ рд╣реИрдВ:

HSI (рдЙрдЪреНрдЪ рдЧрддрд┐ рдЖрдВрддрд░рд┐рдХ рдерд░рдерд░рд╛рдирд╡рд╛рд▓рд╛)
рдЖрдВрддрд░рд┐рдХ 8MHz рдЖрд░рд╕реА рд╕рд░реНрдХрд┐рдЯ, рдЬрд┐рд╕реЗ рдкреАрдПрд▓рдПрд▓ (рдкреАрдПрд▓рдПрд▓) рдХреЗ рд▓рд┐рдП рдЗрдирдкреБрдЯ рд╕рд┐рдЧреНрдирд▓ рдХреЗ рд░реВрдк рдореЗрдВ рд╕рд┐рд╕реНрдЯрдо рдЖрд╡реГрддреНрддрд┐ рдХреЗ рд╕реНрд░реЛрдд рдХреЗ рд░реВрдк рдореЗрдВ рдпрд╛ 2 рд╕реЗ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрдо-рд▓рд╛рдЧрдд рд╡рд╛рд▓реЗ рдЙрдкрдХрд░рдгреЛрдВ рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЬрд╣рд╛рдВ рдХрдо рд▓рд╛рдЧрдд рд╡рд╛рд▓реЗ рд▓реЛрдЧреЛрдВ рдореЗрдВ рд╕рд┐рд╕реНрдЯрдо рдЖрд╡реГрддреНрддрд┐ рдХреА рд╕рдЯреАрдХрддрд╛ рдФрд░ рд╕реНрдерд┐рд░рддрд╛ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рд╡рд┐рд╢реЗрд╖ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЖрдк рдмрд╛рд╣рд░реА рдХреНрд╡рд╛рд░реНрдЯреНрдЬ рдХреЗ рдмрд┐рдирд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдкреАрдврд╝реА рдХреА рдЖрд╡реГрддреНрддрд┐ рддрд╛рдЗрд╡рд╛рди рдореЗрдВ рддрд╛рдкрдорд╛рди, рд╡реЛрд▓реНрдЯреЗрдЬ, рдореМрд╕рдо рдФрд░ рд╕реВрд░реНрдп рдкрд░ рдЪреБрдВрдмрдХреАрдп рддреВрдлрд╛рди рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддреА рд╣реИ, рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ - рдпрд╣ рдмрд╣реБрдд рддреИрд░рддрд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдирд┐рд░реНрдорд╛рддрд╛ 25C рдХреЗ рддрд╛рдкрдорд╛рди рдкрд░ 1% рдХреА рд╕рдЯреАрдХрддрд╛ рдХреЗ рд╕рд╛рде рдЙрдиреНрд╣реЗрдВ рдХреИрд▓рд┐рдмреНрд░реЗрдЯ рдХрд░рддрд╛ рд╣реИ - рдЬрдм рддрд╛рдкрдорд╛рди рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рд╣реЛрддрд╛ рд╣реИ - рдЖрд╡реГрддреНрддрд┐ рддреИрд░ рдЬрд╛рдПрдЧреА, рдЬреЛ рдЗрд╕рд╕реЗ рдЕрд╕реНрд╡реАрдХрд╛рд░реНрдп рд╣реИ рдорд╛рдк рд╕рдЯреАрдХрддрд╛ рдпрд╛ рд╕рдордп рдХреА рджреЗрд░реА рдирд┐рд░реНрднрд░ рдХрд░рддреА рд╣реИред рд╕реАрдПрд╕рдПрд╕ рдореЗрдВ рдмреИрдХрдЕрдк рд╕рд┐рд╕реНрдЯрдо рдлреНрд░реАрдХреНрд╡реЗрдВрд╕реА рд╕реЛрд░реНрд╕ рдХреЗ рд░реВрдк рдореЗрдВ рднреА рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ

рдПрдЪрдПрд╕рдИ (рдЙрдЪреНрдЪ рдЧрддрд┐ рдмрд╛рд╣рд░реА рдерд░рдерд░рд╛рдирд╡рд╛рд▓рд╛)
рдПрдХ рдмрд╛рд╣рд░реА рдШрдбрд╝реА рдЬрдирд░реЗрдЯрд░ рдпрд╛ рддреЛ рдПрдХ рдЧреБрдВрдЬрдпрдорд╛рди рдпрдВрддреНрд░ рдпрд╛ рдПрдХ рдмрд╛рд╣рд░реА рдШрдбрд╝реА рд╕рдВрдХреЗрдд рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдХреНрд╡рд╛рд░реНрдЯреНрдЬ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдпрд╣ рдЙрдЪреНрдЪ рддрд╛рдкрдорд╛рди рд╕реНрдерд┐рд░рддрд╛, рдЖрд╡реГрддреНрддрд┐ рд╕рдЯреАрдХрддрд╛ рдФрд░ рд╕реНрдерд╛рдпрд┐рддреНрд╡ рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП рдШрдбрд╝реА рдХреА рджрд╛рд▓реЗрдВ - рдпрд╛ рддреЛ рд╕реАрдзреЗ рдорд▓реНрдЯреАрдкреНрд▓реЗрдХреНрд╕ рдореЗрдВ рдЬрд╛рдПрдВ, рдпрд╛ рдбрд┐рд╡рд╛рдЗрдбрд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ 1..16 рдЗрдирдкреБрдЯ рдкреАрдПрд▓рдПрд▓ рдкрд░ рдЬрд╛рдПрдВ

PLL (рдЙрдЪреНрдЪ рдЧрддрд┐ рдмрд╛рд╣рд░реА рдерд░рдерд░рд╛рдирд╡рд╛рд▓рд╛)
рдпрд╛ PLL рдЖрдкрдХреЛ рдЗрдирдкреБрдЯ рд╕рд┐рдЧреНрдирд▓ рдХреЛ 2..16 рдЧреБрдирд╛ рдЧреБрдгрд╛ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдЬрдмрдХрд┐ рддреНрд░реБрдЯрд┐ рднреА рдХрдИ рдЧреБрдирд╛ рд╣реЛрддреА рд╣реИ, рдЗрд╕рд▓рд┐рдП, рдпрджрд┐ рдЗрдирдкреБрдЯ рд╕рд┐рдЧреНрдирд▓ swam + -1MHz - 16 рдЧреБрдирд╛ рд╕реЗ рдЧреБрдгрд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рддреЛ рдпрд╣ +16MHz рддреИрд░ рдЬрд╛рдПрдЧрд╛, рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЖрдЙрдЯрдкреБрдЯ рдЖрд╡реГрддреНрддрд┐ рдЕрдзрд┐рдХрддрдо рд╕реНрд╡реАрдХрд╛рд░реНрдп рдЖрд╡реГрддреНрддрд┐ рд╕реЗ рдЕрдзрд┐рдХ рдирд╣реАрдВ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред AHB

рдЗрд╕рд▓рд┐рдП - рд╣рдо рдЖрд╡реГрддреНрддрд┐ рд╕реНрд░реЛрддреЛрдВ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рддреЗ рд╣реИрдВ - рдЕрдм рд▓реЗрдЦ рдХреЗ рд╡рд┐рд╖рдп рдкрд░ рдЪрд▓рддреЗ рд╣реИрдВред рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рдмрд╛рд░ рдЙрдЪреНрдЪ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдпрддрд╛ рдкреНрд░рдгрд╛рд▓рд┐рдпреЛрдВ рдореЗрдВ, рдПрдХ рдХреНрд╡рд╛рд░реНрдЯреНрдЬ рдЧреБрдВрдЬрдпрдорд╛рди рдпрдВрддреНрд░ рдХреЛ рд╕рд┐рд╕реНрдЯрдо рдЖрд╡реГрддреНрддрд┐ рд╕реНрд░реЛрдд рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рдХрд┐рд╕реА рдХрд╛рд░рдг рд╕реЗ рд╡рд┐рдлрд▓ рдпрд╛ рд╡рд┐рдлрд▓ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдРрд╕реА рд╡рд┐рдлрд▓рддрд╛ рдХреЗ рдмреБрд░реЗ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЛ рдХрдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, STM32 рдореЗрдВ CSS рднреА рд╣реИред рдЗрд╕рдХрд╛ рд╕рд╛рд░ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИ: рдЬрдм рдПрдЪрдПрд╕рдИ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ, рддреЛ рдЖрд╡реГрддреНрддрд┐ рдбрд┐рдЯреЗрдХреНрдЯрд░ рдЪрд╛рд▓реВ рд╣реЛрддрд╛ рд╣реИ, рдЬреЛ рд╡рд┐рдлрд▓ рд╣реЛрдиреЗ рдкрд░ (рднрд▓реЗ рд╣реА рдПрдЪрдПрд╕рдИ рд╕рд┐рд╕реНрдЯрдо рдЖрд╡реГрддреНрддрд┐ рдХрд╛ рд╕реНрд░реЛрдд рдирд╣реАрдВ рд╣реИ) рдПрдЪрдПрд╕рдИ рдХреЛ рддреБрд░рдВрдд рдмрдВрдж рдХрд░ рджреЗрддрд╛ рд╣реИ, рдПрдЪрдПрд╕рдЖрдИ рдХреЛ рдЪрд╛рд▓реВ рдХрд░рддрд╛ рд╣реИ, рдЗрд╕реЗ рд╕рд┐рд╕реНрдЯрдо рдЖрд╡реГрддреНрддрд┐ рдХреЗ рд╕реНрд░реЛрдд рдХреЗ рд░реВрдк рдореЗрдВ рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИ, рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рдЯрд╛рдЗрдорд░ рдХреЗ рд▓рд┐рдП рд╕рд┐рд╕реНрдЯрдо рдЖрд╡реГрддреНрддрд┐ рдХрд╛ рдПрдХ рддреНрд░реБрдЯрд┐ рд╕рдВрдХреЗрдд рднреЗрдЬрддрд╛ рд╣реИ рдФрд░ рдПрдХ рдмрд╛рдзрд╛ рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИред рдПрдЪрдПрд╕рдИ рд╡рд┐рдлрд▓рддрд╛ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЛ рд╕реВрдЪрд┐рдд рдХрд░рдирд╛

CoIDE рдореЗрдВ рдХреЛрдб рдЙрджрд╛рд╣рд░рдг:

рдХреЛрдб
#include "stm32f10x_rcc.h" #include "stm32f10x_gpio.h" #include "stm32f10x.h" #define LED_PORT GPIOC void LED_GPIO_Configuration(void); void Delay(__IO uint32_t nCount); void NMI_Handler(); int delay_time = 300; int main() { static unsigned long ticks; unsigned char Clock1s; //==================System Clock Init================== //  RCC_DeInit(); // HSE RCC_HSEConfig(RCC_HSE_ON); //    while(RCC_WaitForHSEStartUp() != SUCCESS); // Clock Security System RCC->CR |= RCC_CR_CSSON; //    HSE RCC_SYSCLKConfig(RCC_SYSCLKSource_HSE); // HSI    RCC_HSICmd(DISABLE); //======================GPIO Init====================== LED_GPIO_Configuration(); //    while(1) { if (ticks++ >= 9999) { ticks = 0; Clock1s = 1; } if (Clock1s) { Clock1s = 0; Delay(delay_time); GPIO_WriteBit(LED_PORT, GPIO_Pin_9, Bit_SET); Delay(delay_time); GPIO_WriteBit(LED_PORT, GPIO_Pin_9, Bit_RESET); } } } //  GPIOC void LED_GPIO_Configuration(void) { GPIO_InitTypeDef GPIO_InitStructure; //  RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE); // GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8|GPIO_Pin_9; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz; GPIO_Init(GPIOC, &GPIO_InitStructure); } void NMI_Handler() { //   CSS RCC->CIR |= RCC_CIR_CSSC; //    ,    //   Delay(100); //  HSE RCC_HSEConfig(RCC_HSE_ON); //    Delay(1); if (RCC_WaitForHSEStartUp() == SUCCESS) { //  -  HSE    RCC_SYSCLKConfig(RCC_SYSCLKSource_HSE); // HSI RCC_HSICmd(DISABLE); //     delay_time = 100; } else GPIO_SetBits(GPIOC,GPIO_Pin_8); //     -   HSI //   } //   void Delay(__IO uint32_t nCount) { uint32_t i = 0; for (; nCount != 0; i++) { if (i == 1000) { i = 0; nCount--; } } } 


рд╡реАрдбрд┐рдпреЛ рдХрд╛рдо:



рдпрд╣ рд╕рдм рдЕрдм рдХреЗ рд▓рд┐рдП рд╣реИ - рдЬрдм рдореИрдВ рд▓реЗрдЦ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП рдбреЗрдЯрд╛рд╢реАрдЯ , рдХреЛрдб рдХреЗ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ, рд╕рд╛рде рд╣реА рд╕рд╛рде рд╕рдореНрдорд╛рдирд┐рдд рдбреАрдЖрдИ рд╣реЙрд▓реНрдЯ рдХреЗ рд▓реЗрдЦ, рдЗрдВрдЯрд░рдкреНрдЯ рд╣реИрдВрдбрд▓рд░ рдХреЛ рдХреЗрд╡рд▓ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдПрдХ рд╕реБрдкрд░ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рд╕рдорд╛рдзрд╛рди рд╣реЛрдиреЗ рдХрд╛ рджрд┐рдЦрд╛рд╡рд╛ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ - рдмрд╕ рд╕рдВрднрд╛рд╡рдирд╛рдУрдВ рдХрд╛ рдкреНрд░рджрд░реНрд╢рди

Source: https://habr.com/ru/post/In140761/


All Articles