
рдЕрдкрдиреА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ, рдореИрдВ
STM32F103C8 рдорд╛рдЗрдХреНрд░реЛрдХрдВрдЯреНрд░реЛрд▓рд░ рдФрд░
stm32duino рдврд╛рдВрдЪреЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛
рд╣реВрдВ ред Arduino рдХрд╛ рдпрд╣ рдХреНрд▓реЛрди рдПрдХ рд╡рд┐рд╢реЗрд╖ рдмреВрдЯрд▓реЛрдбрд░ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдЖрдкрдХреЛ ST-Link рдпрд╛ USB-UART рдПрдбреЗрдкреНрдЯрд░ рдЬреИрд╕реЗ рдмрд╛рд╣рд░реА рдШрдЯрдХреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдмрд┐рдирд╛ USB рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдлрд░реНрдорд╡реЗрдпрд░ рдЕрдкрд▓реЛрдб рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред
рдЖрдЬ рдореБрдЭреЗ CoCCox рдХреЗ рддрд╣рдд рдФрд░ stm32duino рдХреЗ рдмрд┐рдирд╛ рдПрдХ рдирдВрдЧреЗ рдирд┐рдпрдВрддреНрд░рдХ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдереАред рд▓реЗрдХрд┐рди рдпрд╣рд╛рдБ рд╕рдорд╕реНрдпрд╛ рд╣реИред рдЗрд╕ рдмреВрдЯрд▓реЛрдбрд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдбрд╛рд▓рд╛ рдЧрдпрд╛ рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдмреНрд▓рд┐рдВрдХрд░ рдмрд▓реНрдм рднреА рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред
рдЪрд▓реЛ рдареАрдХ рд╣реИред рд╢рд╛рдпрдж рдореЗрд░реА рдЧрдгрдирд╛ рдХреБрдЫ рд╕рд╛рдорд╛рдиреНрдп рд╕реА рд▓рдЧрддреА рд╣реИред рд▓реЗрдХрд┐рди рдореИрдВ рд╕рд┐рд░реНрдл STM32 рдирд┐рдпрдВрддреНрд░рдХреЛрдВ рдХрд╛ рдЕрдзреНрдпрдпрди рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдЦреЛрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдХрдо рд╕реЗ рдХрдо рдЖрдзрд╛ рджрд┐рди рдорд╛рд░ рджрд┐рдпрд╛ред рдЕрдЪрд╛рдирдХ рдпрд╣ рд▓реЗрдЦ рдХрд┐рд╕реА рдХреЗ рд▓рд┐рдП рд╡рд┐рдХрд╛рд╕ рдХреЗ рд╕рдордп рдХреЛ рдЫреЛрдЯрд╛ рдХрд░ рджреЗрдЧрд╛ред
рдореЗрд░реЗ рдкрд╛рд╕ рдПрд╕рдЯреА-рд▓рд┐рдВрдХ рдФрд░ рдЕрдиреНрдп рдбрд┐рдмрдЧрд░реНрд╕ рдХреЗ рдЦрд┐рд▓рд╛рдл рдХреБрдЫ рднреА рдирд╣реАрдВ рд╣реИред рд▓реЗрдХрд┐рди рдореЗрд░реЗ рддреИрдпрд╛рд░ рдбрд┐рд╡рд╛рдЗрд╕ рдореЗрдВ рдпрд╣ рдирд╣реАрдВ рд╣реЛрдЧрд╛, рд▓реЗрдХрд┐рди рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдпреВрдПрд╕рдмреА рд╣реЛрдЧрд╛ред USB рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдлрд░реНрдорд╡реЗрдпрд░ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдХреЛ рддреБрд░рдВрдд рдХреНрдпреЛрдВ рдирд╣реАрдВ рд░рдЦрд╛ рдЧрдпрд╛? рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ, рдореБрдЭреЗ рдпрд╣ рддрд░реАрдХрд╛ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд▓рдЧрддрд╛ рд╣реИред рд╡реИрд╕реЗ рднреА, рдореЗрд░реЗ рдкрд╛рд╕ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдПрдХ рдХреЙрд░реНрдб рдЬреБрдбрд╝рд╛ рд╣реБрдЖ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдкрд╛рд╡рд░ рдФрд░ рдпреВрдПрд╕рдмреА рд╕реАрд░рд┐рдпрд▓ рд╣реИред
рдЖрдЗрдП рджреЗрдЦреЗрдВ рдХрд┐ рдмреВрдЯрд▓реЛрдбрд░ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред AVR рдирд┐рдпрдВрддреНрд░рдХреЛрдВ рдХреЗ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд╕рд╛рде рдЖрд░рдВрдн рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред рдореИрдВрдиреЗ рдЙрд╕реЗ рдХреНрдпреЛрдВ рдпрд╛рдж рдХрд┐рдпрд╛? рдореИрдВрдиреЗ Arduino рд╕реЗ рд╕реНрд╡рд┐рдЪ рдХрд┐рдпрд╛ рдФрд░ рдЕрд╡рдЪреЗрддрди рд╕реЗ рд╕рдорд╛рди рд╡реНрдпрд╡рд╣рд╛рд░ рдХреА рдЕрдкреЗрдХреНрд╖рд╛ рдХреАред рд▓реЗрдХрд┐рди STM32 рдореЗрдВ рд╕рдм рдХреБрдЫ рдЕрд▓рдЧ рддрд░реАрдХреЗ рд╕реЗ рдирд┐рдХрд▓рд╛ред рдЗрд╕рд▓рд┐рдП, рдореИрдВ рдЗрди рджреЛ рдорд╛рдЗрдХреНрд░реЛрдХрдВрдЯреНрд░реЛрд▓рд░реНрд╕ рдХреЗ рдмреАрдЪ рдЕрдВрддрд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред
So. рдПрд╡реАрдЧ ATMega рдорд╛рдЗрдХреНрд░реЛрдХрдВрдЯреНрд░реЛрд▓рд░реНрд╕ рдореЗрдВ, рдореЗрдореЛрд░реА рдХреА рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдорд╛рддреНрд░рд╛ рдлреНрд▓реИрд╢ рдХреЗ рдЕрдВрдд рдХреЗ рдкрд╛рд╕ рдмреВрдЯрд▓реЛрдбрд░ рдХреЗ рд▓рд┐рдП рдЖрд░рдХреНрд╖рд┐рдд рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИред рдлрд╝реНрдпреВрдЬрд╝ рдмрд┐рдЯреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЖрдк рдпрд╣ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХрд┐рд╕ рдкрддреЗ рд╕реЗ рд╢реБрд░реВ рд╣реЛрдЧрд╛ред рдпрджрд┐ рдХреЛрдИ рдмреВрдЯрд▓реЛрдбрд░ рдирд╣реАрдВ рд╣реИ, рддреЛ рдкреНрд░реЛрдЧреНрд░рд╛рдо 0x0000 рдкрддреЗ рд╕реЗ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИред рдпрджрд┐ рдХреЛрдИ рдмреВрдЯрд▓реЛрдбрд░ рд╣реИ, рддреЛ рдпрд╣ рдХреБрдЫ рдЕрдиреНрдп рдкрддреЗ рд╕реЗ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ (рдЬреИрд╕реЗ, ATMxga32 рдореЗрдВ 0x3C00 рдХреЗ рд╕рд╛рде, рдпрджрд┐ рдмреВрдЯрд▓реЛрдбрд░ рдХрд╛ рдЖрдХрд╛рд░ 2k рд╣реИ)ред

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

рдЗрд╕рд▓рд┐рдП рдлрд╝рд░реНрдорд╡реЗрдпрд░ рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдХрд░рддреЗ рд╕рдордп рдЖрдкрдХреЛ рдпрд╣ рдЬрд╛рдирдирд╛ рд╣реЛрдЧрд╛ рдХрд┐ рдмреВрдЯрд▓реЛрдбрд░ рдлрд╝рд░реНрдорд╡реЗрдпрд░ рдХрд╣рд╛рдБ рд▓рд┐рдЦреЗрдЧрд╛ рдФрд░ рдЙрд╕рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдкрддреЛрдВ рдХреЛ рд╕рдорд╛рдпреЛрдЬрд┐рдд рдХрд░реЗрдЧрд╛ред
рдпрд╣ рд╕рдм рд╕рд┐рджреНрдзрд╛рдВрдд рдХреЗ рд╕рд╛рде рд╣реИред рдЕрднреНрдпрд╛рд╕ рдХреЗ рд▓рд┐рдП рдЖрдЧреЗ рдмрдврд╝рддреЗ рд╣реИрдВред рдиреАрдЪреЗ STM32F1xx рд╢реНрд░реГрдВрдЦрд▓рд╛ рдорд╛рдЗрдХреНрд░реЛрдХрдВрдЯреНрд░реЛрд▓рд░реНрд╕ рдХреЗ рд▓рд┐рдП USB рдмреВрдЯрд▓реЛрдбрд░ рдХреЛ рдлрд╛рд╕реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдХрджрдо-рджрд░-рдЪрд░рдг рдирд┐рд░реНрджреЗрд╢ рд╣реИ, рдФрд░ рд╢рд╛рдпрдж рдХреБрдЫ рдЕрдиреНрдп рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рднреАред
рд╣рд╛рд▓рд╛рдБрдХрд┐, рд╕рд░реНрдХрд┐рдЯреНрд░реА рдХреА рдХреБрдЫ рд╕реАрдорд╛рдПрдБ рд╣реИрдВред рдпрд╣рд╛рдВ, рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдореИрдВ рдордЬрдмреВрдд рдирд╣реАрдВ рд╣реВрдВред ITP рдХреЛ PA12 рдкреЛрд░реНрдЯ (рдЙрд░реНрдл USB D +) рдХреЗ рд▓рд┐рдП 1.5k рдкреБрд▓-рдЕрдк рд░реЗрдЬрд╝рд┐рд╕реНрдЯрд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдпрд╣ рдмреВрдЯрд▓реЛрдбрд░ рдХреЛ рд╕рд╣реА рд╕рдордп рдкрд░ USB рд╕реЗ рдХрдиреЗрдХреНрдЯ рдФрд░ рдбрд┐рд╕реНрдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред
рдирд┐рд░реНрджреЗрд╢:
рдмрд╛рд░реАрдХрд┐рдпреЛрдВ рдХреА рдПрдХ рдФрд░ рдмрд┐рдЯред рдлрд░реНрдорд╡реЗрдпрд░ рдЕрдкрд▓реЛрдб рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рдЖрдкрдХреЛ рдмреВрдЯрд▓реЛрдбрд░ рдЪрд▓рд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рд╕рдмрд╕реЗ рдЖрд╕рд╛рди рддрд░реАрдХрд╛ рд╣реИ рд░реАрд╕реЗрдЯ рдмрдЯрди рджрдмрд╛рдПрдВред рдЙрд╕рдХреЗ рдмрд╛рдж, рдмреВрдЯрд▓реЛрдбрд░ рд╢реБрд░реВ рд╣реЛ рдЬрд╛рдПрдЧрд╛ рдФрд░ рдлрд░реНрдорд╡реЗрдпрд░ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рд╕реЗрдХрдВрдб рдЗрдВрддрдЬрд╛рд░ рдХрд░реЗрдЧрд╛ред рдпрджрд┐ рдХрд┐рд╕реА рдиреЗ рдЗрд╕ рд╕рдордп рдореЗрдкрд▓_ рд▓реЛрдб рдирд╣реАрдВ рдХрд┐рдпрд╛, рддреЛ рдмреВрдЯрд▓реЛрдбрд░ рдореБрдЦреНрдп рдлрд░реНрдорд╡реЗрдпрд░ рдкрд░ рдирд┐рдпрдВрддреНрд░рдг рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░ рджреЗрдЧрд╛ред
рд╣рд░ рдмрд╛рд░ рд░реАрд╕реЗрдЯ рдкреНрд░реЗрд╕ рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, libmaple / stm32duino рдЖрдзрд╛рд░рд┐рдд рдмреЛрд░реНрдб рдПрдХ рдЪрд╛рд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рд╡реЗ usb рд╕реАрд░рд┐рдпрд▓ рдкреЛрд░реНрдЯ рд╕реБрдирддреЗ рд╣реИрдВред рдпрджрд┐ рдПрдХ DTR рд╕рдВрдХреЗрдд рд╡рд╣рд╛рдВ рдЙрддреНрдкрдиреНрди рд╣реЛрддрд╛ рд╣реИ рдФрд░ рдмрд╛рдЗрдЯреНрд╕ рдХрд╛ рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдЕрдиреБрдХреНрд░рдо рдкреНрд░рд╕рд╛рд░рд┐рдд рд╣реЛрддрд╛ рд╣реИ, рддреЛ рдорд╛рдЗрдХреНрд░реЛрдХрдВрдЯреНрд░реЛрд▓рд░ рдХреЛ рдмреВрдЯрд▓реЛрдбрд░ рдореЗрдВ рдкреБрдирдГ рд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
RxHook () рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рджреЗрдЦреЗрдВ ред
рдЗрд╕рд╕реЗ рдЕрд╕реБрд╡рд┐рдзрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИред рдпрджрд┐ рдорд╛рдЗрдХреНрд░реЛрдХрдВрдЯреНрд░реЛрд▓рд░ рдмрдВрдж рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рд▓рдЯрдХ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдпрд╣ рдЕрдм рдкреЛрд░реНрдЯ рдХреЛ рдирд╣реАрдВ рд╕реБрдирддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, рд╡рд╣ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдЕрдиреБрдХреНрд░рдо рдирд╣реАрдВ рд╕реБрди рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдмреВрдЯрд▓реЛрдбрд░ рдореЗрдВ рд░рд┐рдмреВрдЯ рдХрд░ рд╕рдХрддрд╛ рд╣реИред рддрдм рдХреЗрд╡рд▓ рдорджрдж рдХреЗ рд▓рд┐рдП рд░реАрд╕реЗрдЯ рдХрд░реЗрдВред
рд╡рд╣ рд╕рдм рд╣реИред рдореБрдЭреЗ рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдореЗрд░рд╛ рд▓реЗрдЦ STM32 рдореЗрдВ рдмреВрдЯрд▓реЛрдбрд░ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдФрд░ USB рдкреЛрд░реНрдЯ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдлрд░реНрдорд╡реЗрдпрд░ рдбрд╛рдЙрдирд▓реЛрдб рдХреИрд╕реЗ рдХрд░реЗрдВ, рдЗрд╕ рдкрд░ рдкреНрд░рдХрд╛рд╢ рдбрд╛рд▓реЗрдВрдЧреЗред рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдкреНрд░рд╡реЗрд╢ рд╕реАрдорд╛ рдЕрднреА рднреА рдЕрдзрд┐рдХ рд╣реИ, рд▓реЗрдХрд┐рди рдЕрдЪрд╛рдирдХ рдореЗрд░рд╛ рд▓реЗрдЦ рдХрд┐рд╕реА рдХреЛ рдЗрд╕реЗ рджреВрд░ рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░реЗрдЧрд╛ред