рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рдореИрдВ рдЖрдкрдХреЛ рдмрддрд╛рдКрдВрдЧрд╛ рдХрд┐ рдХреИрд╕реЗ:- STM32CubeMX рдореЗрдВ рдПрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдмрдирд╛рдПрдВ рдФрд░ рдмрд╛рд╣рд░реА рд╕рдВрдХреЗрддреЛрдВ рдХреЛ рдкрдХрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдЯрд╛рдЗрдорд░ рд╕реЗрдЯ рдХрд░реЗрдВред
- рдПрдХ рд╡рд┐рдорд╛рди рдореЙрдбрд▓ рдХрдВрд╕реЛрд▓ рд╕реЗ рдкреАрдкреАрдПрдо рд╕рд┐рдЧреНрдирд▓ рдХреЛ рдбрд┐рдХреЛрдб рдХрд░реЗрдВред
- STM32 рдкрд░ рдорд╛рдирд╡ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдбрд┐рд╡рд╛рдЗрд╕ рдмрдирд╛рдПрдВ рдФрд░ рдЕрдкрдиреЗ рдЫрд┐рдкрд╛рдИ рд░рд┐рдкреЛрд░реНрдЯ рдбрд┐рд╕реНрдХреНрд░рд┐рдкреНрдЯрд░ рдХреЛ рд▓рд┐рдЦреЗрдВред
- рдПрдХ рд░реЗрд╕рд┐рдВрдЧ рдХреНрд╡рд╛рдбрд░реЛрдХреЙрдкреНрдЯрд░ рдкрд░ рдПрдХ рд╕рд┐рдореНрдпреБрд▓реЗрдЯрд░ рдореЗрдВ рдЙрдбрд╝рд╛рди рднрд░реЗрдВред :)
рдкреНрд░рд╕реНрддрд╛рд╡рдирд╛
рд╣рд╛рд▓ рд╣реА рдореЗрдВ, 250 рд╡реАрдВ рд╢реНрд░реЗрдгреА (рдПрдлрдкреАрд╡реА - рдлрд░реНрд╕реНрдЯ рдкрд░реНрд╕рди рд╡реНрдпреВ) рдХреЗ рдХреНрд╡рд╛рдбреНрд░реЛрдХреЙрдкреНрдЯрд░реЛрдВ рдкрд░ рдПрдлрдкреАрд╡реА рджреМрдбрд╝ рдЕрдзрд┐рдХ рд╕реЗ рдЕрдзрд┐рдХ рд▓реЛрдХрдкреНрд░рд┐рдпрддрд╛ рд╣рд╛рд╕рд┐рд▓ рдХрд░ рд░рд╣реА рд╣реИред 250 рдХреА рд╕рдВрдЦреНрдпрд╛ рдХрд╛ рдорддрд▓рдм рд╣реИ рддрд┐рд░рдЫреЗ рдореЛрдЯрд░реЛрдВ рдХреА рдХреБрд▓реНрд╣рд╛рдбрд╝рд┐рдпреЛрдВ рдХреЗ рдмреАрдЪ рдХреА рджреВрд░реА, рдЫреЛрдЯреЗ рдкреИрдВрддрд░реЗрдмрд╛рдЬрд╝реА рдХреЛрдкрд░реНрд╕ рдХреА рдЦрд╛рд╕рд┐рдпрддред рдРрд╕реЗ рдЙрдкрдХрд░рдг рдЯрд┐рдХрд╛рдК рдХрд╛рд░реНрдмрди рдлреНрд░реЗрдо рдкрд░ рдмрдирд╛рдП рдЬрд╛рддреЗ рд╣реИрдВ рдЬреЛ рдЧрд┐рд░рдиреЗ рдФрд░ рдЯрдХрд░рд╛рдиреЗ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рддреЗ рд╣реИрдВред рдПрдХ рдмрдбрд╝реЗ рдХрджрдо (рдмреНрд▓реЗрдб рдХреЗ рдЭреБрдХрд╛рд╡ рдХреЗ рдХреЛрдг) рдХреЗ рд╕рд╛рде 5-6 рдЗрдВрдЪ рдХреЗ рд╡реНрдпрд╛рд╕ рд╡рд╛рд▓реЗ рдкреНрд░реЛрдкреЗрд▓рд░реНрд╕ рдХреЛ рд╕рдмрд╕реЗ рдЧрддрд┐рд╢реАрд▓ рдЙрдбрд╝рд╛рди рдХреЗ рд▓рд┐рдП рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рдореЛрдЯрд░реНрд╕ рдкрд░ рд░рдЦрд╛ рдЧрдпрд╛ рд╣реИред рдПрдирд╛рд▓реЙрдЧ рд╣реЗрдбрд┐рдВрдЧ рдХреИрдордХреЙрд░реНрдбрд░ рд╕реЗ рдЫрд╡рд┐ рдХреЛ 5.8 рдЧреАрдЧрд╛рд╣рд░реНрдЯреНрдЬ рдХреА рдЖрд╡реГрддреНрддрд┐ рдкрд░ рдкрд╛рдпрд▓рдЯ рдпрд╛ рдореЙрдирд┐рдЯрд░ рдХреЗ рд╡реАрдбрд┐рдпреЛ рдЧреНрд▓рд╛рд╕ рдкрд░ рдкреНрд░рд╕рд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЪреВрдВрдХрд┐ рд╡рд╛рдИрдлрд╝рд╛рдИ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдбрд┐рдЬрд┐рдЯрд▓ рдЯреНрд░рд╛рдВрд╕рдорд┐рд╢рди рдПрдХ рд▓рдВрдмреА рджреЗрд░реА (200-300 рдПрдордПрд╕) рдмрдирд╛рддрд╛ рд╣реИ, рд╡реАрдбрд┐рдпреЛ рд╣рдореЗрд╢рд╛ рдПрдХ рдПрдирд╛рд▓реЙрдЧ рдЪреИрдирд▓ рдкрд░ рдкреНрд░рд╕рд╛рд░рд┐рдд рд╣реЛрддрд╛ рд╣реИред рд╢рд╛рдирджрд╛рд░ рдХреНрд▓рд┐рдк рд░рд┐рдХреЙрд░реНрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдПрдХреНрд╢рди рдХреИрдорд░реЛрдВ рдХреЛ рдмреЛрд░реНрдб (GoPro, Mobius, SJcam, Xiaomi Yi, рдЖрджрд┐) рдореЗрдВ рд▓рдЧрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдпрд╣рд╛рдБ FPV copters рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рд░реЛрдорд╛рдВрдЪрдХ рд╡реАрдбрд┐рдпреЛ рд╣реИрдВ:
рдЕрдкрдиреЗ рдорд┐рдиреА рдХреНрд╡рд╛рдбреНрд░реЛрдХреЙрдкреНрдЯрд░ рдХреЗ рдирд┐рд░реНрдорд╛рдг рд╕реЗ рдкрд╣рд▓реЗ, рдореИрдВ рдПрдХ рд╕рд┐рдореНрдпреБрд▓реЗрдЯрд░ рдореЗрдВ рдЙрдбрд╝рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ рдФрд░ рджреЗрдЦрдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ рдХрд┐ рдХреНрдпрд╛ рдореИрдВ рдПрдлрдкреАрд╡реА рджреМрдбрд╝ рдореЗрдВ рд░реБрдЪрд┐ рд░рдЦреВрдВрдЧрд╛ред рдкреНрд░рд╢рд┐рдХреНрд╖рдг рдХреЗ рд▓рд┐рдП, FPV FreeRider рд╕рд┐рдореНрдпреБрд▓реЗрдЯрд░ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдЕрдиреБрдХреВрд▓ рд╣реИ ред рдпрд╣ рд╕рд╕реНрддреА рд╣реИ, рдПрдХ рдореБрдлреНрдд рдбреЗрдореЛ рд╕рдВрд╕реНрдХрд░рдг рд╣реИ рдФрд░ рдЕрдиреБрднрд╡реА рдкрд╛рдпрд▓рдЯреЛрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░, рдЙрдбрд╝рд╛рди рдХреЗ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдпрд╛рдВрддреНрд░рд┐рдХреА рдХрд╛ рдмрд╣реБрдд рд╕рдЯреАрдХ рд░реВрдк рд╕реЗ рдЕрдиреБрдХрд░рдг рдХрд░рддрд╛ рд╣реИредрдЖрдк рдХреАрдмреЛрд░реНрдб рд╕реЗ рдпрд╛ рдЬреЙрдпрд╕реНрдЯрд┐рдХ рд╕реЗ рд╕рд┐рдореНрдпреБрд▓реЗрдЯрд░ рдореЗрдВ рд╡рд┐рдорд╛рди рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдХреАрдмреЛрд░реНрдб рдкрд╛рдпрд▓рдЯрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдЦрд░рд╛рдм рд░реВрдк рд╕реЗ рдЕрдиреБрдХреВрд▓ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдмрдЯрди рдХреЗрд╡рд▓ рдПрдХ рдЕрд╕рддрдд рдорд╛рди рд╕рдВрдЪрд╛рд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ (рдмрдЯрди рджрдмрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ / рджрдмрд╛рдпрд╛ рдирд╣реАрдВ рдЧрдпрд╛ рд╣реИ) рдФрд░ рд╕реБрдЪрд╛рд░реВ рд░реВрдк рд╕реЗ рдмрджрд▓рддреЗ рдордзреНрдпрд╡рд░реНрддреА рдореВрд▓реНрдпреЛрдВ рдХреЛ рдкреНрд░рд╕рд╛рд░рд┐рдд рдХрд░рдирд╛ рдЕрд╕рдВрднрд╡ рд╣реИред рдПрдирд╛рд▓реЙрдЧ рд╕реНрдЯрд┐рдХреНрд╕ рдХреЗ рд╕рд╛рде рдЧреЗрдо рдХрдВрд╕реЛрд▓ рд╕реЗ рдЬреЙрдпрд╕реНрдЯрд┐рдХреНрд╕ рдмрд╣реБрдд рдмреЗрд╣рддрд░ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЙрдирдХреЗ рдкрд╛рд╕ рдПрдХ рдмрд╣реБрдд рдЫреЛрдЯреА рдЫрдбрд╝реА рд╣реИ, рдЬреЛ рдЖрдкрдХреЛ рдбрд┐рд╡рд╛рдЗрд╕ рдХреЛ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рджреЗрддреА рд╣реИред рдПрдХ рд╕рд┐рдореНрдпреБрд▓реЗрдЯрд░ рдХреЗ рд▓рд┐рдП рдПрдХ рдЖрджрд░реНрд╢ рд╡рд┐рдХрд▓реНрдк рдПрдХ рд╡рд┐рд╢реЗрд╖ рдПрдбреЗрдкреНрдЯрд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдПрдХ рдХрдВрдкреНрдпреВрдЯрд░ рд╕реЗ рдЬреБрдбрд╝рд╛ рдПрдХ рд╡рд┐рдорд╛рди рдореЙрдбрд▓ рдХрдВрд╕реЛрд▓ рд╣реИ, рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдЗрд╕реЗ рдЬреЙрдпрд╕реНрдЯрд┐рдХ рдХреЗ рд░реВрдк рдореЗрдВ рджреЗрдЦрддрд╛ рд╣реИредрдореЗрд░реЗ рдкрд╛рд╕ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдПрдХ рдХреНрд╡рд╛рдбреНрд░реЛрдХреЙрдкреНрдЯрд░ рдерд╛, рдЬреЛ рдЗрддреНрдореАрдирд╛рди рд╕реЗ рдлрд╝реНрд▓рд╛рдЗрдЯ рдФрд░ рдлрд╝реЛрдЯреЛрдЧреНрд░рд╛рдлрд╝реА рдХреЗ рд▓рд┐рдП рдЗрдХрдЯреНрдард╛ рд╣реБрдЖ, рд▓реЗрдХрд┐рди рд░реЗрд╕рд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдмрдбрд╝рд╛ рдФрд░ рднрд╛рд░реА рдерд╛ред рддрджрдиреБрд╕рд╛рд░, рдПрдХ рд░рд┐рдореЛрдЯ рдХрдВрдЯреНрд░реЛрд▓ рдерд╛ - рдЯрд░реНрдирдЬреА 9 рдПрдХреНрд╕ (рдкрд╣рд▓реЗ рдЪрд┐рддреНрд░рдг рдореЗрдВ)ред рдкреАрдЫреЗ рдХреА рддрд░рдл, рдЗрд╕рдореЗрдВ рдПрдХ рдПрдбреЗрдкреНрдЯрд░ рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдХрдиреЗрдХреНрдЯрд░ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдПрдХ рдкреАрдкреАрдПрдо рд╕рд┐рдЧреНрдирд▓ рдЖрдЙрдЯрдкреБрдЯ рд╣реИред рдпрд╣ рд╕рдВрдХреЗрдд 1 рд╕реЗ 2 рдорд┐рд▓реАрд╕реЗрдХрдВрдб рдХреЗ рдЕрдВрддрд░рд╛рд▓ рдХреЗ рд╕рд╛рде рдПрдХ рдЫреЛрдЯреА рдирд╛рдбрд╝реА рд╣реИ, рдЬрд┐рд╕рдХреА рдЕрд╡рдзрд┐ рдирд┐рдпрдВрддреНрд░рдг рдХреА рд╕реНрдерд┐рддрд┐ рд╕реЗ рдореЗрд▓ рдЦрд╛рддреА рд╣реИ (рдбрд┐рдХреЛрдбрд┐рдВрдЧ рдкрд░ рдЕрдиреБрднрд╛рдЧ рдореЗрдВ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ)ред
рдореБрдЭреЗ рдХрд╣рдирд╛ рд╣реЛрдЧрд╛ рдХрд┐ PPM рд╕реЗ USB рддрдХ рдХреЗ рд░рд┐рдореЛрдЯ рдХрдВрдЯреНрд░реЛрд▓ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдбрд╛рдкреНрдЯрд░реЛрдВ рдХреЛ рд▓рдВрдмреЗ рд╕рдордп рд╕реЗ рдЬрд╛рд░реА рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ рдФрд░ рдЗрдиреНрд╣реЗрдВ рдореБрдЦреНрдп рдФрд░ рдореБрдЦреНрдп рдХреЗ рд╕рд╛рде рдмреЗрдЪрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИред рдлреНрд▓реИрд╢ рдбреНрд░рд╛рдЗрд╡ рдлреЙрд░реНрдо рдлреИрдХреНрдЯрд░ рдореЗрдВ рдПрдХ рд╕рдорд╛рди рдПрдбреЙрдкреНрдЯрд░ рдЪреАрди рдореЗрдВ $ 5 рдХреЗ рд▓рд┐рдП рдЦрд░реАрджрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдпрд╛ рд░реВрд╕реА рд╕реНрдЯреЛрд░реНрд╕ рдореЗрдВ рдереЛрдбрд╝рд╛ рдЕрдзрд┐рдХ рдорд╣рдВрдЧрд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред AVR рдирд┐рдпрдВрддреНрд░рдХреЛрдВ рдкрд░ рдУрдкрди-рд╕реЛрд░реНрд╕ рдПрдбреЗрдкреНрдЯрд░ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рднреА рд╣реИрдВ редрд▓реЗрдХрд┐рди рддреБрд░рдВрдд рдЙрдбрд╝рд╛рди рднрд░рдиреЗ рдХреА рддреАрд╡реНрд░ рдЗрдЪреНрдЫрд╛ рдореЗрд░реЗ рд▓рд┐рдП рджреЗрд░ рд╢рд╛рдо рдХреЛ рдЖрдИ, рдЬрдм рд╕рднреА рдореЙрд╕реНрдХреЛ рд╡рд┐рдорд╛рди рдореЙрдбрд▓ рд╕реНрдЯреЛрд░ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдмрдВрдж рдереЗред рдореИрдВ рд╕реБрдмрд╣ рдЗрдВрддрдЬрд╛рд░ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛, рдПрдЯреАрдореЗрдЧрд╛ рдХреЗ рд╕рд╛рде рдмреЛрд░реНрдб рдХреЛ рдЬрд╣рд░ рдФрд░ рдорд┐рд▓рд╛рдк рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рд╕рдордп рдирд╣реАрдВ рдерд╛, рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдПрд╕рдЯреАрдПрдо 32 рдПрдл 3 рдбрд┐рд╕реНрдХреЛрд╡рд░реА рдмреЛрд░реНрдб рдкрд░ рдкреАрдкреАрдПрдо-рдпреВрдПрд╕рдмреА рдПрдбрд╛рдкреНрдЯрд░ рдмрдирд╛рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛, рдЬреЛ рд▓рдВрдмреЗ рд╕рдордп рд╕реЗ рдирд┐рд╖реНрдХреНрд░рд┐рдп рдерд╛ рдФрд░ рдмрд╕ рд╣рд╛рде рдореЗрдВ рдерд╛редрдХреНрдпрд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ
рдПрдбреЗрдкреНрдЯрд░ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА:рдбрд┐рд╕реНрдХрд╡рд░реА рдбрд┐рдмрдЧ рдмреЛрд░реНрдб рдХрд╛рдлреА рдорд╣рдВрдЧреЗ рд╣реИрдВред рд╡рд░реНрдгрд┐рдд F3 рдХреА рд▓рд╛рдЧрдд рд▓рдЧрднрдЧ $ 20 рд╣реИ рдФрд░ рдЗрд╕ рддрд░рд╣ рдХреА рд╕рд░рд▓ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд▓рд┐рдП рдЗрд╕рдХреА рдХреНрд╖рдорддрд╛рдПрдВ рдмреЗрдорд╛рдиреА рд╣реИрдВред рдореИрдВрдиреЗ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдХреНрдпреЛрдВрдХрд┐ рд▓рд┐рдЦрдиреЗ рдХреЗ рд╕рдордп рдпрд╣ рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ USB рдХреЗ рд╕рд╛рде рдПрдХрдорд╛рддреНрд░ рдмреЛрд░реНрдб рдерд╛ рдЬреЛ рдореБрдЭреЗ рдШрд░ рдкрд░ рдорд┐рд▓рд╛ рдерд╛ред рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЬрд┐рдиреНрд╣реЛрдВрдиреЗ рдЗрд╕реЗ рдЕрднреА рддрдХ рдирд╣реАрдВ рдЦрд░реАрджрд╛ рд╣реИ, рдореИрдВ рдЖрдкрдХреЛ рд╕рд▓рд╛рд╣ рджреЗ рд╕рдХрддрд╛ рд╣реВрдВ рдХрд┐ $ 3 рдХреЗ рд▓рд┐рдП AliExpress рд╕реЗ STM32F103C8T6 рдирд┐рдпрдВрддреНрд░рдХ рдХреЗ рд╕рд╛рде рд▓рдШреБ рдмреЛрд░реНрдбреЛрдВ рдкрд░ рдзреНрдпрд╛рди рджреЗрдВ рдФрд░ рд╡рд╣рд╛рдВ рд╕реЗ рдПрдХ рдПрд╕рдЯреА-рд▓рд┐рдВрдХ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ред рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд▓реЗрдЦ рдореЗрдВ рд╡рд░реНрдгрд┐рдд рд╕реЗ рднрд┐рдиреНрди рдирд╣реАрдВ рд╣реЛрддреА рд╣реИред рдЬрдм рддрдХ рд╢реБрд░реБрдЖрдд рдореЗрдВ рдПрдХ рдФрд░ рдирд┐рдпрдВрддреНрд░рдХ рдЪреБрдирдирд╛ рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реЛрдЧрд╛, рдХреНрд╡рд╛рд░реНрдЯреНрдЬ рдЧреБрдВрдЬрдпрдорд╛рди рдпрдВрддреНрд░ рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рдХрд╛ рд╕рдВрдХреЗрдд рджреЗрдВ рдФрд░ рдереЛрдбрд╝рд╛ рдЕрд▓рдЧ рдкрд┐рдирдЖрдЙрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВредSTM32CubeMX рдореЗрдВ рдПрдХ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмрдирд╛рдирд╛
STM32Cube рдПрдХ рдкреИрдХреЗрдЬ рд╣реИ рдЬрд┐рд╕реЗ STMicroelectronics рджреНрд╡рд╛рд░рд╛ рд╡рд┐рдХрд╕рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рддрд╛рдХрд┐ STM32 рдбрд┐рд╡рд╛рдЗрд╕ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рд▓рд┐рдП рдЬреАрд╡рди рдЖрд╕рд╛рди рд╣реЛ рд╕рдХреЗред рдЗрд╕рдореЗрдВ CubeMX рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рдЙрдкрдпреЛрдЧрд┐рддрд╛, HAL рдбреНрд░рд╛рдЗрд╡рд░ рдФрд░ рдорд┐рдбрд▓рд╡реЗрдпрд░ рдШрдЯрдХ рд╢рд╛рдорд┐рд▓ рд╣реИрдВредCubeMX рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмрдирд╛рдиреЗ рдФрд░ рдмрд╛рд╣реНрдп рдЙрдкрдХрд░рдгреЛрдВ рдХреЛ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЙрдкрдХрд░рдг рд╣реИред рдЖрд░рдВрдн рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдмрд╕ рдирд┐рдпрдВрддреНрд░рдХ рдХрд╛ рдЪрдпрди рдХрд░реЗрдВ, рдЖрд╡рд╢реНрдпрдХ рдореЙрдбреНрдпреВрд▓ рдХреЗ рд▓рд┐рдП рдмрдХреНрд╕реЗ рдХреА рдЬрд╛рдВрдЪ рдХрд░реЗрдВ, рдореЗрдиреВ рдореЗрдВ рдЖрд╡рд╢реНрдпрдХ рдореЛрдб рдХрд╛ рдЪрдпрди рдХрд░реЗрдВ рдФрд░ рдХрдИ рдХреНрд╖реЗрддреНрд░реЛрдВ рдореЗрдВ рд╡рд╛рдВрдЫрд┐рдд рдорд╛рди рджрд░реНрдЬ рдХрд░реЗрдВред CubeMX рдкрд░рд┐рдпреЛрдЬрдирд╛ рдЙрддреНрдкрдиреНрди рдХрд░реЗрдЧрд╛ рдФрд░ рдЖрд╡рд╢реНрдпрдХ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЛ рдЗрд╕рд╕реЗ рдЬреЛрдбрд╝ рджреЗрдЧрд╛ред рдбрд┐рд╡рд╛рдЗрд╕ рдХрд╛ рдбреЗрд╡рд▓рдкрд░ рдХреЗрд╡рд▓ рдЖрд╡реЗрджрди рдХрд╛ рддрд░реНрдХ рд▓рд┐рдЦреЗрдЧрд╛редрдПрдЪрдПрдПрд▓ рдбреНрд░рд╛рдЗрд╡рд░(рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдПрдмреНрд╕реНрдЯреНрд░реЗрдХреНрд╢рди рд▓реЗрдпрд░) рдорд╛рдЗрдХреНрд░реЛрдХрдВрдЯреНрд░реЛрд▓рд░ рдХреЗ рдореЙрдбреНрдпреВрд▓ рдФрд░ рдмрд╛рд╣реНрдп рдЙрдкрдХрд░рдгреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдПрдкреАрдЖрдИ рд╣реИред HAL рдЖрдкрдХреЛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреА рдКрдкрд░реА рдкрд░рдд рдХреЛ рдЕрд▓рдЧ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ рдЬреЛ рдбреЗрд╡рд▓рдкрд░ рд░рдЬрд┐рд╕реНрдЯрд░реЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рд╕реЗ рдмрдирд╛рддрд╛ рд╣реИ рдФрд░ STM32 рдирд┐рдпрдВрддреНрд░рдХ рдкрд░рд┐рд╡рд╛рд░реЛрдВ рдХреЗ рдмреАрдЪ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЛрдб рдХреЛ рдпрдерд╛рд╕рдВрднрд╡ рдкреЛрд░реНрдЯреЗрдмрд▓ рдмрдирд╛рддрд╛ рд╣реИредMiddlewares , рдпрд╛ рдордзреНрдпрд╡рд░реНрддреА рдШрдЯрдХреЛрдВ, рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо FreeRTOS, рдлрд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо, рдпреВрдПрд╕рдмреА рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ, рдЯреАрд╕реАрдкреА / рдЖрдИрдкреА, рдЖрджрд┐ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдореЗрдВ рд╢рд╛рдорд┐рд▓рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЕрдм рд░рдЬрд┐рд╕реНрдЯрд░реЛрдВ рдХреЛ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рд▓рд┐рдЦрдиреЗ рдХреЗ рдмрдЬрд╛рдп "рдорд╛рдЙрд╕ рдХреЗ рд╕рд╛рде рдкреНрд░реЛрдЧреНрд░рд╛рдо" рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИред рд▓реЗрдХрд┐рди рд╕рд╛рджрдЧреА рдФрд░ рд╕реБрд╡рд┐рдзрд╛ рдЗрд╕ рддрдереНрдп рдХреЛ рд░рджреНрдж рдирд╣реАрдВ рдХрд░рддреА рд╣реИ рдХрд┐ рдЖрдкрдХреЛ рдкреНрд░рд▓реЗрдЦрди рдХрд╛ рдЕрдзреНрдпрдпрди рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЦрд╛рд╕рдХрд░ рдРрд╕реЗ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдЬрд╣рд╛рдВ рдЖрдкрдХреЛ рдЕрдзрд┐рдХрддрдо рдЧрддрд┐, рдиреНрдпреВрдирддрдо рдмрд┐рдЬрд▓реА рдХреА рдЦрдкрдд рдХреЛ рдирд┐рдЪреЛрдбрд╝рдиреЗ рдпрд╛ рдЧреИрд░-рдорд╛рдирдХ рдореЛрдб рдореЗрдВ рдмрд╛рд╣реНрдп рдЙрдкрдХрд░рдгреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред STM32Cube рдЕрднреА рддрдХ рдорд╛рдЗрдХреНрд░реЛрдХрдВрдЯреНрд░реЛрд▓рд░ рдХреА рд╕рднреА рдХреНрд╖рдорддрд╛рдУрдВ рдХрд╛ 100% рдХрд╡рд░ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдЖ рд░рд╣рд╛ рд╣реИред STMicroelectronics рд╕рдордп-рд╕рдордп рдкрд░ рдХреНрдпреВрдм рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рддрд╛ рд╣реИ, рдлрд╝рдВрдХреНрд╢рдВрд╕ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдмрдЧреНрд╕ рдХреЛ рдареАрдХ рдХрд░рддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдХреНрдпреВрдм рд╕реНрдерд╛рдкрд┐рдд рд╣реИ, рддреЛ рдЬрд╛рдВрдЪреЗрдВ рдХрд┐ рдпрд╣ рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг рд╣реИредрдкреНрд░рд╛рд░рдВрднрд┐рдХ рд╕реЗрдЯрд┐рдВрдЧреНрд╕
рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдирд┐рдпрдВрддреНрд░рдХ рдХреА рдкрд╕рдВрдж рд╕реЗ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИред STM32CubeMX рд▓реЙрдиреНрдЪ рдХрд░реЗрдВ, рдирдпрд╛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ ред MCU рдЪрдпрдирдХрд░реНрддрд╛ рдЯреИрдм рдкрд░, рдЖрдк рдлрд╝рд┐рд▓реНрдЯрд░ рд╕реЗ рд╡рд╛рдВрдЫрд┐рдд рдирд┐рдпрдВрддреНрд░рдХ рдХрд╛ рдЪрдпрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЪреВрдВрдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд╕рдорд╛рдкреНрдд рдбрд┐рдмрдЧ рдмреЛрд░реНрдб рд╣реИ, рдмреЛрд░реНрдб рдЪрдпрдирдХрд░реНрддрд╛ рдЯреИрдм рдкрд░ , рд╣рдореЗрдВ STM32F3Discovery рд▓рдЧрддрд╛ рд╣реИ ред рдПрдХ рдмреЛрд░реНрдб рдЪреБрдирдиреЗ рдХреЗ рдмрд╛рдж, рд╣рд╛рдЗрд▓рд╛рдЗрдЯ рдФрд░ рд╣рд╕реНрддрд╛рдХреНрд╖рд░рд┐рдд рдкрд┐рди рдХреЗ рд╕рд╛рде рдирд┐рдпрдВрддреНрд░рдХ рдХреА рдПрдХ рдЫрд╡рд┐ рджрд┐рдЦрд╛рдИ рджреЗрдЧреАредрдЦрд┐рдбрд╝рдХреА рдХреЗ рдКрдкрд░реА рд╣рд┐рд╕реНрд╕реЗ рдореЗрдВ рдЪрд╛рд░ рдмрдбрд╝реЗ рдЯреИрдм рд╣реИрдВ:рдкрд┐рдирдЖрдЙрдЯ - рдкрд┐рди рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдФрд░ рдкреНрд░реАрд╕реЗрдЯрд┐рдВрдЧ рдореЙрдбреНрдпреВрд▓ рдХреЗ рд▓рд┐рдПред рд╣рдо рдлрд┐рд▓рд╣рд╛рд▓ рдЗрд╕ рдкрд░ рдХрд╛рдпрдо рд╣реИрдВредрдХреНрд▓реЙрдХ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди - рдХреНрд▓реЙрдХ рд╕реЗрдЯрд┐рдВрдЧ, рдкреАрдПрд▓рдПрд▓, рдбрд┐рд╡рд╛рдЗрдбрд░редрдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди - рдмрд╛рд╣реНрдп рдЙрдкрдХрд░рдгреЛрдВ рдФрд░ рдорд┐рдбрд▓рд╡реЗрдпрд░ рдХреЗ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддреГрдд рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рдиредрдкрд╛рд╡рд░ рдХрдВрдЬрдореНрдкрд╢рди рдХреИрд▓рдХреБрд▓реЗрдЯрд░ - рдорд╛рдЗрдХреНрд░реЛрдХрдВрдЯреНрд░реЛрд▓рд░ рджреНрд╡рд╛рд░рд╛ рдЙрдкрднреЛрдЧ рдХреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рдмрд┐рдЬрд▓реА рдХреА рдЧрдгрдирд╛ред рдкрд┐рдирдЖрдЙрдЯ
рдЯреИрдм рдкрд░ рдмрд╛рдПрдВ рдореЗрдиреВ рдореЗрдВ, рдЖрдк рд╡рд╛рдВрдЫрд┐рдд рдмрд╛рд╣реНрдп рдЙрдкрдХрд░рдгреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдирд┐рдпрдВрддреНрд░рдХ рд╕рд░реНрдХрд┐рдЯ рдкрд░ рдорд╛рдЗрдХреНрд░реЛрдХрдВрдЯреНрд░реЛрд▓рд░ рдХреЗ рдХрд┐рд╕реА рднреА рдЖрдЙрдЯрдкреБрдЯ рдХреЗ рд▓рд┐рдП рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЪрдпрди рдХрд░реЗрдВред рдмрд╛рдИрдВ рдУрд░ рдХреБрдЫ рдЖрдЗрдЯрдо рдкреНрд░рддреАрдХ рд╣реИрдВред рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рд╣реИ рдХрд┐ рдореЙрдбреНрдпреВрд▓ (рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ ADC, DAC, OPAMP2, RTC) рдХрд╛ рдЙрдкрдпреЛрдЧ рдЕрдм рдЕрдкреВрд░реНрдг рд░реВрдк рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЙрдирдХреЗ рдХреБрдЫ рдЖрдЙрдЯрдкреБрдЯ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЕрдиреНрдп рдХрд╛рд░реНрдпреЛрдВ рдореЗрдВ рд╣реИрдВредрдирд┐рдпрдВрддреНрд░рдХ рд╕рд░реНрдХрд┐рдЯ рдкрд░ рд╣рд░реЗ рд░рдВрдЧ рдореЗрдВ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдП рдЧрдП рдкрд┐рди рд╣рд╛рдЗрд▓рд╛рдЗрдЯ рдХрд┐рдП рдЧрдП рд╣реИрдВред рдЪреВрдВрдХрд┐ рд╣рдордиреЗ рд╕реНрдЯреНрд░реИрдкрд┐рдВрдЧ рдХреЗ рдмрд┐рдирд╛ рдПрдХ рдирдВрдЧреЗ рдирд┐рдпрдВрддреНрд░рдХ рдХреЛ рдирд╣реАрдВ рдЪреБрдирд╛, рд▓реЗрдХрд┐рди рдПрдХ рддреИрдпрд╛рд░ рдХрд┐рдП рдЧрдП F3- рдбрд┐рд╕реНрдХрд╡рд░реА рдбрд┐рдмрдЧрд┐рдВрдЧ рдмреЛрд░реНрдб рдореЗрдВ рд╕реЗ рдХреБрдЫ рдЖрдЙрдЯрдкреБрдЯ рдкрд╣рд▓реЗ рд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдП рдЧрдП рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рдиреАрд▓рд╛ рдмрдЯрди PA0 рд╕реЗ рдЬреБрдбрд╝рд╛ рд╣реИ, рдФрд░ PE8 ... 15 рд╕реЗ рдПрд▓ рдИ рдбреАред рд╡реЗ рдкрд┐рди рдЬрд┐рдирдХреЗ рд▓рд┐рдП рдХреБрдЫ рдмрд╛рд╣рд░реА рдЙрдкрдХрд░рдг рдбрд┐рд╕реНрдХрд╡рд░реА рд╕реЗ рдЬреБрдбрд╝реЗ рд╣реИрдВ, рдХреЛ рдирд╛рд░рдВрдЧреА рдореЗрдВ рд╣рд╛рдЗрд▓рд╛рдЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЙрдирдХреЗ рд▓рд┐рдП рдкрд░рд┐рдзреАрдп рдореЙрдбреНрдпреВрд▓ рдЕрднреА рддрдХ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдирд╣реАрдВ рдХрд┐рдП рдЧрдП рд╣реИрдВред рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдпреЗ USB рдХреЗ рд▓рд┐рдП рдкрд┐рди, рдХреНрд╡рд╛рд░реНрдЯреНрдЬ рд░реЗрдЬрд╝реЛрдирд░реЗрдЯрд░, SPI рдФрд░ I2C рдХреЗ рд▓рд┐рдП gyroscope рдФрд░ рдХрдореНрдкрд╛рд╕, USB рдХреЗ рд▓рд┐рдП DP рдФрд░ DM рд╣реИрдВред рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдЧреНрд░реЗ рдирд┐рд╖реНрдХрд░реНрд╖реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЙрдирдореЗрдВ рд╕реЗ рдХреЛрдИ рднреА рд╣рдо рдЕрдкрдиреЗ рдЙрджреНрджреЗрд╢реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЖрд╡реЗрджрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВредрдЗрдирдкреБрдЯ рдЪрдпрди
рд╣рдо рджрд╛рд▓реЛрдВ рдХреА рдЕрд╡рдзрд┐ рдкрд░ рдХрдмреНрдЬрд╛ рдХрд░рдиреЗ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдЗрдирдкреБрдЯ рдХреЛ рдХрд┐рд╕реА рднреА рдЯрд╛рдЗрдорд░ рдХреЗ рдПрдХ рдЪреИрдирд▓ рд╕реЗ рдЬреБрдбрд╝рд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЯрд░реНрдирдЬреА 9 рдПрдХреНрд╕ рдХреЗ рд╕рд╛рде рд╕рд┐рдЧреНрдирд▓ рд╕реНрддрд░ рдПрд╕рдЯреАрд╡реА 32 рдХреА рдЖрдкреВрд░реНрддрд┐ рд╡реЛрд▓реНрдЯреЗрдЬ рдХреА рддрд░рд╣ 3.3 рд╡реА рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди 5 рд╡реА рд╣реИред рд╣рдо рд╡реЛрд▓реНрдЯреЗрдЬ рд╡рд┐рднрдХреНрдд рдХреЛ рдорд┐рд▓рд╛рдк рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЖрд▓рд╕реА рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдЖрдкрдХреЛ рдПрдХ рдЗрдирдкреБрдЯ рдЪреБрдирдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдЬреЛ 5 рд╡реА рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░ рд╕рдХрддрд╛ рд╣реИ (рдЗрди рдЖрджрд╛рдиреЛрдВ рдХреЛ 5 рд╡реА-рд╕рд╣рд┐рд╖реНрдгреБ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ)ред рдкрд┐рди рдФрд░ рдкрд┐рди рд╡рд┐рд╡рд░рдг рдЕрдиреБрднрд╛рдЧ рдореЗрдВ STM32F303VCT6 рдкрд░ рдбреЗрдЯрд╛рд╢реАрдЯ рдореЗрдВ рдЙрдкрдпреБрдХреНрдд рдкрд┐рди рдкрд╛рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ ред STM32F3 рдореЗрдВ рдХрдИ рдЯрд╛рдЗрдорд░ рд╣реИрдВ, рд╡реЗ рд▓рдЧрднрдЧ рд╕рднреА рдкрд┐рдиреЛрдВ рдореЗрдВ рдмрд┐рдЦрд░реЗ рд╣реБрдП рд╣реИрдВред рдПрдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╡рд┐рдХрд▓реНрдк рдкреАрд╕реА 6 рд╣реИред рдпрд╣ 5 рд╡реЛрд▓реНрдЯ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдЬреАрдПрдирдбреА рдХреЗ рдмрдЧрд▓ рдореЗрдВ рдмреЛрд░реНрдб рдХреЗ рдирд┐рдЪрд▓реЗ рдмрд╛рдПрдВ рдХреЛрдиреЗ рдореЗрдВ рд╕реНрдерд┐рдд рд╣реИред рдЗрд╕ рдкрд┐рди рдХреЛ 3rd рдЯрд╛рдЗрдорд░ TIM3_CH1 рдХреЗ 1 рдЪреИрдирд▓ рдХреЛ рдЕрд╕рд╛рдЗрди рдХрд░реЗрдВредрдШрдбрд╝реА рдХреА рд╕реЗрдЯрд┐рдВрдЧ
рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдпреВрдПрд╕рдмреА рдХреЗ рд▓рд┐рдП, рдорд╛рдЗрдХреНрд░реЛрдХрдВрдЯреНрд░реЛрд▓рд░ рдХреЛ рдмрд╣реБрдд рд╕реНрдерд┐рд░ рдЖрд╡реГрддреНрддрд┐ рдкрд░ рджреЗрдЦрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдпрд╣реА рдХрд╛рд░рдг рд╣реИ рдХрд┐ рд▓рдЧрднрдЧ рд╕рднреА рдпреВрдПрд╕рдмреА рдЙрдкрдХрд░рдгреЛрдВ рдореЗрдВ рдХреНрд╡рд╛рд░реНрдЯреНрдЬ рд░рд┐рд╕рд╛рдЗрдЬрд╝рд░ рд╣реЛрддреЗ рд╣реИрдВред рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдЖрд░рд╕реА рдЬрдирд░реЗрдЯрд░ рдХреА рдЖрд╡реГрддреНрддрд┐ рд╕реНрдерд┐рд░рддрд╛ рдпреВрдПрд╕рдмреА рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рдирд╣реАрдВ рд╣реИред рд▓реЗрдХрд┐рди STM32F3 рдбрд┐рд╕реНрдХрд╡рд░реА рдмреЛрд░реНрдб рдкрд░, рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХрд┐рд╕реА рдХрд╛рд░рдг рд╕реЗ рд▓рд╛рд▓рдЪреА рдереЗ рдФрд░ рдХреНрд╡рд╛рд░реНрдЯреНрдЬ рдирд╣реАрдВ рдбрд╛рд▓рддреЗ рдереЗред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЕрдЧрд░ рдЖрдк рдзреНрдпрд╛рди рд╕реЗ рдЕрдзреНрдпрдпрди рд╕рд░реНрдХрд┐рдЯ , рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ MCO рд╕рдВрдХреЗрдд рдЬреБрдбрд╝рд╛ рд╣реБрдЖ рд╣реИ рдЗрдирдкреБрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП PF0-OSC_IN , рдЬрд╣рд╛рдВ рдХреНрд╡рд╛рд░реНрдЯреНрдЬ рдЬреЛрдбрд╝рд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП ред рдпрд╣ рдПрд╕рдЯреА-рд▓рд┐рдВрдХ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рд╕реЗ рдЙрд╕реА рдмреЛрд░реНрдб рдкрд░ рдЖрддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдХреНрд╡рд╛рд░реНрдЯреНрдЬ рд╣реИред рдкреНрд░рдпреЛрдХреНрддрд╛ рдореИрдиреБрдЕрд▓ рдореЗрдВ F3 рдбрд┐рд╕реНрдХрд╡рд░реА (UM1570) рдХреЗ рд▓рд┐рдП рдУрдПрд╕рд╕реА рдШрдбрд╝реА рдЕрдиреБрднрд╛рдЧ рдХрд╛ рдХрд╣рдирд╛ рд╣реИ рдХрд┐ 8 рдореЗрдЧрд╛рд╣рд░реНрдЯреНрдЬ рдХреА рдЬрд╛ рд░рд╣реА рд╣реИ рднреЗрдЬрд╛ рдЗрд╕ рд▓рд╛рдЗрди рдХреЗ рд▓рд┐рдПред
рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдорд╛рдЗрдХреНрд░реЛрдХрдВрдЯреНрд░реЛрд▓рд░ рдХреЛ рдмрд╛рд╣рд░реА рд╕реНрд░реЛрдд рд╕реЗ рджреЗрдЦрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕ рд╡рд┐рдзрд╛ рдХреЛ рдмрд╛рдИрдкрд╛рд╕ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рдореЗрдВ рдкрд░рд┐рдзреАрдп рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдореЗрдиреВ рдореЗрдВ рдЖрд░рд╕реАрд╕реА рдЕрдиреБрднрд╛рдЧ, clocking рдХреЗ рд▓рд┐рдП рд╣рд╛рдИ рд╕реНрдкреАрдб рдШрдбрд╝реА, рдЪрдпрди рдмрд╛рдИрдкрд╛рд╕ рдШрдбрд╝реА рд╕реНрд░реЛрдд ред
рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддреГрдд рдШрдбрд╝реА рд╕реЗрдЯрд┐рдВрдЧ рдкрд░ рдЖрдЧреЗ рдмрдврд╝рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рд╣рдо рдкрд░рд┐рдзреАрдп рдореЗрдиреВ рдореЗрдВ рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдорд╛рдЗрдХреНрд░реЛрдХрдВрдЯреНрд░реЛрд▓рд░ рдПрдХ рдпреВрдПрд╕рдмреА рдбрд┐рд╡рд╛рдЗрд╕ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рд░реНрдп рдХрд░реЗрдЧрд╛ред
рдЕрдм рдЖрдк рдЕрдЧрд▓реЗ рдмрдбрд╝реЗ рдЯреИрдм рдкрд░ рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ - рдХреНрд▓реЙрдХ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди ред рдпрд╣рд╛рдВ рд╣рдо рдПрдХ рд╡рд┐рд╢рд╛рд▓ рдЖрд░реЗрдЦ рджреЗрдЦреЗрдВрдЧреЗ, рдЬреЛ рджрд┐рдЦрд╛рддрд╛ рд╣реИ рдХрд┐ рдорд╛рдЗрдХреНрд░реЛрдХрдВрдЯреНрд░реЛрд▓рд░ рдореЗрдВ рдХреМрди рд╕реЗ рдШрдбрд╝реА рд╕рдВрдХреЗрдд рдореМрдЬреВрдж рд╣реИрдВ, рдЬрд╣рд╛рдВ рд╕реЗ рд╡реЗ рдЖрддреЗ рд╣реИрдВ, рд╡реЗ рдХреИрд╕реЗ рд╢рд╛рдЦрд╛ рдХрд░рддреЗ рд╣реИрдВ, рдЧреБрдгрд╛ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рддреЗ рд╣реИрдВред рдкреАрд▓реЗ рд░рдВрдЧ рдореЗрдВ, рдореИрдВрдиреЗ рдЙрди рдорд╛рдкрджрдВрдбреЛрдВ рдкрд░ рдкреНрд░рдХрд╛рд╢ рдбрд╛рд▓рд╛, рдЬрд┐рди рдкрд░ рдзреНрдпрд╛рди рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
рдЗрдирдкреБрдЯ рдЖрд╡реГрддреНрддрд┐ рдХреА рдЬрд╛рдБрдЪ рдХрд░реЗрдВрдЗрдирдкреБрдЯ рдлреНрд░рд┐рдХреНрд╡реЗрдВрд╕реА 8 рдореЗрдЧрд╛рд╣рд░реНрдЯреНрдЬ рд╣реИредрд╣рдо рдЖрдВрддрд░рд┐рдХ рд╕реНрд░реЛрдд рдХреЗ рдмрдЬрд╛рдп рдмрд╛рд╣рд░реА рд╕реНрд░реЛрдд рд╕реЗ рдШрдбрд╝реА рдХреЗ рд▓рд┐рдП HSE (рд╣рд╛рдИ рд╕реНрдкреАрдб рдПрдХреНрд╕рдЯрд░реНрдирд▓) рдХреЛ PLL рд╕реЛрд░реНрд╕ Mux рд╕реНрд╡рд┐рдЪ рд╕реЗрдЯ рдХрд░рддреЗ рд╣реИрдВ ред рдкреАрдПрд▓рдПрд▓ - рдЪрд░рдг рд▓реЙрдХ рд▓реВрдк, рдпрд╛ рдкреАрдПрд▓рдПрд▓ - рдЪрд░рдг-рд▓реЙрдХ рд▓реВрдк, рдХрдИ рдмрд╛рд░ рдмрд╛рд╣рд░реА рдЖрд╡реГрддреНрддрд┐ рдХреЛ рдЧреБрдгрд╛ рдХрд░рдиреЗ рдХрд╛ рдХрд╛рд░реНрдп рдХрд░рддрд╛ рд╣реИред PLLMul рдЧреБрдгрдХ рдХреЛ 9 рдкрд░ рд╕реЗрдЯ рдХрд░реЗрдВред рдлрд┐рд░ рд╣рдо STM32F303 - 72 рдореЗрдЧрд╛рд╣рд░реНрдЯреНрдЬ рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХрддрдо рд╕рдВрднрд╡ рдЖрд╡реГрддреНрддрд┐ рддрдХ рдкрд╣реБрдВрдЪ рдЬрд╛рдПрдВрдЧреЗред рд╕рд┐рд╕реНрдЯрдо рдХреНрд▓реЙрдХ рдордХреНрд╕ PLLCLK рд╕реНрдерд┐рддрд┐ рдореЗрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рддрд╛рдХрд┐ рдШрдбрд╝реА рдХреА рдЖрд╡реГрддреНрддрд┐ PLL рдХреЗ рд╕рд╛рде рдЧреБрдгрд╛ рд╣реЛред рдпреВрдПрд╕рдмреА рдореЙрдбреНрдпреВрд▓ рдХреЗ рд▓рд┐рдП, 48 рдореЗрдЧрд╛рд╣рд░реНрдЯреНрдЬ рдХреА рдЬрд░реВрд░рдд рд╣реЛрддреА рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпреВрдПрд╕рдмреА рдХреЗ рд╕рд╛рдордиреЗ 1.5 рдбрд┐рд╡рд╛рдЗрдбрд░ рд▓рдЧрд╛рдПрдВред рдЖрд╡реГрддреНрддрд┐ рдкрд░ рдзреНрдпрд╛рди рджреЗрдВAPB1 рдЯрд╛рдЗрдорд░ рд╕рд░реНрдХрд┐рдЯ рдХреЗ рдмрд╛рдИрдВ рдУрд░ рджреЗрдЦрддрд╛ рд╣реИ ред рдпрд╣ рдЯрд╛рдЗрдорд░ рдкрд░ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реИредрдпрджрд┐ рдХреЛрдИ рдЖрд╡реГрддреНрддрд┐ рдЧрд▓рдд рддрд░реАрдХреЗ рд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХреА рдЧрдИ рд╣реИ, рддреЛ рдЕрдзрд┐рдХрддрдо рд╕рдВрднрд╡ рдорд╛рди рд╕реЗ рдЕрдзрд┐рдХ рд╣реИ рдпрд╛ рд╕реНрд╡рд┐рдЪ рдПрдХ рдЕрдорд╛рдиреНрдп рд╕реНрдерд┐рддрд┐ рдореЗрдВ рд╣реИрдВ, рддреЛ CubeMX рдЗрд╕ рд╕реНрдерд╛рди рдХреЛ рд▓рд╛рд▓ рд░рдВрдЧ рдореЗрдВ рдЙрдЬрд╛рдЧрд░ рдХрд░реЗрдЧрд╛редрдЯрд╛рдЗрдорд░ рд╕реЗрдЯрд┐рдВрдЧ
рдкрд▓реНрд╕ рдЕрд╡рдзрд┐ рдХреЛ рдорд╛рдкрдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдЗрдирдкреБрдЯ рдХреИрдкреНрдЪрд░ рдореЛрдб рдореЗрдВ TIM3 рдЯрд╛рдЗрдорд░ рд╢реБрд░реВ рдХрд░реЗрдВрдЧреЗред рдореЗрдВ рд╕рдВрджрд░реНрдн рдореИрдиреБрдЕрд▓ , рдзрд╛рд░рд╛ рдХреЗ рддрд╣рдд рд╕рд╛рдорд╛рдиреНрдп рдЙрджреНрджреЗрд╢реНрдп рдЯрд╛рдЗрдорд░ (TIM2 / TIM3 / TIM4), рд╡рд╣рд╛рдБ рдПрдХ рдЪрд┐рддреНрд░ рдЯрд╛рдЗрдорд░ рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдХреЛ рджрд░реНрд╢рд╛рддрд╛ рд╣реБрдЖ рд╣реИред рд░рдВрдЧреЛрдВ рдХреЗ рд╕рд╛рде, рдореИрдВрдиреЗ рдЗрдирдкреБрдЯ рдХреИрдкреНрдЪрд░ рдореЛрдб рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рд╕рдВрдХреЗрддреЛрдВ рдФрд░ рд░рдЬрд┐рд╕реНрдЯрд░реЛрдВ рдкрд░ рдкреНрд░рдХрд╛рд╢ рдбрд╛рд▓рд╛ред
рд╣рд░реЗ рд░рдВрдЧ рдореЗрдВ рд╣рд╛рдЗрд▓рд╛рдЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдШрдбрд╝реА рд╕рдВрдХреЗрдд рд╕реАрдПрдирдЯреА рдХрд╛рдЙрдВрдЯрд░ рд░рдЬрд┐рд╕реНрдЯрд░ рдореЗрдВ рдкреНрд░рд╡реЗрд╢ рдХрд░рддрд╛ рд╣реИ рдФрд░ 1 рд╣рд░ рдШрдбрд╝реА рдЪрдХреНрд░ рджреНрд╡рд╛рд░рд╛ рдЗрд╕рдХреЗ рдореВрд▓реНрдп рдореЗрдВ рд╡реГрджреНрдзрд┐ рдХрд░рддрд╛ рд╣реИред рдкреНрд░реАрд╕реНрдХреВрд▓рд░ рдкреАрдПрд╕рд╕реА рдбрд┐рд╡рд╛рдЗрдбрд░ рдореЗрдВ, рдзреАрдореА рдЖрд╡реГрддреНрддрд┐ рдХреЗ рд▓рд┐рдП рдШрдбрд╝реА рдХреА рдЖрд╡реГрддреНрддрд┐ рдШрдЯ рд╕рдХрддреА рд╣реИредрдПрдХ рдмрд╛рд╣рд░реА рд╕рд┐рдЧреНрдирд▓ TIMx_CH1 рдкрд░ рдЗрдирдкреБрдЯ рд╣реИ ред рдПрдЬ рдбрд┐рдЯреЗрдХреНрдЯрд░рдпрд╣ рдЗрдирдкреБрдЯ рд╕рд┐рдЧреНрдирд▓ рдХреЗ рдХрд┐рдирд╛рд░реЛрдВ рдХреЛ рдкрд╣рдЪрд╛рдирддрд╛ рд╣реИ - 0 рд╕реЗ 1 рддрдХ рдпрд╛ 1 рд╕реЗ 0. рддрдХ рд╕рдВрдХреНрд░рдордгреЛрдВ рдХреЛ рджрд░реНрдЬ рдХрд░рддрд╛ рд╣реИред рдХрд┐рдирд╛рд░реЗ рдХреЛ рдкрдВрдЬреАрдХреГрдд рдХрд░рддреЗ рд╕рдордп, рдпрд╣ рдкреАрд▓реЗ рд░рдВрдЧ рдореЗрдВ рд╣рд╛рдЗрд▓рд╛рдЗрдЯ рдХрд┐рдП рдЧрдП рджреЛ рдХрдорд╛рдВрдб рднреЗрдЬрддрд╛ рд╣реИ:- CNT рдХрд╛рдЙрдВрдЯрд░ рдХреЗ рдорд╛рди рдХреЛ рдХреИрдкреНрдЪрд░ / 1 рд░рдЬрд┐рд╕реНрдЯрд░ (CCR1) рдФрд░ CC1I рдЗрдВрдЯрд░рдкреНрдЯ рдХреЙрд▓ рдХреА рддреБрд▓рдирд╛ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП ред- рд╕реНрд▓реЗрд╡ рдореЛрдб рдирд┐рдпрдВрддреНрд░рдХ рдХреЗ рд▓рд┐рдП рдПрдХ рдХрдорд╛рдВрдб , рдЬрд┐рд╕рдХреЗ рджреНрд╡рд╛рд░рд╛ CNT рдорд╛рди 0 рдкрд░ рд░реАрд╕реЗрдЯ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдлрд┐рд░ рд╕реЗ рдЙрд▓рдЯреА рдЧрд┐рдирддреА рд╢реБрд░реВ рд╣реЛрддреА рд╣реИредрдпрд╣рд╛рдБ рдПрдХ рд╕рдордп рд░реЗрдЦрд╛ рдореЗрдВ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд╛ рдЪрд┐рддреНрд░рдг рд╣реИ:
рдЬрдм рдХреЛрдИ рдмрд╛рдзрд╛ рдЙрддреНрдкрдиреНрди рд╣реЛрддреА рд╣реИ, рддреЛ рд╣рдо рдкрдХрдбрд╝реЗ рдЧрдП рдореВрд▓реНрдп рдХреЗ рд╕рд╛рде рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХрд░реЗрдВрдЧреЗред рдпрджрд┐ рдЗрдирдкреБрдЯ рджрд╛рд▓реЗрдВ рдмрд╣реБрдд рдмрд╛рд░ рдЖрддреА рд╣реИрдВ, рдФрд░ рдмрд╛рдзрд╛ рд╣реИрдВрдбрд▓рд░ рдореЗрдВ рд╣реЛрдиреЗ рд╡рд╛рд▓реА рдХреНрд░рд┐рдпрд╛рдПрдВ рдмрд╣реБрдд рд▓рдВрдмреА рд╣реЛрддреА рд╣реИрдВ, рддреЛ рдкрд┐рдЫрд▓реЗ рдПрдХ рдХреЛ рдкрдврд╝рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рд╕реАрд╕реАрдЖрд░ 1 рдХреЗ рдореВрд▓реНрдп рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдЬрдм рдЖрдк CCR1 рдХреЗ рдбреЗрдЯрд╛ рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдореЗрдореЛрд░реА рдореЗрдВ рднрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рдУрд╡рд░рдХреИрдкреНрдЯреНрдпреЛрд░ рдлреНрд▓реИрдЧ рдХреА рдЬрд╛рдБрдЪ рдХрд░рдиреЗ рдпрд╛ рдбреАрдПрдордП (рдбрд╛рдпрд░реЗрдХреНрдЯ рдореЗрдореЛрд░реА рдПрдХреНрд╕реЗрд╕) рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╕рдмрд╕реЗ рдЫреЛрдЯреА рдирд╛рдбрд╝реА рдХреА рдЕрд╡рдзрд┐ 1 рдорд┐рд▓реАрд╕реЗрдХрдВрдб рд╣реЛрддреА рд╣реИ, рдФрд░ рдЗрдВрдЯрд░рдкреНрдЯ рд╣реИрдВрдбрд▓рд░ рд╕рд░рд▓ рдФрд░ рдЫреЛрдЯрд╛ рд╣реЛрдЧрд╛, рдЗрд╕рд▓рд┐рдП рдУрд╡рд░рд░рд╛рдЗрдЯрд┐рдВрдЧ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЪрд┐рдВрддрд╛ рди рдХрд░реЗрдВред рдЬрд╛рдУрдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд╛рдкрд╕ Pinout рдЯреИрдм рдФрд░ рд╕реЗрдЯ TIM3 рдЯрд╛рдЗрдорд░ рдореЗрдВ рдмрд╛рд╣реНрдп рдЙрдкрдХрд░рдгреЛрдВ рдореЗрдиреВ ред
рд╕реНрд▓реЗрд╡ рдореЛрдб: рд░реАрд╕реЗрдЯ рдореЛрдб- рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдХрд┐рд╕реА рдШрдЯрдирд╛ рдореЗрдВ рдЯрд╛рдЗрдорд░ рдХреЛ 0.рдЯреНрд░рд╛рдЗрдЧрд░ рд╕реНрд░реЛрдд рдкрд░ рд░реАрд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ : TI1FP1 - рдЯрд╛рдЗрдорд░ рдХреЛ рд░реАрд╕реЗрдЯ рдХрд░рдиреЗ рдФрд░ рд╕реНрдЯрд╛рд░реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рдШрдЯрдирд╛ TI1 рдЗрдирдкреБрдЯ рд╕реЗ рдХреИрдкреНрдЪрд░ рдХрд┐рдП рдЧрдП рд╕рд┐рдЧреНрдирд▓ рдПрдЬ рд╣реИредрдХреНрд▓реЙрдХрд╕реЛрд░реНрд╕: рдЖрдВрддрд░рд┐рдХ рдШрдбрд╝реА - рдЯрд╛рдЗрдорд░ рдХреЛ рдорд╛рдЗрдХреНрд░реЛрдХрдВрдЯреНрд░реЛрд▓рд░ рдХреЗ рдЖрдВрддрд░рд┐рдХ рдЬрдирд░реЗрдЯрд░ рд╕реЗ рджреЗрдЦрд╛ рдЬрд╛рддрд╛ рд╣реИредрдЪреИрдирд▓ 1: рдЗрдирдкреБрдЯ рдХреИрдкреНрдЪрд░ рдбрд╛рдпрд░реЗрдХреНрдЯ рдореЛрдб - CCR1 рд░рдЬрд┐рд╕реНрдЯрд░ рдореЗрдВ 1 рдЪреИрдирд▓ рд╕реЗ рдЗрдВрдЯрд░рд╡рд▓ рдХреИрдкреНрдЪрд░ рдХрд░реЗрдВредрдЕрдЧрд▓реЗ рдмрдбрд╝реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдЯреИрдм рдкрд░, рд╣рдо рдЕрддрд┐рд░рд┐рдХреНрдд рдЯрд╛рдЗрдорд░ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХрд░реЗрдВрдЧреЗредрдкреНрд░реАрд╕реНрдХреВрд▓рд░ рдПрдХ рдЯрд╛рдЗрдорд░ рдбрд┐рд╡рд╛рдЗрдбрд░ рд╣реИред рдпрджрд┐ рдпрд╣ 0 рд╣реИ, рддреЛ рдлреНрд░реАрдХреНрд╡реЗрдВрд╕реА рдХреЛ рд╕реАрдзреЗ рдХреНрд▓реЙрдХ рдмрд╕ APB рдХреНрд▓реЙрдХ - 72 MHz рд╕реЗ рд▓рд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрджрд┐ рдкреНрд░реАрд╕реНрдХреВрд▓рд░ 1 рд╣реИ, рддреЛ рдЖрд╡реГрддреНрддрд┐ 2 рд╕реЗ рд╡рд┐рднрд╛рдЬрд┐рдд рд╣реЛрддреА рд╣реИ рдФрд░ 36 рдореЗрдЧрд╛рд╣рд░реНрдЯреНрдЬ рдмрди рдЬрд╛рддреА рд╣реИред рд╡рд┐рднрд╛рдЬрдХ рдХреЛ 71 рдкрд░ рд╕реЗрдЯ рдХрд░реЗрдВ рддрд╛рдХрд┐ рдЖрд╡реГрддреНрддрд┐ 72 рд╕реЗ рд╡рд┐рднрд╛рдЬрд┐рдд рд╣реЛред рдлрд┐рд░ рдЯрд╛рдЗрдорд░ рдЖрд╡реГрддреНрддрд┐ 1 рдореЗрдЧрд╛рд╣рд░реНрдЯреНрдЬ рд╣реЛрдЧреА рдФрд░ рдЕрдВрддрд░рд╛рд▓ рдХреЛ 1 рдорд╛рдЗрдХреНрд░реЛрд╕реЗрдХрдВрдб рдХреЗ рд╕рдВрдХрд▓реНрдк рдХреЗ рд╕рд╛рде рдорд╛рдкрд╛ рдЬрд╛рдПрдЧрд╛редрдХрд╛рдЙрдВрдЯрд░ рдЕрд╡рдзрд┐ - рдЕрдзрд┐рдХрддрдо рд╕рдВрднрд╡ 16-рдмрд┐рдЯ рдорд╛рди 0xFFFF рд╕реЗрдЯ рдХрд░реЗрдВред рд╕рдордп рд╕реНрд▓реЙрдЯ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрд╡рдзрд┐ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдкреАрдбрдмреНрд▓реВрдПрдо рдХреЗ рд▓рд┐рдПред рд▓реЗрдХрд┐рди рд╕рдВрдХреЗрддреЛрдВ рдХреЛ рдХреИрдкреНрдЪрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрд╡рдзрд┐ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдирд╣реАрдВ рд╣реИ, рд╣рдо рдЗрд╕реЗ рдХрд┐рд╕реА рднреА рдЗрдирдкреБрдЯ рджрд╛рд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдмрдбрд╝реЗ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд╛рдирддреЗ рд╣реИрдВредPolarity Selection: рдлрд╝реЙрд▓рд┐рдВрдЧ рдПрдЬ - рдЯрд╛рдЗрдорд░ рд╕рд┐рдЧреНрдирд▓ рдЗрдирдкреБрдЯ рд╕рд┐рдЧреНрдирд▓ рдХреЗ рдЧрд┐рд░рддреЗ рд╣реБрдП рдХрд┐рдирд╛рд░реЗ рдкрд░ рдХреИрдкреНрдЪрд░ рдХрд┐рдП рдЬрд╛рдПрдВрдЧреЗред рдПрдирд╡реАрдЖрдИрд╕реА рд╕реЗрдЯрд┐рдВрдЧреНрд╕рдЯреИрдм рдкрд░, рдПрдХ рдбреЙрд╡ рд▓рдЧрд╛рдПрдВTIM3 рд╡реИрд╢реНрд╡рд┐рдХ рд╡реНрдпрд╡рдзрд╛рди , рддрд╛рдХрд┐ рддреАрд╕рд░реА рдЯрд╛рдЗрдорд░ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдШрдЯрдирд╛рдУрдВ рдореЗрдВ рдПрдХ рд╡реНрдпрд╡рдзрд╛рди рдЙрддреНрдкрдиреНрди рд╣реЛредUSB рдбрд┐рд╡рд╛рдЗрд╕ рд╕реЗрдЯрдЕрдк
рд╣рдордиреЗ рдкрд╣рд▓реЗ рд╣реА рдиреЛрдЯ рдХрд┐рдпрд╛ рд╣реИ рдХрд┐ рдирд┐рдпрдВрддреНрд░рдХ рдПрдХ рдпреВрдПрд╕рдмреА рдбрд┐рд╡рд╛рдЗрд╕ рд╣реЛрдЧрд╛ред рдХреЗ рдмрд╛рдж рд╕реЗ рдЬреЙрдпрд╕реНрдЯрд┐рдХ HID рдбрд┐рд╡рд╛рдЗрд╕ рдХреЗ рд╡рд░реНрдЧ рдореЗрдВ рдХреЗ рдЕрдВрддрд░реНрдЧрдд рдЖрддрд╛ рд╣реИ - Middlewares> USB_DEVICE рдореЗрдиреВ, рдЪрдпрди рд╣реНрдпреВрдорди рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдбрд┐рд╡рд╛рдЗрд╕ рдХреНрд▓рд╛рд╕ (HID): рдХрдХреНрд╖рд╛ рдХреЗ рд▓рд┐рдП FS рдЖрдИрдкреА ред рдлрд┐рд░ CubeMX HID рдбрд┐рд╡рд╛рдЗрд╕ рдХреЗ рд▓рд┐рдП рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░реЗрдЧрд╛ред
рдЖрдЗрдП , Middlewares рдЕрдиреБрднрд╛рдЧ рдореЗрдВ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдЯреИрдм рдкрд░ USB_DEVICE рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдкрд░ рдЬрд╛рдПрдВ :рд╡рд┐рдХреНрд░реЗрддрд╛ рдЖрдИрдбреА рдФрд░ рдЙрддреНрдкрд╛рдж рдЖрдИрдбреА рджреЛ 16-рдмрд┐рдЯ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рд╣реИрдВ рдЬреЛ рдпреВрдПрд╕рдмреА рдбрд┐рд╡рд╛рдЗрд╕ рдХреЗ рдкреНрд░рддреНрдпреЗрдХ рдореЙрдбрд▓ рдХреЗ рд▓рд┐рдП рдЕрджреНрд╡рд┐рддреАрдп рд╣реИрдВред VID рдбрд┐рд╡рд╛рдЗрд╕ рдирд┐рд░реНрдорд╛рддрд╛ рд╕реЗ рдореЗрд▓ рдЦрд╛рддреА рд╣реИ, рдФрд░ рдкреНрд░рддреНрдпреЗрдХ рдирд┐рд░реНрдорд╛рддрд╛ PID рдЕрд╕рд╛рдЗрди рдХрд░рддрд╛ рд╣реИ, рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рд╡рд┐рдЪрд╛рд░реЛрдВ рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрджреЗрд╢рд┐рддред рдореБрдЭреЗ VID рдФрд░ PID рдХреА рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд╕реВрдЪреА рдирд╣реАрдВ рдорд┐рд▓реА, рдореБрдЭреЗ рдХреЗрд╡рд▓ рдЙрддреНрд╕рд╛рд╣реА рд▓реЛрдЧреЛрдВ рджреНрд╡рд╛рд░рд╛ рд╕рдорд░реНрдерд┐рдд рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рдЖрдзрд╛рд░ рдорд┐рд▓рд╛ ред рдЕрдкрдиреА рдЦреБрдж рдХреА рд╡реЗрдВрдбрд░ рдЖрдИрдбреА рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ usb.org рдкрд░ USB рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдлреЛрд░рдо рдореЗрдВ рдЬрд╛рдирд╛ рд╣реЛрдЧрд╛ рдФрд░ рдХреБрдЫ рд╣рдЬрд╝рд╛рд░ рдбреЙрд▓рд░ рдХрд╛ рднреБрдЧрддрд╛рди рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдЫреЛрдЯреА рдХрдВрдкрдирд┐рдпрд╛рдБ рдпрд╛ рдУрдкрди-рд╕реЛрд░реНрд╕ рдбреЗрд╡рд▓рдкрд░ рдЬреЛ рдЕрдкрдирд╛ VID рдирд╣реАрдВ рдЦрд░реАрдж рд╕рдХрддреЗ, USB рдЪрд┐рдк рдирд┐рд░реНрдорд╛рддрд╛ рд╕реЗ рдЕрдиреБрд░реЛрдз рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рддреМрд░ рдкрд░ рдЕрдкрдиреЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП VID / PID рдЬреЛрдбрд╝реА рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕ рддрд░рд╣ рдХреА рд╕реЗрд╡рд╛ рдХреА рдкреЗрд╢рдХрд╢ рдХреА рдЬрд╛рддреА рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдлрдЯреАрдбреАрдЖрдИ рдпрд╛ рд╕рд┐рд▓рд┐рдХреЙрди рдкреНрд░рдпреЛрдЧрд╢рд╛рд▓рд╛рдУрдВ рджреНрд╡рд╛рд░рд╛редрдпрджрд┐ рдЖрдк рджреЛ рдЙрдкрдХрд░рдгреЛрдВ рдХреЛ рдПрдХ рд╣реА VID / PID рд╕реЗ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдПрдХ рдЕрд▓рдЧ рдкреНрд░рдХрд╛рд░ рдХрд╛ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рдПрдХ HID рдбрд┐рд╡рд╛рдЗрд╕ рд╣реИ рдФрд░ рджреВрд╕рд░рд╛ рдорд╛рд╕ рд╕реНрдЯреЛрд░реЗрдЬ рд╣реИ), рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдЙрдирдХреЗ рд▓рд┐рдП рдПрдХ рд╣реА рдбреНрд░рд╛рдЗрд╡рд░ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдЧрд╛, рдФрд░ рдЙрдирдореЗрдВ рд╕реЗ рдХрдо рд╕реЗ рдХрдо рдПрдХ рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ред рдпрд╣реА рдХрд╛рд░рдг рд╣реИ рдХрд┐ рд╡рд┐рднрд┐рдиреНрди рдбрд┐рд╡рд╛рдЗрд╕ рдореЙрдбрд▓ рдХреЗ рд▓рд┐рдП VID / PID рдЬреЛрдбрд╝реЗ рдЕрджреНрд╡рд┐рддреАрдп рд╣реЛрдиреЗ рдЪрд╛рд╣рд┐рдПредрдЪреВрдБрдХрд┐ рд╣рдо рдЕрдкрдиреЗ рд▓рд┐рдП рдПрдХ рдЙрдкрдХрд░рдг рдирд╣реАрдВ рдмрдирд╛ рд░рд╣реЗ рд╣реИрдВ, рд╣рдо рдЗрд╕реЗ рдмреЗрдЪрдиреЗ рдФрд░ рд╡рд┐рддрд░рд┐рдд рдирд╣реАрдВ рдХрд░рдиреЗ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВ, рд╣рдо VID 0x0483 рдХреЛ рдЫреЛрдбрд╝ рджреЗрдВрдЧреЗ, рдЬреЛ STMicroelectronics рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИ, рдФрд░ рд╣рдо рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ PID рдХреЗ рд╕рд╛рде рдЖрдПрдВрдЧреЗред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, CubeMX HID рдбрд┐рд╡рд╛рдЗрд╕ рдХреЗ рд▓рд┐рдП PID 0x5710 рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рдЗрд╕реЗ рдмрджрд▓реЗрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, 0x57FF рдХреЗ рд╕рд╛рдеред рдЙрддреНрдкрд╛рдж рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЛ STM32 PPM-USB рдПрдбрд╛рдкреНрдЯрд░ рд╕реЗрдмрджрд▓реЗрдВред рдпрд╣ рдирд╛рдо рд╡рд┐рдВрдбреЛрдЬ рдХрдВрдЯреНрд░реЛрд▓ рдкреИрдирд▓ рдореЗрдВ рдЙрдкрдХрд░рдгреЛрдВ рдХреА рд╕реВрдЪреА рдореЗрдВ рджрд┐рдЦрд╛рдИ рджреЗрдЧрд╛ред рд╣рдо рдЕрднреА рд╕реАрд░рд┐рдпрд▓ рдирдВрдмрд░ (S \ N) рдирд╣реАрдВ рдмрджрд▓реЗрдВрдЧреЗредрдЬрдм Windows рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рддрд╛ рд╣реИ рдХрд┐ рдпрд╣ VID, PID рдФрд░ S \ N рдХреЗ рд╕рдВрдпреЛрдЬрди рдХреЗ рд╕рд╛рде рдПрдХ рдбрд┐рд╡рд╛рдЗрд╕ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рддрд╛ рд╣реИ, рдЬреЛ рдкрд╣рд▓реЗ рдирд╣реАрдВ рджреЗрдЦрд╛ рд╣реИ, рддреЛ рд╕рд┐рд╕реНрдЯрдо рдЗрд╕рдХреЗ рд▓рд┐рдП рдЙрдкрдпреБрдХреНрдд рдбреНрд░рд╛рдЗрд╡рд░ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддрд╛ рд╣реИред рдпрджрд┐ VID, PID рдФрд░ S \ N рдХреЗ рд╕рдВрдпреЛрдЬрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдкрд╣рд▓реЗ рд╣реА рдХрд┐рдпрд╛ рдЬрд╛ рдЪреБрдХрд╛ рд╣реИ, рддреЛ Windows рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдкрд╣рд▓реЗ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЧрдП рдбреНрд░рд╛рдЗрд╡рд░ рдХреЛ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд░ рджреЗрддрд╛ рд╣реИред рдЖрдк рдЗрд╕реЗ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЬрдм рдЖрдк рдлреНрд▓реИрд╢ рдбреНрд░рд╛рдЗрд╡ рдХреЛ рдпреВрдПрд╕рдмреА рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рддреЗ рд╣реИрдВред рдкрд╣рд▓реА рдмрд╛рд░ рдХрдиреЗрдХреНрдЯ рдФрд░ рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░рдиреЗ рдореЗрдВ рдХреБрдЫ рд╕рдордп рд▓рдЧрддрд╛ рд╣реИред рдмрд╛рдж рдХреЗ рдХрдиреЗрдХреНрд╢рди рдкрд░, рдбреНрд░рд╛рдЗрд╡ рд▓рдЧрднрдЧ рддреБрд░рдВрдд рдХрд╛рдо рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рджреЗрддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдпрджрд┐ рдЖрдк рдПрдХ рд╣реА рдореЙрдбрд▓ рдХреЗ рдлреНрд▓реИрд╢ рдбреНрд░рд╛рдЗрд╡ рдХрд╛ рдПрдХ рдФрд░ рдЙрджрд╛рд╣рд░рдг рдХрдиреЗрдХреНрдЯ рдХрд░рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдПрдХ рдЕрд▓рдЧ рд╕реАрд░рд┐рдпрд▓ рдирдВрдмрд░ рдХреЗ рд╕рд╛рде, рд╕рд┐рд╕реНрдЯрдо рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рдирдпрд╛ рдбреНрд░рд╛рдЗрд╡рд░ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдЧрд╛, рднрд▓реЗ рд╣реА рдЙрд╕рдХреЗ рдкрд╛рд╕ рдПрдХ рд╣реА VID рдФрд░ PID рд╣реЛредрдореИрдВ рд╕рдордЭрд╛рдКрдВрдЧрд╛ рдХрд┐ рдпрд╣ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдХреНрдпреЛрдВ рд╣реИред рдпрджрд┐ рдЖрдкрдиреЗ рдЕрдкрдиреЗ VID, PID рдФрд░ S \ N рдХреЗ рд╕рд╛рде STM32 рдкрд░ USB рдорд╛рдЙрд╕ рдмрдирд╛рдпрд╛ рд╣реИ, рддреЛ рдЗрд╕реЗ рдХрдВрдкреНрдпреВрдЯрд░ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд┐рдпрд╛ рд╣реИ, рдФрд░ рдлрд┐рд░ VID, PID рдФрд░ S \ N рдХреЛ рдмрджрд▓реЗ рдмрд┐рдирд╛ USB рдЬреЙрдпрд╕реНрдЯрд┐рдХ рдмрдирд╛рдпрд╛ рд╣реИ, рддреЛ Windows рдирдП рдбрд┐рд╡рд╛рдЗрд╕ рдХреЛ рдПрдХ рдорд╛рдЙрд╕ рдХреЗ рд░реВрдк рдореЗрдВ рдЕрдиреБрднрд╡ рдХрд░реЗрдЧрд╛ рдЬреЛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╣реИ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдЬреЙрдпрд╕реНрдЯрд┐рдХ рдбреНрд░рд╛рдЗрд╡рд░ рд╕реНрдерд╛рдкрд┐рдд рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ред рддрджрдиреБрд╕рд╛рд░, рдЬреЙрдпрд╕реНрдЯрд┐рдХ рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ред рдЗрд╕рд▓рд┐рдП, рдпрджрд┐ рдЖрдк рдЕрдкрдиреЗ рдбрд┐рд╡рд╛рдЗрд╕ рдХреЗ рдкреНрд░рдХрд╛рд░ рдХреЛ рдмрджрд▓рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ VID / PID рдХреЛ рдЕрдкрд░рд┐рд╡рд░реНрддрд┐рдд рдЫреЛрдбрд╝рдХрд░, рдЗрд╕рдХреЗ рд╕реАрд░рд┐рдпрд▓ рдирдВрдмрд░ рдХреЛ рдмрджрд▓рдирд╛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВредIDE рдХреЗ рд▓рд┐рдП рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдЬрдирд░реЗрд╢рди
рдЕрдВрддрд┐рдо рд╕реЗрдЯрд┐рдВрдЧ рдЬреЛ рдЖрдкрдХреЛ рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рд╡рд╣ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдЬрдирд░реЗрд╢рди рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рд╣реИрдВред рдпрд╣ рдкреНрд░реЛрдЬреЗрдХреНрдЯ -> рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ ... рд╡рд╣рд╛рдВ рд╣рдо рдирд╛рдо, рдЧрдВрддрд╡реНрдп рдлрд╝реЛрд▓реНрдбрд░ рдФрд░ рд╡рд╛рдВрдЫрд┐рдд рдЖрдИрдбреАрдИ рд╕реЗрдЯ рдХрд░реЗрдВрдЧреЗ, рдЬрд┐рд╕рдХреЗ рддрд╣рдд CubeMX рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░реЗрдЧрд╛ред рдореИрдВрдиреЗ MDK-ARM V5 рдХреЛ рдЪреБрдирд╛ , рдХреНрдпреЛрдВрдХрд┐ рдореИрдВ Keil uVision 5 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВред рдХреЛрдб рдЬрдирд░реЗрдЯрд░ рдЯреИрдм рдкрд░, рдЖрдк рдХреЗрд╡рд▓ рдЖрд╡рд╢реНрдпрдХ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреА рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдХреЙрдкреА рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рддрд╛рдХрд┐ рдЕрдирд╛рд╡рд╢реНрдпрдХ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд╕рд╛рде рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЛ рдЕрд╡реНрдпрд╡рд╕реНрдерд┐рдд рди рдХрд░реЗрдВредрдмрдЯрди рджрдмрд╛рдПрдВ рдкреНрд░реЛрдЬреЗрдХреНрдЯ -> рдХреЛрдб рдЬрдирд░реЗрдЯ рдХрд░реЗрдВ ред CubeMX рдХреЛрдб рдХреЗ рд╕рд╛рде рдПрдХ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмрдирд╛рдПрдЧрд╛ рдЬрд┐рд╕реЗ Keil uVision рдореЗрдВ рдЦреЛрд▓рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдЕрддрд┐рд░рд┐рдХреНрдд рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЗ рдмрд┐рдирд╛ рд╕рдВрдХрд▓рд┐рдд рдФрд░ рдлреНрд▓реИрд╢ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред Main.c рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдореБрдЦреНрдп (рд╢реВрдиреНрдп) рдлрд╝рдВрдХреНрд╢рди рдореЗрдВрдШрдбрд╝реА, рдкреЛрд░реНрдЯреНрд╕, рдЯрд╛рдЗрдорд░ рдФрд░ USB рдХреЛ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдлрдВрдХреНрд╢рдиреНрд╕ рдкрд╣рд▓реЗ рд╣реА рдбрд╛рд▓реЗ рдЬрд╛ рдЪреБрдХреЗ рд╣реИрдВред рдЙрдирдореЗрдВ, рдорд╛рдЗрдХреНрд░реЛрдХрдВрдЯреНрд░реЛрд▓рд░ рдореЙрдбреНрдпреВрд▓ рдХреЛ рдЙрди рдореЛрдбреНрд╕ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЬрд┐рдиреНрд╣реЗрдВ рд╣рдо CubeMX рдореЗрдВ рд╕реЗрдЯ рдХрд░рддреЗ рд╣реИрдВред
рдЗрд╕ рддрд░рд╣ рдХреЗ рдХреЛрдб рдирд┐рд░реНрдорд╛рдг рдореЗрдВ рдЕрдХреНрд╕рд░ рдкрд╛рдП рдЬрд╛рддреЗ рд╣реИрдВ:
(...)
рдпрд╣ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЗрди рдЕрдиреБрднрд╛рдЧреЛрдВ рдореЗрдВ рдЕрдкрдирд╛ рдХреЛрдб рдПрдореНрдмреЗрдб рдХрд░реЗрдЧрд╛ред рдпрджрд┐ CubeMX рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдореЗрдВ рд░реА-рдЬрдирд░реЗрдЯрд┐рдВрдЧ рдСрдкреНрд╢рди рд╕рдХреНрд╖рдо рд╣реЛрдиреЗ рдкрд░ рдпреВрдЬрд░ рдХреЛрдб рд░рдЦреЗрдВ , рддреЛ рдЗрди рд▓рд╛рдЗрдиреЛрдВ рдХреЗ рдмреАрдЪ рд╕рдВрд▓рдЧреНрди рдХреЛрдб рдХрд┐рд╕реА рдореМрдЬреВрджрд╛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреА рд╕реЗрдХрдВрдбрд░реА рдЬрдирд░реЗрд╢рди рдХреЗ рджреМрд░рд╛рди рдУрд╡рд░рд░рд╛рдЗрдЯ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдХреЗрд╡рд▓ CubeMX рджреНрд╡рд╛рд░рд╛ рдмрдирд╛рдП рдЧрдП рдЕрдиреБрднрд╛рдЧ рд╕рд╣реЗрдЬреЗ рдЧрдП рд╣реИрдВред рдЕрдиреБрднрд╛рдЧ / * USER CODE * / рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рджреНрд╡рд╛рд░рд╛ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдЦреЛ рдЬрд╛рдПрдЧрд╛ред рдЗрд╕рд▓рд┐рдП, рдпрджрд┐ IDE рдореЗрдВ рдХреЛрдб рд▓рд┐рдЦрдиреЗ рдХреЗ рдмрд╛рдж рдЖрдк CubeMX рдкрд░ рд▓реМрдЯрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдФрд░ рдирдИ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЗ рд╕рд╛рде рдлрд┐рд░ рд╕реЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдЬреЗрдирд░реЗрдЯ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдореИрдВ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреА рдмреИрдХрдЕрдк рдХреЙрдкреА рдмрдирд╛рдиреЗ рдХреА рд╕рд▓рд╛рд╣ рджреЗрддрд╛ рд╣реВрдВредUVision ( рдлреНрд▓реИрд╢ -> рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдлреНрд▓реИрд╢ рдЯреВрд▓реНрд╕ ) рдореЗрдВ рдлрд░реНрдорд╡реЗрдпрд░ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдореЗрдВ рдореИрдВ рдЖрдкрдХреЛ рдлреНрд▓реИрд╢ рд╡рд┐рдХрд▓реНрдк рдХреЗ рдмрд╛рдж рд░реАрд╕реЗрдЯ рдХреЛ рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рдХреА рд╕рд▓рд╛рд╣ рджреЗрддрд╛ рд╣реВрдВрддрд╛рдХрд┐ рдЪрдордХрдиреЗ рдХреЗ рддреБрд░рдВрдд рдмрд╛рдж рдорд╛рдЗрдХреНрд░реЛрдХрдВрдЯреНрд░реЛрд▓рд░ рд╢реБрд░реВ рд╣реЛ рдЬрд╛рдПред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рдпрд╣ рдЕрдХреНрд╖рдо рд╣реИ, рдФрд░ рдкреНрд░рддреНрдпреЗрдХ рдЪрдордХрддреА рдХреЗ рдмрд╛рдж, рдЖрдкрдХреЛ рдмреЛрд░реНрдб рдкрд░ рд░реАрд╕реЗрдЯ рдмрдЯрди рджрдмрд╛рдирд╛ рд╣реЛрдЧрд╛ред
рдкреАрдкреАрдПрдо рдбрд┐рдХреЛрдбрд┐рдВрдЧ
PPM - рдкрд▓реНрд╕ рдкреЛрдЬреАрд╢рди рдореЙрдбреНрдпреВрд▓реЗрд╢рди - рдПрдпрд░рдХреНрд░рд╛рдлреНрдЯ рдореЙрдбрд▓ рдЗрд▓реЗрдХреНрдЯреНрд░реЙрдирд┐рдХреНрд╕ рдореЗрдВ рдмрд╣реБрдд рд╡реНрдпрд╛рдкрдХ, рд╕рдВрдЪрд░рд┐рдд рд╕рдВрдХреЗрддреЛрдВ рдХреЛ рдХреВрдЯрдиреЗ рдХреА рдПрдХ рд╡рд┐рдзрд┐ред рдпрд╣ рджрд╛рд▓реЛрдВ рдХрд╛ рдПрдХ рдХреНрд░рдо рд╣реИ, рд╕рдордп рдЕрдВрддрд░рд╛рд▓ рдЬрд┐рд╕рдХреЗ рдмреАрдЪ рд╕рдВрдЪрд░рд┐рдд рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рдореВрд▓реНрдпреЛрдВ рдХреЗ рдЕрдиреБрд░реВрдк рд╣реИред
рдЗрд╕ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХреЗ рдЕрдиреБрд╕рд╛рд░, рдХрдВрд╕реЛрд▓ рдкреНрд░реЗрд╖рд┐рдд рд░реЗрдбрд┐рдпреЛ рдореЙрдбреНрдпреВрд▓ рдХреЛ рд╕реВрдЪрдирд╛ рднреЗрдЬрддрд╛ рд╣реИ, рдЬреЛ рдкреАрдЫреЗ рдХрдВрд╕реЛрд▓ рдореЗрдВ рдбрд╛рд▓рд╛ рдЬрд╛рддрд╛ рд╣реИред рдХрдИ рд░рд┐рд╕реАрд╡рд░ рдЬрд┐рдиреНрд╣реЗрдВ рдмреЛрд░реНрдб рдкрд░ рд░рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд╡реЗ рдкреАрдкреАрдПрдо рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдлреНрд▓рд╛рдЗрдЯ рдХрдВрдЯреНрд░реЛрд▓рд░ рдХреЗ рд▓рд┐рдП рдХрдВрдЯреНрд░реЛрд▓ рд╕рд┐рдЧреНрдирд▓ рдЯреНрд░рд╛рдВрд╕рдорд┐рдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд▓рдЧрднрдЧ рдХрд┐рд╕реА рднреА рдХрдВрд╕реЛрд▓ рдореЗрдВ рдЯреНрд░реЗрдирд░-рдЫрд╛рддреНрд░ рдореЛрдб рдореЗрдВ рджреВрд╕рд░рд╛ рдХрдВрд╕реЛрд▓ рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдФрд░ рдХрдВрд╕реЛрд▓ рдХреЛ рдПрдХ рд╕рд┐рдореНрдпреБрд▓реЗрдЯрд░ рд╕реЗ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдиреЗрдХреНрдЯрд░ рд╣реИрдВ, рдЬреЛ рдЖрдорддреМрд░ рдкрд░ рдкреАрдкреАрдПрдо рдХрд╛ рднреА рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВредрд╣рдо рдПрдХ рддрд░реНрдХ рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдХреЗ рд╕рд╛рде рдЯрд░реНрдирдЬреА 9 рдПрдХреНрд╕ рдХреЗ рд╕рд┐рдореНрдпреБрд▓реЗрдЯрд░ рдЖрдЙрдЯрдкреБрдЯ рд╕реЗ рдПрдХ рд╕рдВрдХреЗрдд рд▓рд┐рдЦрддреЗ рд╣реИрдВ:рдкреНрд░рддреНрдпреЗрдХ рдЕрдиреБрдХреНрд░рдо рд░рд┐рдореЛрдЯ рдкрд░ рдирд┐рдпрдВрддреНрд░рдг рдХреА рд╡рд░реНрддрдорд╛рди рд╕реНрдерд┐рддрд┐ рдХреЛ рдПрдиреНрдХреЛрдб рдХрд░рддрд╛ рд╣реИред рдЖрдорддреМрд░ рдкрд░ рдкрд╣рд▓реЗ рдЪрд╛рд░ рдорд╛рди (рдЬрд┐рд╕реЗ рдЪреИрдирд▓ рднреА рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ) рдПрдирд╛рд▓реЙрдЧ рд╕реНрдЯрд┐рдХреНрд╕ рдХреА рд╕реНрдерд┐рддрд┐ рдХреЗ рдЕрдиреБрд░реВрдк рд╣реЛрддреЗ рд╣реИрдВ, рдФрд░ рдмрд╛рдж рд╡рд╛рд▓реЗ рдЯреЙрдЧрд▓ рд╕реНрд╡рд┐рдЪ рдпрд╛ рдкреЛрдЯреЗрдВрд╢рд┐рдпреЛрдореАрдЯрд░ рдХреА рд╕реНрдерд┐рддрд┐ рдХреЗ рдЕрдиреБрд░реВрдк рд╣реЛрддреЗ рд╣реИрдВредрдирд┐рдпрдВрддреНрд░рдг рдХреА рдиреНрдпреВрдирддрдо рд╕реНрдерд┐рддрд┐ рдЕрдВрддрд░рд╛рд▓ 1000 ╬╝s рд╕реЗ рдореЗрд▓ рдЦрд╛рддреА рд╣реИ, рдЕрдзрд┐рдХрддрдо - 2000 ╬╝s, рдФрд╕рдд рд╕реНрдерд┐рддрд┐ - 1500 ╬╝sред рджрд╛рд▓реЛрдВ рдХреЗ рджрд╛рдиреЗ, рдпрд╛ рддрдЦреНрддреЗ, рдХрд╛рдлреА рд▓рдВрдмреЗ рдЕрдВрддрд░рд╛рд▓ рд╕реЗ рдЕрд▓рдЧ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ рдФрд░ 20-25 рдПрдордПрд╕ рдХреА рдЕрд╡рдзрд┐ рдХреЗ рд╕рд╛рде рдЪрд▓рддреЗ рд╣реИрдВредрдЖрдЗрдП рд╕рдВрдХреЗрдд рдкрд░ рдХрд░реАрдм рд╕реЗ рдирдЬрд╝рд░ рдбрд╛рд▓реЗрдВ:
рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рддреАрди рдЫрдбрд╝реЗрдВ рддрдЯрд╕реНрде рд╕реНрдерд┐рддрд┐ (1, 3, 4) рдореЗрдВ рд╣реИрдВ, рдФрд░ рдПрдХ рдЪрд░рдо рд╕реНрдерд┐рддрд┐ (2) рдореЗрдВ рд╣реИред рддреАрди рдЯреЙрдЧрд▓ рд╕реНрд╡рд┐рдЪ рдмрдВрдж рд╣реИрдВ (5, 6, 7), рдФрд░ рдЖрдЦрд┐рд░реА рдЪрд╛рд▓реВ рд╣реИ (8)ред рдПрдХ рдПрдбреЙрдкреНрдЯрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдорд╛рдЗрдХреНрд░реЛрдХрдВрдЯреНрд░реЛрд▓рд░ рдХреЛ рдЗрд╕ рддрд░рд╣ рдХреЗ рд╕реАрдХреНрд╡реЗрдВрд╕ рдХреЛ рдХреИрдкреНрдЪрд░ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рдорд╛рдиреЛрдВ рдХреЛ рдПрдХ рдЕрд░реИ рдореЗрдВ рдЬреЛрдбрд╝рдирд╛ рд╣реЛрдЧрд╛ рдФрд░ рдЬреЙрдпрд╕реНрдЯрд┐рдХ рд╕реЗ рдХрдорд╛рдВрдб рдХреЗ рд░реВрдк рдореЗрдВ рдпреВрдПрд╕рдмреА рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рднреЗрдЬрдирд╛ рд╣реЛрдЧрд╛ред рдЪрд▓реЛ рдПрдХ рдкрд▓реНрд╕ рдЕрдиреБрдХреНрд░рдо рдбрд┐рдХреЛрдбрд░ рд▓рд┐рдЦрддреЗ рд╣реИрдВредрд╡реНрдпрд╡рдзрд╛рди рдХреЛ рдкрдХрдбрд╝рдирд╛
Main.c рдореЗрдВ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝реЗрд╢рди рдХреЗ рдмрд╛рдж , рд▓реВрдк рдХрд░рддреЗ рд╕рдордп рдореБрдЦреНрдп рд╕реЗ рдкрд╣рд▓реЗ , рдЪреИрдирд▓ 1 рд╕реЗ рдЗрдирдкреБрдЯ рдХреИрдкреНрдЪрд░ рдХреИрдкреНрдЪрд░ рдореЛрдб рдореЗрдВ TIM3 рдЯрд╛рдЗрдорд░ рд╢реБрд░реВ рдХрд░реЗрдВ, рдХреИрдкреНрдЪрд░ рд░реБрдХрд╛рд╡рдЯ рдХреА рдкреАрдврд╝реА рдХреЗ рд╕рд╛рдеред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, HAL рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ:HAL_TIM_IC_Start_IT(&htim3, TIM_CHANNEL_1);
Htim3
рд╕рдВрд░рдЪрдирд╛ рдореЗрдВ рдШреЛрд╖рд┐рдд main.c рдЖрд░рдВрднреАрдХрд░рдг рдХреЗ рд▓рд┐рдП рдорд╛рдирдХреЛрдВ, рд╕рдВрдХреЗрдд рд╕рднреА рдЯрд╛рдЗрдорд░ рд░рдЬрд┐рд╕реНрдЯрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП (рдХрд╛рдЙрдВрдЯрд░ рдореВрд▓реНрдп, рд╡рд┐рднрдХреНрдд, рд╕рднреА рд╕реЗрдЯрд┐рдВрдЧреНрд╕, рдмрд╛рдзрд╛ рдЭрдВрдбреЗ), рд╕реВрдЪрдХ: TIM3 рдЯрд╛рдЗрдорд░ рд╣реИрдВрдбрд▓рд░ рд╣реИ, рдЬреЛ рд╕рднреА рд╕рдВрд░рдЪрдирд╛рдУрдВ рдФрд░ рдЪрд░ рдЯрд╛рдЗрдорд░ рдХреЗ рд╕рд╛рде рдЬреБрдбрд╝реЗ рд╣реЛрддреЗ рд╣реИрдВ рдПрдХ рд╣реИрдВрдбрд▓рд░ DMA рдкрд░ рдЬреЛ рдЗрд╕ рдЯрд╛рдЗрдорд░ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдЖрджрд┐ред рдбреЗрд╡рд▓рдкрд░ рдХреЛ рдпрд╣ рджреЗрдЦрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдХреМрди рд╕реЗ рдмрд┐рдЯреНрд╕ рд░рдЬрд┐рд╕реНрдЯрд░ рдореЗрдВ рд╣реИрдВ рдЬреЛ рдХрд┐ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рд╕реЗрдЯ рдФрд░ рд░реАрд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИрдВред рд╣реИрдВрдбрд▓рд░ рдХреЛ рдПрдЪрдПрдПрд▓ рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рдкрд╛рд╕ рдХрд░рдирд╛ рдкрд░реНрдпрд╛рдкреНрдд рд╣реИред рдмрд╛рдХреА рдкреБрд╕реНрддрдХрд╛рд▓рдп рдЦреБрдж рдХрд░реЗрдВрдЧреЗред STM32F3xx HAL рдбреНрд░рд╛рдЗрд╡рд░рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХреЗ рд╡рд┐рд╡рд░рдг рдореЗрдВ рдПрдЪрдПрдПрд▓ рд╕рдВрд░рдЪрдирд╛ рд╕рд┐рджреНрдзрд╛рдВрддреЛрдВ рдХреЛ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рд╡рд░реНрдгрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред(UM1786)ред рдпрд╣ рдзреНрдпрд╛рди рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдПрдЪрдПрдПрд▓ рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╕реНрд╡рдпрдВ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдкреНрд░рд▓реЗрдЦрд┐рдд рд╣реИрдВред рдпрд╣ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ HAL рдЯрд╛рдЗрдорд░ рдХреЗ рд▓рд┐рдП рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЖрдк stm32f3xx_hal_tim.h рдФрд░ stm32f3xx_hal_tim.c рдлрд╝рд╛рдЗрд▓реЛрдВ рдореЗрдВ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреЛ рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВ редрдкреНрд░рддреНрдпреЗрдХ рдмрд╛рдзрд╛ рдХреЗ рд▓рд┐рдП рдЬреЛ TIM3 рдЯрд╛рдЗрдорд░ рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИ, TIM3_IRQHandler рд╣реИрдВрдбрд▓рд░ рдХрд╣рд▓рд╛рддрд╛ рд╣реИ ред рдпрд╣ stm32f3xx_it.c рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╕реНрдерд┐рдд рд╣реИ , рдмрджрд▓реЗ рдореЗрдВ, HAL_TIM_IRQHandler рд╣реИрдВрдбрд▓рд░ , рд╕рднреА рдЯрд╛рдЗрдорд░ рдХреЗ рд▓рд┐рдП рдорд╛рдирдХ, рдЗрд╕реЗ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ htim3 рд╕рдВрд░рдЪрдирд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реВрдЪрдХ рдЗрд╕реЗ рдкрд╛рд╕ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИредvoid TIM3_IRQHandler(void)
{
HAL_TIM_IRQHandler(&htim3);
}
рдпрджрд┐ рд╣рдо HAL_TIM_IRQHandler рдлрд╝рд╛рдЗрд▓ stm32f3xx_hal_tim.c рдХреЗ рдЕрдВрджрд░ рджреЗрдЦрддреЗ рд╣реИрдВ, рддреЛ рд╣рдо рдПрдХ рд╡рд┐рд╢рд╛рд▓ рд╣реИрдВрдбрд▓рд░ рджреЗрдЦрддреЗ рд╣реИрдВ рдЬреЛ рдЯрд╛рдЗрдорд░ рдХреЗ рд▓рд┐рдП рдЗрдВрдЯрд░рдкреНрдЯ рдлреНрд▓реИрдЧ рдХреА рдЬрд╛рдБрдЪ рдХрд░рддрд╛ рд╣реИ, рдХреЙрд▓рдмреИрдХ-рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдХрд╛рд░рдг рдмрдирддрд╛ рд╣реИ рдФрд░ рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рдмрд╛рдж рдзреНрд╡рдЬ рдХреЛ рд╕рд╛рдлрд╝ рдХрд░рддрд╛ рд╣реИред рдпрджрд┐ рдХреЛрдИ рдХреИрдкреНрдЪрд░ рдЗрд╡реЗрдВрдЯ рд╣реЛрддрд╛ рд╣реИ , рддреЛ рдпрд╣ HAL_TIM_IC_CaptureCallback рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд░рддрд╛ рд╣реИ ред рдпрд╣ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦ рд░рд╣рд╛ рд╣реИ:__weak void HAL_TIM_IC_CaptureCallback(TIM_HandleTypeDef *htim)
{
}
рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рд╣рдо рдЗрд╕ рдлрд╝рдВрдХреНрд╢рди рдХреЛ main.c рдореЗрдВ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ ред рдЗрд╕рд▓рд┐рдП, рдЗрд╕ рдХреЙрд▓рдмреИрдХ рдХреЛ int main (рд╢реВрдиреНрдп) рдлрд╝рдВрдХреНрд╢рди рд╕реЗ рдкрд╣рд▓реЗ рдбрд╛рд▓реЗрдВ :void HAL_TIM_IC_CaptureCallback(TIM_HandleTypeDef *htim)
{
};
рдореИрдВ рдпрд╣ рджреЗрдЦрдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ рдХрд┐ рд╡реНрдпрд╡рдзрд╛рди рдХрд╛ рдкреНрд░рджрд░реНрд╢рди рдХреИрд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдХрд┐рд╕реА рдПрдХ рдирд┐рд╖реНрдХрд░реНрд╖ рдкрд░ рдЗрд╕реЗ рддреНрд╡рд░рд┐рдд рд░реВрдк рд╕реЗ рдЬреЛрдбрд╝реЗрдВ:void HAL_TIM_IC_CaptureCallback(TIM_HandleTypeDef *htim)
{
HAL_GPIO_WritePin(GPIOE, GPIO_PIN_8, GPIO_PIN_SET);
__nop();__nop();__nop();__nop();__nop();__nop();
HAL_GPIO_WritePin(GPIOE, GPIO_PIN_8, GPIO_PIN_RESET);
};
PE8 рдкрд┐рди рдХреЛ рдкрд╣рд▓реЗ рд╣реА рдЖрдЙрдЯрдкреБрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝ рдХрд┐рдпрд╛ рдЬрд╛ рдЪреБрдХрд╛ рд╣реИред рд╕реНрд╡рд┐рдЪ рдСрди рдФрд░ рдСрдл рдХрд░рдиреЗ рдХреЗ рдмреАрдЪ, __nop () рдирд┐рд░реНрджреЗрд╢ рдбрд╛рд▓реЗ рдЬрд╛рддреЗ рд╣реИрдВ , рдЬреЛ 1 рдШрдбрд╝реА рдЪрдХреНрд░ рдореЗрдВ рджреЗрд░реА рдХрд░рддрд╛ рд╣реИред рдРрд╕рд╛ рдЗрд╕рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рдореЗрд░рд╛ $ 8 рдЪреАрдиреА рд▓реЙрдЬрд┐рдХ рд╡рд┐рд╢реНрд▓реЗрд╖рдХ 24 рдореЗрдЧрд╛рд╣рд░реНрдЯреНрдЬ рдкрд░ рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ 72 рдореЗрдЧрд╛рд╣рд░реНрдЯреНрдЬ рдорд╛рдЗрдХреНрд░реЛрдХрдВрдЯреНрд░реЛрд▓рд░ рд╕реЗ рдмрд╣реБрдд рдХрдо рдкрд▓реНрд╕ рдирд╣реАрдВ рдЫреЛрдбрд╝рддрд╛ред рдЕрдм рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдХрд░реЗрдВ -> рд▓рдХреНрд╖реНрдп рдмрдирд╛рдПрдВ рдФрд░ рдлреНрд▓реИрд╢ рдирд┐рдпрдВрддреНрд░рдХ рд╕реЗ рдкреВрдЫреЗрдВ -> рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ ред рд╣рдо PPM рдХреЛ рджреВрд░рд╕реНрде рд╕реЗ PC6 рд╕реЗ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ, рдФрд░ рджреЗрдЦреЗрдВ рдХрд┐ PC6 рдФрд░ PE8 рдкрд░ рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдХреЗ рд╕рд╛рде рдХреНрдпрд╛ рд╣реЛрддрд╛ рд╣реИредрдХреЙрд▓рдмреИрдХ рдХреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕рд╣реА рдХреНрд╖рдгреЛрдВ рдореЗрдВ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ - рдареАрдХ рдЗрд╕рдХреЗ рдмрд╛рдж рдЗрдирдкреБрдЯ рд╕рд┐рдЧреНрдирд▓ 1 рд╕реЗ 0. рддрдХ рд╕рдВрдХреНрд░рдордг рд╣реЛ рдЧрдпрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП, рд╕рдм рдХреБрдЫ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛редрдХреИрдкреНрдЪрд░ рдХрд┐рдП рдЧрдП рдбреЗрдЯрд╛ рдХреЛ рдХреИрдкреНрдЪрд░ рдХрд░реЗрдВ рдФрд░ рдкреНрд░реЛрд╕реЗрд╕ рдХрд░реЗрдВ
рдЗрддрдирд╛ рд╣реИ рдХрд┐ рдпрд╣ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рддреНрдпреЗрдХ рдкрд░ рдХрдмреНрдЬрд╛ рдХрд░ рд▓рд┐рдпрд╛ рдореВрд▓реНрдп рдЬреЛрдбрд╝ рджреЗрдЧрд╛ рд╣рдо рдХреЙрд▓рдмреИрдХ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВрдЧреЗ captured_value рдмрдлрд░ рдЕрдкрд░рд┐рд╡рд░реНрддрд┐рддред рдпрджрд┐ рдЯрд╛рдЗрдорд░ рдмрд╣реБрдд рдмрдбрд╝реЗ рдореВрд▓реНрдп (5000 ╬╝s рд╕реЗ рдЕрдзрд┐рдХ) рдкрд░ рдХрдмреНрдЬрд╛ рдХрд░рддрд╛ рд╣реИ, рддреЛ рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдПрдХ рдард╣рд░рд╛рд╡ рджрд░реНрдЬ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдкреИрдХреЗрдЯ рдХреЛ рдЗрд╕рдХреА рд╕рдВрдкреВрд░реНрдгрддрд╛ рдореЗрдВ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдФрд░ рдЗрд╕реЗ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд┐рдП рдЧрдП рдорд╛рди 5 рддрддреНрд╡реЛрдВ рдХреЗ rc_data рд╕рд░рдгреА рдореЗрдВ рдЬреЛрдбрд╝реЗ рдЬрд╛рддреЗ рд╣реИрдВред рдкрд╣рд▓реЗ рдЪрд╛рд░ рдореЗрдВ, рдЫрдбрд╝реА рдХреА рд╕реНрдерд┐рддрд┐ рд╕реАрдорд╛ рддрдХ рдХрдо рд╣реЛ рдЬрд╛рддреА рд╣реИ [0; 1000], рдкрд╛рдВрдЪрд╡реЗрдВ рдореЗрдВ, рд╡реНрдпрдХреНрддрд┐рдЧрдд рдмрд┐рдЯреНрд╕ рдХреЛ рдЯреЙрдЧрд▓ рд╕реНрд╡рд┐рдЪ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рдЧреЗрдордкреИрдб рдкрд░ рдмрдЯрди рджрдмрд╛рдиреЗ рдХреЗ рд░реВрдк рдореЗрдВ рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХреА рдЬрд╛рдПрдЧреАредuint16_t captured_value[8] = {0};
uint16_t rc_data[5] = {0};
uint8_t pointer = 0;
uint8_t data_ready = 0;
...
void HAL_TIM_IC_CaptureCallback(TIM_HandleTypeDef *htim)
{
uint8_t i;
uint16_t temp;
temp = HAL_TIM_ReadCapturedValue(htim, TIM_CHANNEL_1);
if ((temp > 5000) && (!data_ready))
{
pointer = 0;
for (i = 0; i < 4; i++)
{
if (captured_value[i] < 1000)
captured_value[i] = 1000;
else if (captured_value[i] > 2000)
captured_value[i] = 2000;
rc_data[i] = captured_value[i]-1000;
};
rc_data[4] = 0;
if (captured_value[4] > 1500)
rc_data[4] |= (1<<4);
if (captured_value[5] > 1500)
rc_data[4] |= (1<<5);
if (captured_value[6] > 1500)
rc_data[4] |= (1<<6);
if (captured_value[7] > 1500)
rc_data[4] |= (1<<7);
data_ready = 1;
}
else
{
captured_value[pointer] = temp;
pointer++;
};
if (pointer == 8)
pointer = 0;
}
рдореБрдЭреЗ рд╕рдордЭрд╛рдПрдВ рдХрд┐ рдореИрдВрдиреЗ рдмрдЯрдиреЛрдВ рдХреЛ рдирд┐рдЪрд▓реЗ 4 рдмрд┐рдЯреНрд╕ рдореЗрдВ рдирд╣реАрдВ, рдмрд▓реНрдХрд┐ рдкрд╛рдВрдЪрд╡реЗрдВ рд╕реЗ рдЖрдард╡реЗрдВ рдмрд┐рдЯреНрд╕ рдХреЗ рдЕрдиреБрд░реВрдк рд░рдЦрд╛ред рд╕рд┐рдореНрдпреБрд▓реЗрдЯрд░ рдореЗрдВ, рдпрд╣ Xbox рд╕реЗ рдПрдХ рдЧреЗрдордкреИрдб рдХреЛ рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд╣рд╛рдВ рдмрдЯрди LB, RB, рд╕реНрдЯрд╛рд░реНрдЯ рдФрд░ рдмреИрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдЙрдирдХреА рд╕рдВрдЦреНрдпрд╛ 5 рд╕реЗ 8. рд╣реЛрддреА рд╣реИред рдореБрдЦреНрдп рд▓реВрдк рдореЗрдВ, data_ready рдзреНрд╡рдЬ рдХреЛ рд▓рдЧрд╛рддрд╛рд░ рдШреБрдорд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдЬрд┐рд╕рдХреЗ рджреНрд╡рд╛рд░рд╛ рдХрдВрдкреНрдпреВрдЯрд░ рдХреЛ рдбреЗрдЯрд╛ рднреЗрдЬрд╛ рдЬрд╛рдПрдЧрд╛редwhile (1)
{
if (data_ready)
{
data_ready = 0;
}
}
рдпрд╣ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдпрд╣ рдЬрд╛рдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП, рд░рд┐рдореЛрдЯ рдХрдВрдЯреНрд░реЛрд▓ рдХреЛ рдХрдиреЗрдХреНрдЯ рдХрд░реЗрдВ, рдлрд┐рд░ рд╕реЗ рд╕рдВрдХрд▓рд┐рдд рдХрд░реЗрдВ рдФрд░ рдлрд┐рд░ рд╕реЗ рдбрд┐рдмрдЧ рдХрд░реЗрдВ рдФрд░ рдлрд┐рд░ рдбрд┐рдмрдЧ рд╕рддреНрд░ рд╢реБрд░реВ рдХрд░реЗрдВ -> рдбреАрдмрдЧ рд╕рддреНрд░ рдкреНрд░рд╛рд░рдВрдн / рдмрдВрдж рдХрд░реЗрдВ редрдЯреНрд░реИрдХрд┐рдВрдЧ рдЪрд░ рдХреЗ рд▓рд┐рдП рд╡рд┐рдВрдбреЛ рдЦреЛрд▓реЗрдВ -> рджреЗрдЦреЗрдВ рд╡рд┐рдВрдбреЛрдЬ -> 1 рджреЗрдЦреЗрдВ рдФрд░ рд╡рд╣рд╛рдВ рдХреИрдкреНрдЪрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛_рд╡реЗрд▓реНрдпреВ рдФрд░ рдЖрд░рд╕реА_рдбреЗрдЯрд╛ рдЬреЛрдбрд╝реЗрдВ редрд╣рдо рдбреАрдмрдЧ -> рд░рди рдХрдорд╛рдВрдб рдХреЗ рд╕рд╛рде рдбрд┐рдмрдЧрд┐рдВрдЧ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдордп рдореЗрдВ, рдмреНрд░реЗрдХрдкреЙрдЗрдВрдЯ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рдмрд┐рдирд╛ рднреА, рд╣рдо рджреЗрдЦреЗрдВрдЧреЗ рдХрд┐ рд╕реНрдЯрд┐рдХреНрд╕ рдХреЗ рдмрд╛рдж рдирдВрдмрд░ рдХреИрд╕реЗ рдмрджрд▓рддреЗ рд╣реИрдВредрдЕрдЧрд▓рд╛, рдЖрдкрдХреЛ рдЬреЙрдпрд╕реНрдЯрд┐рдХ рдХрдорд╛рдВрдб рдХреЗ рд░реВрдк рдореЗрдВ рдХрдВрдкреНрдпреВрдЯрд░ рдХреЛ рдбреЗрдЯрд╛ рднреЗрдЬрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИредHID рдбрд┐рд╡рд╛рдЗрд╕ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВ рдФрд░ HID рд░рд┐рдкреЛрд░реНрдЯ рдбрд┐рд╕реНрдХреНрд░рд┐рдкреНрдЯрд░ рдмрдирд╛рдПрдВ
USB HID (рд╣реНрдпреВрдорди рдЗрдВрдЯрд░рдлреЗрд╕ рдбрд┐рд╡рд╛рдЗрд╕) рдорд╛рдирд╡-рдХрдВрдкреНрдпреВрдЯрд░ рдЗрдВрдЯрд░реИрдХреНрд╢рди рдХреЗ рд▓рд┐рдП рдЙрдкрдХрд░рдгреЛрдВ рдХрд╛ рдПрдХ рд╡рд░реНрдЧ рд╣реИред рдЗрдирдореЗрдВ рдХреАрдмреЛрд░реНрдб, рдЪреВрд╣реЗ, рдЬреЙрдпрд╕реНрдЯрд┐рдХ, рдЧреЗрдордкреИрдб, рдЯрдЪ рдкреИрдирд▓ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред рдЫрд┐рдкрд╛рдИ рдЙрдкрдХрд░рдгреЛрдВ рдХрд╛ рдореБрдЦреНрдп рд▓рд╛рдн рдпрд╣ рд╣реИ рдХрд┐ рдЙрдиреНрд╣реЗрдВ рдХрд┐рд╕реА рднреА рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рд╡рд┐рд╢реЗрд╖ рдбреНрд░рд╛рдЗрд╡рд░реЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ: рд╡рд┐рдВрдбреЛрдЬ, рдУрдПрд╕ рдПрдХреНрд╕, рдПрдВрдбреНрд░реЙрдЗрдб рдФрд░ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдЖрдИрдУрдПрд╕ (рдпреВрдПрд╕рдмреА-рд▓рд╛рдЗрдЯрдирд┐рдВрдЧ рдПрдбрд╛рдкреНрдЯрд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ)ред рдПрдХ рд╡рд┐рд╕реНрддреГрдд рд╡рд┐рд╡рд░рдг HID рдХреЗ рд▓рд┐рдП рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдбрд┐рд╡рд╛рдЗрд╕ рдХреНрд▓рд╛рд╕ рдкрд░рд┐рднрд╛рд╖рд╛ рдореЗрдВ рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ ред PPM- USB рдПрдбреЙрдкреНрдЯрд░ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╣рдореЗрдВ рдЬреЛ рдореБрдЦреНрдп рдмрд╛рдд рдЬрд╛рдирдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ рд╡рд╣ рд╣реИ HID рд░рд┐рдкреЛрд░реНрдЯ рдФрд░ HID рд░рд┐рдкреЛрд░реНрдЯ рдбреЗрд╕рдХреНрд░рд┐рдкреНрдЯрд░ рдХреНрдпрд╛ рд╣реИрдВ редHID рдбрд┐рд╡рд╛рдЗрд╕ рдПрдХ рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рдХрдВрдкреНрдпреВрдЯрд░ рдХреЛ рдмрд╛рдЗрдЯ рдкреИрдХреЗрдЯ рднреЗрдЬрддрд╛ рд╣реИред рдРрд╕рд╛ рдкреНрд░рддреНрдпреЗрдХ рдкреИрдХреЗрдЬ рдПрдХ рдЫрд┐рдкрд╛рдИ рд░рд┐рдкреЛрд░реНрдЯ рд╣реИред рдбрд┐рд╡рд╛рдЗрд╕ рдХрдВрдкреНрдпреВрдЯрд░ рдХреЛ рдбреЗрдЯрд╛ рдкреНрд░рд╛рд░реВрдк рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реВрдЪрд┐рдд рдХрд░рддрд╛ рд╣реИ рдЬрдм рд╡рд╣ рдЬреЛрдбрд╝рддрд╛ рд╣реИ, рдПрдХ рдЫрд┐рдкрд╛рдИ рд░рд┐рдкреЛрд░реНрдЯ рдбрд┐рд╕реНрдХреНрд░рд┐рдкреНрдЯрд░ рднреЗрдЬ рд░рд╣рд╛ рд╣реИ, рдПрдХ рдкреИрдХреЗрдЯ рд╡рд┐рд╡рд░рдг рдЬреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдкреИрдХреЗрдЯ рдореЗрдВ рдХрд┐рддрдиреЗ рдмрд╛рдЗрдЯреНрд╕ рд╣реИрдВ рдФрд░ рдкреИрдХреЗрдЯ рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рдмрд╛рдЗрдЯ рдФрд░ рдмрд┐рдЯ рдХрд╛ рдЙрджреНрджреЗрд╢реНрдп рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдорд╛рдЙрд╕ рдХреА рдЫрд┐рдкрд╛рдИ рд░рд┐рдкреЛрд░реНрдЯ рдореЗрдВ рдЪрд╛рд░ рдмрд╛рдЗрдЯреНрд╕ рд╣реЛрддреЗ рд╣реИрдВ: рдкрд╣рд▓реЗ рдмрд╛рдЗрдЯ рдореЗрдВ рджрдмрд╛рдП рдЧрдП рдмрдЯрдиреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рд╣реЛрддреА рд╣реИ, рджреВрд╕рд░реЗ рдФрд░ рддреАрд╕рд░реЗ рдмрд╛рдЗрдЯреНрд╕ рдореЗрдВ рдПрдХреНрд╕ рдФрд░ рд╡рд╛рдИ рдХреЗ рд╕рд╛рде рдХрд░реНрд╕рд░ рдХрд╛ рд╕рд╛рдкреЗрдХреНрд╖ рд╕рдВрдЪрд▓рди рд╣реЛрддрд╛ рд╣реИ, рдФрд░ рдЪреМрдереЗ рдмрд╛рдЗрдЯ рдореЗрдВ рд╕реНрдХреНрд░реЙрд▓ рд╡реНрд╣реАрд▓ рдХрд╛ рд░реЛрдЯреЗрд╢рди рд╣реЛрддрд╛ рд╣реИред рд░рд┐рдкреЛрд░реНрдЯ рдбрд┐рд╕реНрдХреНрд░рд┐рдкреНрдЯрд░ рдХреЛ рдбрд┐рд╡рд╛рдЗрд╕ рдХрдВрдЯреНрд░реЛрд▓рд░ рдореЗрдореЛрд░реА рдореЗрдВ рдмрд╛рдЗрдЯреНрд╕ рдХреЗ рдПрдХ рд╕рд░рдгреА рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдбрд┐рд╕реНрдХреНрд░рд┐рдкреНрдЯрд░ рдмрдирд╛рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рдореИрдВ рд╢рдмреНрджрд╛рд╡рд▓реА рдкрд░ рдЕрд▓рдЧ рд╕реЗ рдзреНрдпрд╛рди рджреЗрдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ред рдЕрдВрдЧреНрд░реЗрдЬреА рднрд╛рд╖рд╛ рдХреЗ рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ рджреЛ рд╢рдмреНрдж рд╕рд╛рдорд╛рдиреНрдп рд╣реИрдВ - рдЬреЙрдпрд╕реНрдЯрд┐рдХ рдФрд░ рдЧреЗрдордкреИрдб ред рдЬреЙрдпрд╕реНрдЯрд┐рдХ рд╢рдмреНрдж рдХреЛ рдЖрдорддреМрд░ рдкрд░ рдореИрдирд┐рдкреБрд▓реЗрдЯрд░ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдПрдХ рд╣рд╛рде рд╕реЗ рдкрдХрдбрд╝рдХрд░ рдЕрд▓рдЧ-рдЕрд▓рдЧ рджрд┐рд╢рд╛рдУрдВ рдореЗрдВ рдЭреБрдХрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдЧреЗрдордкреИрдб рдПрдХ рдбрд┐рд╡рд╛рдЗрд╕ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдмрдЯрди рдФрд░ рд╕реНрдЯрд┐рдХ рджреЛ рд╣рд╛рдереЛрдВ рд╕реЗ рд▓рдЧреЗ рд╣реЛрддреЗ рд╣реИрдВред рд░реВрд╕реА рдмреЛрд▓рдиреЗ рд╡рд╛рд▓реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЖрдорддреМрд░ рдкрд░ рдЬреЙрдпрд╕реНрдЯрд┐рдХ рдХреЛ рдХрд╣рддреЗ рд╣реИрдВ, рдФрд░ рджреВрд╕рд░рд╛ред HID рдбрд┐рд╡рд╛рдЗрд╕ рдХреЗ рд╡рд┐рд╡рд░рдг рдореЗрдВ рдЬреЙрдпрд╕реНрдЯрд┐рдХ рдФрд░ рдЧреЗрдордкреИрдб рдХреЗ рдмреАрдЪ рдЕрдВрддрд░ рд╣реИред рд╡рд┐рдорд╛рди рдореЙрдбрд▓ рдХрдВрд╕реЛрд▓ рдЧреЗрдордкреИрдб рдХреЗ рд▓рд┐рдП рдЕрдкрдиреЗ рдХрд╛рд░реНрдпрд╛рддреНрдордХ рдЙрджреНрджреЗрд╢реНрдп рдореЗрдВ рдЕрдзрд┐рдХ рд╕рдорд╛рди рд╣реИ, рдЗрд╕рд▓рд┐рдП рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдореИрдВ рдХрднреА-рдХрднреА "рдЧреЗрдордкреИрдб" рд╢рдмреНрдж рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реВрдВрдЧрд╛редрд╣рдордиреЗ рдПрдХ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдЬреЗрдирд░реЗрдЯ рдХрд┐рдпрд╛, рдЬрд┐рд╕рд╕реЗ рдпрд╣ рд╕рдВрдХреЗрдд рдорд┐рд▓рддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдбрд┐рд╡рд╛рдЗрд╕ рд╣реНрдпреВрдорди рдЗрдВрдЯрд░рдлреЗрд╕ рдбрд┐рд╡рд╛рдЗрд╕ рдХреА рддрд░рд╣ рдХрд╛рдо рдХрд░реЗрдЧрд╛ред рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рд╣реИ рдХрд┐ рдПрдХ USB HID рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╕реЗ рдЬреБрдбрд╝рд╛ рд╣реИ рдФрд░ рдПрдХ рдбрд┐рд╡рд╛рдЗрд╕ рдбреЗрд╕рд┐рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкрд╣рд▓реЗ рд╣реА рдЬреЗрдирд░реЗрдЯ рд╣реЛ рдЪреБрдХрд╛ рд╣реИред рдпрд╣ usbd_hid.c рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╕реНрдерд┐рдд рд╣реИ , рдорд╛рдЙрд╕ рд░рд┐рдкреЛрд░реНрдЯ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:HID_Mouse_Report_Descriptor__ALIGN_BEGIN static uint8_t HID_MOUSE_ReportDesc[HID_MOUSE_REPORT_DESC_SIZE] __ALIGN_END =
{
0x05, 0x01,
0x09, 0x02,
0xA1, 0x01,
0x09, 0x01,
0xA1, 0x00,
0x05, 0x09,
0x19, 0x01,
0x29, 0x03,
0x15, 0x00,
0x25, 0x01,
0x95, 0x03,
0x75, 0x01,
0x81, 0x02,
0x95, 0x01,
0x75, 0x05,
0x81, 0x01,
0x05, 0x01,
0x09, 0x30,
0x09, 0x31,
0x09, 0x38,
0x15, 0x81,
0x25, 0x7F,
0x75, 0x08,
0x95, 0x03,
0x81, 0x06,
0xC0, 0x09,
0x3c, 0x05,
0xff, 0x09,
0x01, 0x15,
0x00, 0x25,
0x01, 0x75,
0x01, 0x95,
0x02, 0xb1,
0x22, 0x75,
0x06, 0x95,
0x01, 0xb1,
0x01, 0xc0
};
рдЫрд┐рдкрд╛рдИ рд░рд┐рдкреЛрд░реНрдЯ рдбрд┐рд╕реНрдХреНрд░рд┐рдкреНрдЯрд░ рдХреЛ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдмрдирд╛рдирд╛ рдмреЗрд╣рдж рд╕рдордп рд▓реЗрдиреЗ рд╡рд╛рд▓рд╛ рд╣реИред рдХрд╛рд░реНрдп рдХреЛ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдПрдХ рдЙрдкрдХрд░рдг рд╣реИ рдЬрд┐рд╕реЗ HID Descriptor Tool (DT) рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ ред рдпрд╣ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдЖрдкрдХреЗ рдбрд┐рд╡рд╛рдЗрд╕ рдХреЗ рд▓рд┐рдП рдПрдХ рдбрд┐рд╕реНрдХреНрд░рд┐рдкреНрдЯрд░ рдмрдирд╛ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕рдХреЗ рд╕рд╛рде рд╕рдВрдЧреНрд░рд╣ рдореЗрдВ рдЖрдк рд╡рд┐рднрд┐рдиреНрди рдЙрдкрдХрд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП рд╡рд░реНрдгрдирдХрд░реНрддрд╛рдУрдВ рдХреЗ рдХрдИ рдЙрджрд╛рд╣рд░рдг рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВредрдпрд╣рд╛рдБ рдорд╛рдЙрд╕ рдФрд░ рдХреАрдмреЛрд░реНрдб (рдЕрдВрдЧреНрд░реЗрдЬреА рдореЗрдВ) рдХреЗ рд▓рд┐рдП рдЕрдкрдирд╛ рд╕реНрд╡рдпрдВ рдХрд╛ рдПрдЪрдЖрдИрдбреА рдбрд┐рд╕реНрдХреНрд░рд┐рдкреНрдЯрд░ рдмрдирд╛рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд▓реЗрдЦ рд╣реИред рдореИрдВ рдЖрдкрдХреЛ рд░реВрд╕реА рдореЗрдВ рдмрддрд╛рдКрдВрдЧрд╛ рдХрд┐ рдЧреЗрдордкреИрдб рдХреЗ рд▓рд┐рдП рдПрдХ рд╣реИрдВрдбрд▓ рдХреИрд╕реЗ рдмрдирд╛рдпрд╛ рдЬрд╛рдПредрдХрдВрд╕реЛрд▓ рджреНрд╡рд╛рд░рд╛ рднреЗрдЬреА рдЧрдИ рдЫрд┐рдкрд╛рдИ-рд░рд┐рдкреЛрд░реНрдЯ рдореЗрдВ рдПрдирд╛рд▓реЙрдЧ рд╕реНрдЯрд┐рдХреНрд╕ рдХреЗ рджреЛ рдЕрдХреНрд╖реЛрдВ рдХреЗ рд▓рд┐рдП рдЪрд╛рд░ 16-рдмрд┐рдЯ рдорд╛рди рдФрд░ рдмрдЯрдиреЛрдВ рдХреЗ рд▓рд┐рдП 16 рдПрдХ-рдмрд┐рдЯ рдорд╛рди рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдХреБрд▓ 10 рдмрд╛рдЗрдЯреНрд╕ред DT рдореЗрдВ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдЗрд╕рдХрд╛ рд╣реИрдВрдбрд▓ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦреЗрдЧрд╛: 0x05, 0x01,
0x09, 0x05,
0xa1, 0x01,
0x09, 0x01,
0xa1, 0x00,
0x09, 0x30,
0x09, 0x31,
0x15, 0x00,
0x26, 0xe8, 0x03,
0x75, 0x10,
0x95, 0x02,
0x81, 0x02,
0xc0,
0xa1, 0x00,
0x09, 0x33,
0x09, 0x34,
0x15, 0x00,
0x26, 0xe8, 0x03,
0x75, 0x10,
0x95, 0x02,
0x81, 0x02,
0xc0,
0x05, 0x09,
0x19, 0x01,
0x29, 0x10,
0x15, 0x00,
0x25, 0x01,
0x75, 0x01,
0x95, 0x10,
0x81, 0x02,
0xc0
рдпрд╣ рдорд╛рдЙрд╕ рдбрд┐рд╕реНрдХреНрд░рд┐рдкреНрдЯрд░ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдХрдо рднрдпрднреАрдд рдирд╣реАрдВ рджрд┐рдЦрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдЖрдк рд╕рдордЭрддреЗ рд╣реИрдВ рдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рдкрдВрдХреНрддрд┐ рдХрд╛ рдХреНрдпрд╛ рдорддрд▓рдм рд╣реИ, рддреЛ рд╕рдм рдХреБрдЫ рдХрд╛рдлреА рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИ рдФрд░ рддрд╛рд░реНрдХрд┐рдХ рд╣реИредрдЙрдкрдпреЛрдЧ рджрд┐рдЦрд╛рддрд╛ рд╣реИ рдХрд┐ рд╕рд┐рд╕реНрдЯрдо рдХреЛ рдЖрдЧреЗ рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдбреЗрдЯрд╛ рдХреА рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХреИрд╕реЗ рдХрд░рдиреА рдЪрд╛рд╣рд┐рдПредрдЙрдкрдпреЛрдЧ рдХреЗ рдХрдИ рдкреНрд░рдХрд╛рд░ рд╣реИрдВ, рдЙрдиреНрд╣реЗрдВ рд╕рдореВрд╣реЛрдВ рдореЗрдВ рдХреНрд░рдордмрджреНрдз рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ - рдЙрдкрдпреЛрдЧ рдкреГрд╖реНрдаред рдЗрд╕рд▓рд┐рдП, рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЙрдкрдпреЛрдЧ рдХрд╛ рдЪрдпрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдкрд╣рд▓реЗ рд╕рдВрдмрдВрдзрд┐рдд USAGE_PAGE рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдЙрдкрдпреЛрдЧ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛ рдЫрд┐рдкрд╛ рдЙрдкрдпреЛрдЧ рддрд╛рд▓рд┐рдХрд╛рдУрдВ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдореЗрдВ рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ ред рд╡рд┐рд╡рд░рдгрдХ рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ, рд╣рдо рд╕рдВрдХреЗрдд рджреЗрддреЗ рд╣реИрдВ рдХрд┐ рдЬреЙрдпрд╕реНрдЯрд┐рдХ рдХрд╛ рд╡рд░реНрдгрди рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛:USAGE_PAGE (рд╕рд╛рдорд╛рдиреНрдп рдбреЗрд╕реНрдХрдЯреЙрдк)
рдЙрдкрдпреЛрдЧ (рдЧреЗрдо рдкреИрдб)
рд╕рдВрдХрд▓рди рдХрдИ рд╕рдВрдмрдВрдзрд┐рдд рдбреЗрдЯрд╛рд╕реЗрдЯ рдХреЛ рдЬреЛрдбрд╝рддрд╛ рд╣реИредрднреМрддрд┐рдХ рд╕рдВрдЧреНрд░рд╣ рдХрд╛ рдЙрдкрдпреЛрдЧ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЬреНрдпрд╛рдорд┐рддреАрдп рдмрд┐рдВрджреБ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдбреЗрдЯрд╛ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рдПрдирд╛рд▓реЙрдЧ рд╕реНрдЯрд┐рдХред рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕рдВрдЧреНрд░рд╣ рдХрд╛ рдЙрдкрдпреЛрдЧ рд╡рд┐рднрд┐рдиреНрди рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдПрдХ рдбрд┐рд╡рд╛рдЗрд╕ рдореЗрдВ рд╕рдВрдпреЛрдЬрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рдПрдХреАрдХреГрдд рдЯреНрд░реИрдХрдкреИрдб рд╡рд╛рд▓реЗ рдХреАрдмреЛрд░реНрдб рдореЗрдВ рджреЛ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╕рдВрдЧреНрд░рд╣ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред рд╣рдо рдХреЗрд╡рд▓ рдЬреЙрдпрд╕реНрдЯрд┐рдХ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рд╕рдВрдЧреНрд░рд╣ рдПрдХ рд╣реЛрдЧрд╛:рд╕рдВрдХрд▓рди (рдЖрд╡реЗрджрди)
...
END_COLLECTION
рдЙрд╕рдХреЗ рдмрд╛рдж, рдЖрдкрдХреЛ рдпрд╣ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдХрд┐ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рд╕рдВрдЪрд╛рд░рд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рддрддреНрд╡реЛрдВ рдХрд╛ рд╡рд░реНрдгрди рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдкреЙрдЗрдВрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдЪреВрд╣реЗ, рдЬреЙрдпрд╕реНрдЯрд┐рдХ, рдЧреЗрдордкреИрдб, рдбрд┐рдЬрд┐рдЯрд╛рдЗрдЬрд╝рд░ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:рдЙрдкрдпреЛрдЧ (рд╕реВрдЪрдХ)
рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдПрдХ рд╕рдВрдЧреНрд░рд╣ рдореЗрдВ рд╕рдВрдпреБрдХреНрдд рд▓рд╛рдареА рдХреЗ рд╡рд┐рд╡рд░рдг рд╣реИрдВ:рд╕рдВрдХрд▓рди (рднреМрддрд┐рдХ)
USAGE (X)
USAGE (Y)
LOGICAL_MINIMUM (0)
LOGICAL_MAXIMUM (1000)
REPORT_SIZE (16)
REPORT_COUNT (2)
INPUT (Data,Var,Abs)
END_COLLECTION
рдпрд╣рд╛рдВ рдЙрдкрдпреЛрдЧ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рджреЛ рдЕрдХреНрд╖реЛрдВ, рдПрдХреНрд╕ рдФрд░ рд╡рд╛рдИ рдХреЗ рд╕рд╛рде рд╡рд┐рдЪрд▓рди рдорд╛рдиреЛрдВ рдХрд╛рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ ред LogICAL_MINIMUM рдФрд░ LOGICAL_MAXIMUM рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╕реАрдорд╛ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдкреНрд░реЗрд╖рд┐рдд рдореВрд▓реНрдп рднрд┐рдиреНрди рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВредREPORT_COUNT рдФрд░ REPORT_SIZE рдХреНрд░рдорд╢рдГ, рдХрд┐рддрдиреЗ рд╕рдВрдЦреНрдпрд╛ рдФрд░ рдХрд┐рд╕ рдЖрдХрд╛рд░ рдореЗрдВ рд╣рдо рд╕реНрдерд╛рдирд╛рдВрддрд░рдг рдХрд░рдиреЗ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВ, рдЕрд░реНрдерд╛рддреН рджреЛ 16-рдмрд┐рдЯ рд╕рдВрдЦреНрдпрд╛редINPUT (рдбреЗрдЯрд╛, рд╡рд╛рд░, ABS) рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдбреЗрдЯрд╛ рдбрд┐рд╡рд╛рдЗрд╕ рд╕реЗ рдХрдВрдкреНрдпреВрдЯрд░ рдкрд░ рдЖрддрд╛ рд╣реИ, рдФрд░ рдпреЗ рдбреЗрдЯрд╛ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВред рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдореВрд▓реНрдп рдирд┐рд░рдкреЗрдХреНрд╖ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХрд░реНрд╕рд░ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдорд╛рдЙрд╕ рд╕реЗ рд╕рд╛рдкреЗрдХреНрд╖ рдореВрд▓реНрдп рдЖрддреЗ рд╣реИрдВред рдХрднреА-рдХрднреА рдбреЗрдЯрд╛ рдХреЛ рдХреЙрдиреНрд╕реНрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рд╡рд░реНрдгрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рди рдХрд┐ рд╡рд╛рд░ рдХреЗ рд░реВрдк рдореЗрдВред рдЧреИрд░-рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд┐рдЯреНрд╕ рдХреЛ рдкреНрд░рд╕рд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣ рдЖрд╡рд╢реНрдпрдХ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рддреАрди рдмрдЯрди рдХреЗ рд╕рд╛рде рдПрдХ рдорд╛рдЙрд╕ рд░рд┐рдкреЛрд░реНрдЯ рдореЗрдВ, рдмрдЯрди рдХреЗ рд▓рд┐рдП 3 рдмрд┐рдЯреНрд╕ рд╡рд░ рдФрд░ рдХрд╛рдВрд╕реНрдЯ рдХреЗ 5 рдмрд┐рдЯреНрд╕ рдХреЛ рдПрдХ рдЖрдХрд╛рд░ рдХреЗ рд▓рд┐рдП рд╕реНрдерд╛рдирд╛рдВрддрд░рдг рдЖрдХрд╛рд░ рдХреЗ рдкреВрд░рдХ рдХреЗ рд▓рд┐рдП рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИредрдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдПрдХреНрд╕ рдФрд░ рд╡рд╛рдИ рдХреБрд▓реНрд╣рд╛рдбрд╝рд┐рдпреЛрдВ рдХрд╛ рд╡рд░реНрдгрди рдПрдХ рд╕рд╛рде рд╕рдореВрд╣реАрдХреГрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЙрдирдХреЗ рдкрд╛рд╕ рдПрдХ рд╣реА рдЖрдХрд╛рд░ рд╣реИ, рдПрдХ рд╣реА рд╕реАрдорд╛ рд╣реИред рдПрдХ рд╣реА рдПрдирд╛рд▓реЙрдЧ рд╕реНрдЯрд┐рдХ рдХреЛ рдкреНрд░рддреНрдпреЗрдХ рдЕрдХреНрд╖ рдХрд╛ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ рд╡рд░реНрдгрди рдХрд░рддреЗ рд╣реБрдП, рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рд╡рд░реНрдгрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдРрд╕рд╛ рд╡рд┐рд╡рд░рдгрдХ рдкрд┐рдЫрд▓реЗ рдПрдХ рдХреЗ рд╕рдорд╛рди рдХрд╛рдо рдХрд░реЗрдЧрд╛:рд╕рдВрдХрд▓рди (рднреМрддрд┐рдХ)
рдЙрдкрдпреЛрдЧ (X)
LOGICAL_MINIMUM (0)
LOGICAL_MAXIMUM (1000)
REPORT_SIZE (16)
REPORT_COUNT (1)
INPUT (рдбреЗрдЯрд╛, рд╡рд╛рд░, ABS)
рдЙрдкрдпреЛрдЧ (Y)
LOGICAL_MINIMUM (0)
LOGICAL_MAXIMUM (1000)
REPORT_SIZE (16)
REPORT_COUNT (1)
INPUT (рдбреЗрдЯрд╛, рд╡рд╛рд░, ABS)
END_COLLECTION
рдкрд╣рд▓реА рдЫрдбрд╝реА рдХреЗ рдмрд╛рдж, рджреВрд╕рд░реА рдПрдирд╛рд▓реЙрдЧ рдЫрдбрд╝реА рдХрд╛ рд╡рд░реНрдгрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЗрд╕рдХреА рдХреБрд▓реНрд╣рд╛рдбрд╝рд┐рдпреЛрдВ рдХрд╛ рдПрдХ рдЕрд▓рдЧ рдЙрдкрдпреЛрдЧ рд╣реИ рддрд╛рдХрд┐ рдЖрдк рдЙрдиреНрд╣реЗрдВ рдкрд╣рд▓реА рдЫрдбрд╝реА рд╕реЗ рдЕрд▓рдЧ рдХрд░ рд╕рдХреЗрдВ - Rx рдФрд░ Ry:рд╕рдВрдХрд▓рди (рднреМрддрд┐рдХ)
USAGE (Rx) USAGE
(Ry)
LOGICAL_MINIMUM (0)
LOGICAL_MAXIMUM (1000)
REPORT_SIZE (16)
REPORT_COUNT (2)
INPUT (рдбреЗрдЯрд╛, рд╡рд╛рд░, ABS)
END_COLLECTION
рдЕрдм рдЖрдкрдХреЛ рдЧреЗрдордкреИрдб рдХреЗ рдХреБрдЫ рдмрдЯрди рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЗрд╕реЗ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:USAGE_PAGE (рдмрдЯрди) USAGE (рдмрдЯрди
1)
USAGE (рдмрдЯрди 2)
USAGE (рдмрдЯрди 3)
...
USAGE (рдмрдЯрди 2)
рдЙрдкрдпреЛрдЧ рд░реЗрдВрдЬ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рд╣реА рдкреНрд░рдХрд╛рд░ рдХреЗ рдмрдЯрди рдХреА рдмреЛрдЭрд┐рд▓ рд░рд┐рдХреЙрд░реНрдбрд┐рдВрдЧ рдХреЛ рдХрдо рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:USAGE_PAGE (рдмрдЯрди)
USAGE_MINIMUM (рдмрдЯрди 1)
USAGE_MAXIMUM (рдмрдЯрди 16)
рдмрдЯрди рджреНрд╡рд╛рд░рд╛ рдкреНрд░реЗрд╖рд┐рдд рдбреЗрдЯрд╛ 16 рдПрдХрд▓-рдмрд┐рдЯ рдорд╛рди рд╣реИрдВ, рдЬреЛ 0 рд╕реЗ 1 рддрдХ рднрд┐рдиреНрди рд╣реИрдВ:LOGICAL_MINIMUM (0)
LOGICAL_MAXIMUM (1)
REPORT_SIZE (1)
REPORT_COUNT (16)
INPUT (Data,Var,Abs)
рдбрд┐рд╕реНрдХреНрд░рд┐рдкреНрдЯрд░ рдореЗрдВ рд▓рд╛рдЗрдиреЛрдВ рдХрд╛ рдХреНрд░рдо рд╕рдЦреНрдд рдирд╣реАрдВ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, Logical_Minimum рдФрд░ Logical_Maximum рдЙрдкрдпреЛрдЧ (рдмрдЯрди) рд╕реЗ рдкрд╣рд▓реЗ рд▓рд┐рдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдпрд╛ Report_Size рдФрд░ Report_Count рдХреЛ рд╕реНрд╡реИрдк рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИредрдпрд╣ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ рдХрд┐ рдЗрдирдкреБрдЯ рдХрдорд╛рдВрдб рдореЗрдВ рдбреЗрдЯрд╛ рдЯреНрд░рд╛рдВрд╕рдлрд░ (рдЙрдкрдпреЛрдЧ, рдорд┐рдорд┐рдордо, рдЕрдзрд┐рдХрддрдо, рдЖрдХрд╛рд░, рдЧрдгрдирд╛) рдХреЗ рд▓рд┐рдП рд╕рднреА рдЖрд╡рд╢реНрдпрдХ рдкреИрд░рд╛рдореАрдЯрд░ рд╣реИрдВредрдЬрдм рдбрд┐рд╕реНрдХреНрд░рд┐рдкреНрдЯрд░ рдмрдирддрд╛ рд╣реИ, рддреЛ рдЗрд╕реЗ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдкрд╛рд░реНрд╕ рдбрд┐рд╕реНрдХреНрд░рд┐рдкреНрдЯрд░ рдХрдорд╛рдВрдб рдХреЗ рд╕рд╛рде рдЪреЗрдХ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ редрдпрджрд┐ рд╕рдм рдХреБрдЫ рдХреНрд░рдо рдореЗрдВ рд╣реИ, рддреЛ рдЗрд╕реЗ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдПрдЪ рдХреЗ рд╕рд╛рде рдирд┐рд░реНрдпрд╛рдд рдХрд░реЗрдВред рдореЗрдВ usbd_hid.c рдлрд╝рд╛рдЗрд▓ , рдПрдХ рдирдпрд╛ рдПрдХ рдХреЗ рд╕рд╛рде рд╡рд░реНрдгрдирдХрд░реНрддрд╛ рдХреА рдЬрдЧрд╣ рдФрд░ рдореЗрдВ рд╕рдорд╛рдпреЛрдЬрд┐рдд usbd_hid.h рдХреЗ рдЖрдХрд╛рд░ HID_MOUSE_REPORT_DESC_SIZE рд╡рд░реНрдгрдирдХрд░реНрддрд╛ 74 61 рддрдХрд░рд┐рдкреЛрд░реНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рднреЗрдЬрд╛ рдЬрд╛рддрд╛ рд╣реИ data_ready рдЭрдВрдбрд╛ ред рдЗрд╕рдХреЗ рд▓рд┐рдПmain.c рд╣рдо usbd_hid.h рд╣реЗрдбрд░ рдлрд╝рд╛рдЗрд▓ рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд░реЗрдВрдЧреЗ рдФрд░ рдореБрдЦреНрдп рд▓реВрдк рдореЗрдВ рд╣рдо рд░рд┐рдкреЛрд░реНрдЯ рднреЗрдЬрдиреЗ рд╡рд╛рд▓реЗ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд░реЗрдВрдЧреЗред Rc_data рдПрд░реЗ рдЯрд╛рдЗрдк uint16 рдХрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЗрд╕рдХреЗ рд▓рд┐рдП рдкреЙрдЗрдВрдЯрд░ рдХреЛ 8-рдмрд┐рдЯ рдкреНрд░рдХрд╛рд░ рдореЗрдВ рдбрд╛рд▓рдирд╛ рд╣реЛрдЧрд╛ рдФрд░ 5 рдХреЗ рдмрдЬрд╛рдп 10 рдЖрдХрд╛рд░ рдкрд╛рд╕ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред#include "usbd_hid.h"
...
while (1)
{
if (data_ready)
{
USBD_HID_SendReport(&hUsbDeviceFS, (uint8_t*)rc_data, 10);
data_ready = 0;
};
};
рд╣рдо рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕реЗ рдлрд┐рд░ рд╕реЗ рдлреНрд▓реИрд╢ рдХрд░рддреЗ рд╣реИрдВредрдХрдиреЗрдХреНрд╢рди рдФрд░ рдЙрдкрдпреЛрдЧ
USB рдХреЗрдмрд▓ рдХреЛ ST-LINK USB рдХрдиреЗрдХреНрдЯрд░ рд╕реЗ USER USB рдХрдиреЗрдХреНрдЯрд░ рд╕реЗ рдлрд┐рд░ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░реЗрдВред рд╡рд┐рдВрдбреЛрдЬ рдирдП рдбрд┐рд╡рд╛рдЗрд╕ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдПрдЧрд╛ рдФрд░ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдбреНрд░рд╛рдЗрд╡рд░ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдЧрд╛ред рдЖрдЗрдП рдХреЛ рдЬрд╛рдиреЗ рдирд┐рдпрдВрддреНрд░рдг рдХрдХреНрд╖ -> рдбрд┐рд╡рд╛рдЗрд╕ рдФрд░ рдкреНрд░рд┐рдВрдЯрд░ рдФрд░ рдПрдХ рдЧреЗрдордкреИрдб рдЖрдЗрдХрди рдХреЗ рд╕рд╛рде рд╣рдорд╛рд░реЗ STM32 рдпреВрдПрд╕рдмреА-рдкреАрдкреАрдПрдо рдПрдбрд╛рдкреНрдЯрд░ рдбрд┐рд╡рд╛рдЗрд╕ рджреЗрдЦреЗрдВредрдбрд┐рд╡рд╛рдЗрд╕ рдХреЗ рдорд╛рдкрджрдВрдбреЛрдВ рдореЗрдВ, рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рд╕реНрдЯрд┐рдХ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдХреНрд░реЙрд╕ рдлрд╝реАрд▓реНрдб рдореЗрдВ рдХреИрд╕реЗ рдШреВрдорддрд╛ рд╣реИ рдФрд░ рдХреЙрд▓рдо рд╣рд┐рд▓рддрд╛ рд╣реИ, рдФрд░ рдмрдЯрди рдкреНрд░рддреАрдХ рдЯреЙрдЧрд▓ рд╕реНрд╡рд┐рдЪ рд╕реЗ рдКрдкрд░ рдкреНрд░рдХрд╛рд╢ рдХрд░рддреЗ рд╣реИрдВред рдЕрдВрд╢рд╛рдВрдХрди рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рд╡рд┐рд╡рд░рдгрдХ рдореЗрдВ рдиреНрдпреВрдирддрдо рдФрд░ рдЕрдзрд┐рдХрддрдо рдорд╛рди рдкрд╣рд▓реЗ рд╕реЗ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд┐рдП рдЧрдП рд╣реИрдВред
FPV FreeRider рд╢реБрд░реВ рдХрд░рдХреЗ, рд╣рдо рджреЗрдЦреЗрдВрдЧреЗ рдХрд┐ рдХреИрд╕реЗ рдЦреАрдВрдЪреА рдЧрдИ рд╡рд░реНрдЪреБрдЕрд▓ рдЧреЗрдордкреИрдб рдкрд░ рдореБрдЦреНрдп рд╕реНрдХреНрд░реАрди рдкрд░ рд╕реНрдЯрд┐рдХ рд╣рдорд╛рд░реЗ рд░рд┐рдореЛрдЯ рдХрдВрдЯреНрд░реЛрд▓ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдЪрд▓рддреА рд╣реИред рдпрджрд┐ рдХреБрд▓реНрд╣рд╛рдбрд╝рд┐рдпреЛрдВ рдХреЛ рдХрд┐рд╕реА рдХрд╛рд░рдг рд╕реЗ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдирд╣реАрдВ рд╕реМрдВрдкрд╛ рдЧрдпрд╛ рд╣реИ, рддреЛ рдЖрдк рдЙрдиреНрд╣реЗрдВ рдХреИрд▓рд┐рдмреНрд░реЗрдЯ рдирд┐рдпрдВрддреНрд░рдХ рдЕрдиреБрднрд╛рдЧ рдореЗрдВ рдкреБрди: рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ редрд░рд┐рдореЛрдЯ рдХрдВрдЯреНрд░реЛрд▓ рдХреЗ рдмрдЯрди рдХреЗ рд╕рдВрдЧрдд рдЯреЙрдЧрд▓ рд╕реНрд╡рд┐рдЪ рдХрд╛ рдЙрдкрдпреЛрдЧ рдлрд╝реНрд▓рд╛рдЗрдЯ рдореЛрдбреНрд╕ (рдПрдХреНрд░реЛрдмреИрдЯрд┐рдХ / рд╕реНрдЯреИрдмрд┐рд▓рд╛рдЗрдЬрд╝реНрдб) рдХреЛ рд╕реНрд╡рд┐рдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдХреИрдорд░рд╛ рд╡реНрдпреВ (рдмреЛрд░реНрдб / рдЬрд╝рдореАрди рд╕реЗ) рд╕реНрд╡рд┐рдЪ рдХрд░реЗрдВ, рд╢реБрд░реБрдЖрдд рд╕реЗ рдлрд╝реНрд▓рд╛рдЗрдЯ рд╢реБрд░реВ рдХрд░реЗрдВ рдпрд╛ рдереЛрдбрд╝реА рджреЗрд░ рдХреЗ рд▓рд┐рдП рджреМрдбрд╝ рдЪрд╛рд▓реВ рдХрд░реЗрдВредрдЙрдбрд╝рд╛рди рднрд░реА!
рд╡реАрдбрд┐рдпреЛ рдкрд░ - рдореЗрд░реЗ рдкреНрд░рд╢рд┐рдХреНрд╖рдг рдХреЗ рдХрдИ рджрд┐рдиреЛрдВ рдХрд╛ рдкрд░рд┐рдгрд╛рдоред рдЬрдм рдореИрдВ рдСрдЯреЛ-рд▓реЗрд╡рд▓рд┐рдВрдЧ рдХреЗ рд╕рд╛рде рдЙрдбрд╝рд╛рди рднрд░ рд░рд╣рд╛ рд╣реВрдВ, рдФрд░ рдПрдХреНрд░реЛрдмреИрдЯрд┐рдХ рдореЛрдб рдореЗрдВ рдирд╣реАрдВ, рдЬреИрд╕рд╛ рдХрд┐ рдПрдлрдкреАрд╡реА рд░реЗрд╕рд┐рдВрдЧ рдХреЗ рд╕рднреА рд╕реНрд╡рд╛рдореА рдХрд░рддреЗ рд╣реИрдВред рдПрдХреНрд░реЛ рдореЛрдб рдореЗрдВ, рдпрджрд┐ рдЖрдк рдЫрдбрд╝реЗрдВ рдЫреЛрдбрд╝рддреЗ рд╣реИрдВ, рддреЛ рдХреЛрдкреНрдЯрд░ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдХреНрд╖реИрддрд┐рдЬ рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдирд╣реАрдВ рд▓реМрдЯрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдЙрд╕реА рдХреЛрдг рдкрд░ рдЙрдбрд╝рдирд╛ рдЬрд╛рд░реА рд░рдЦрддрд╛ рд╣реИ рдЬрдм рдЙрд╕рдиреЗ рдЙрдбрд╝рд╛рди рднрд░реА рдереАред рдПрдХреНрд░реЛ рдореЛрдб рдореЗрдВ рдкреНрд░рдмрдВрдзрди рдХрд░рдирд╛ рдЕрдзрд┐рдХ рдХрдард┐рди рд╣реИ, рд▓реЗрдХрд┐рди рдЖрдк рдЕрдзрд┐рдХ рдЧрддрд┐, рдЧрддрд┐рд╢реАрд▓рддрд╛, рд╣рд╡рд╛ рдореЗрдВ рдЙрдерд▓-рдкреБрдерд▓ рдФрд░ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдКрдкрд░ рдХреА рдУрд░ рдЙрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВредрдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП Charpu рдорд╛рд╕реНрдЯрд░реНрд╕рдореИрдВ рдЕрднреА рднреА рдмрд╣реБрдд рджреВрд░ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдореИрдВрдиреЗ рдкреНрд░рд╢рд┐рдХреНрд╖рдг рдЬрд╛рд░реА рд░рдЦрд╛ рд╣реИ рдФрд░ рдореИрдВ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣ рд╕рдХрддрд╛ рд╣реВрдВ рдХрд┐ рдПрдХ рд░реЗрд╕рд┐рдВрдЧ рдорд┐рдиреА рдХреЙрдкреНрдЯрд░ рдХреЗ рд╡рд┐рдЪрд╛рд░ рдиреЗ рдореБрдЭреЗ рдФрд░ рднреА рдЕрдзрд┐рдХ рджрд┐рд▓рдЪрд╕реНрдкреА рджреАред рдФрд░ рдЬрд▓реНрдж рд╣реА, рдореИрдВ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЗрд╕рдХреЗ рдирд┐рд░реНрдорд╛рдг рдФрд░ рдЙрдбрд╝рд╛рдиреЛрдВ рдореЗрдВ рд▓рдЧрд╛ рд░рд╣реВрдВрдЧрд╛, рдЬреЛ рдЕрдм рд╕рд┐рдореНрдпреБрд▓реЗрдЯрд░ рдореЗрдВ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдХрдареЛрд░ рд╡рд╛рд╕реНрддрд╡рд┐рдХрддрд╛ рдореЗрдВ, рд╡рд╛рд╕реНрддрд╡рд┐рдХ рджреБрд░реНрдШрдЯрдирд╛рдУрдВ, рдЯреВрдЯреЗ рд╣реБрдП рдкреНрд░реЛрдкреЗрд▓рд░, рдЯреВрдЯреА рд╣реБрдИ рдореЛрдЯрд░реЛрдВ рдФрд░ рдмреИрдЯрд░реА рдХреЛ рдЬрд▓рд╛рдХрд░ рдирд╖реНрдЯ рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдпрд╣ рдЕрдиреНрдп рд▓реЗрдЦреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рд╖рдп рд╣реИ :)
рдХреЗрдЗрд▓ uVision 5 рдФрд░ STM32CubeMX рдХреЗ рд▓рд┐рдП рдкрд░рд┐рдпреЛрдЬрдирд╛ GitHub рдкрд░ рд╣реИ ред