рд░рдЬрд┐рд╕реНрдЯрд░ рдкрд░ рдПрд╕рдЯреАрд╕реА 3 рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдПрд╕рдИрд╕реАрдПрдо ... рдХреЛ рд░рдЬрд┐рд╕реНрдЯрд░реЛрдВ рдкрд░ рд▓реЙрдиреНрдЪ рдХрд░реЗрдВ

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

рдЖрдЬ рдореИрдВ рдЖрдкрдХреЛ рдмрддрд╛рдПрдЧрд╛ рдХрд┐ рд░рдЬрд┐рд╕реНрдЯрд░ (CMSIS) рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓реЗ LTDC рдореЙрдбреНрдпреВрд▓ рдХреЛ рдХреИрд╕реЗ рдЪрд▓рд╛рдирд╛ рд╣реИред рдПрдЪрдПрдПрд▓ рдФрд░ рдЕрдиреНрдп рдкреБрд╕реНрддрдХрд╛рд▓рдп рдкрд╕рдВрдж рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдзрд╛рд░реНрдорд┐рдХ рдХрд╛рд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рднреА рд░реБрдЪрд┐ рд╣реИред рдЖрдк рджреЗрдЦреЗрдВрдЧреЗ рдХрд┐ рдирд┐рдпрдорд┐рдд рдПрд╕рдкреАрдЖрдИ рдХреЗ рд░реВрдк рдореЗрдВ рд░рдЬрд┐рд╕реНрдЯрд░реЛрдВ рдкрд░ рдЬрдЯрд┐рд▓ рдмрд╛рд╣реНрдп рдЙрдкрдХрд░рдгреЛрдВ рдХреЛ рдЙрдард╛рдирд╛ рд╕рд░рд▓ рд╣реИред рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВ? рддреЛ рдлрд┐рд░ рдЪрд▓рд┐рдП!



1. LTDC рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдереЛрдбрд╝рд╛


рдпрд╣ рдкрд░рд┐рдзреАрдп рдореЙрдбреНрдпреВрд▓ рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗ рдПрдХ рдирд┐рдпрдВрддреНрд░рдХ рд╣реИ, рдЬреЛ рдЖрдорддреМрд░ рдкрд░ рдкреНрд░рджрд░реНрд╢рди рдХреЗ рдкрдХреНрд╖ рдореЗрдВ рдЦрдбрд╝рд╛ рд╣реЛрддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, SSD1963 рдФрд░ рдЗрд╕реА рддрд░рд╣ред рдпрджрд┐ рд╣рдо LTDC рдХреА рд╕рдВрд░рдЪрдирд╛ рдХреЛ рджреЗрдЦрддреЗ рд╣реИрдВ, рддреЛ рд╣рдо рджреЗрдЦреЗрдВрдЧреЗ рдХрд┐ рд╢рд╛рд░реАрд░рд┐рдХ рд░реВрдк рд╕реЗ рдпрд╣ 24 рдмрд┐рдЯреНрд╕ + рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдЧреНрд░рд╛рдлрд╝рд┐рдХреНрд╕ рддреНрд╡рд░рдХ + рд░реИрдо рдореЗрдВ рдбреЗрдЯрд╛ рдХреА рдПрдХ рд╕рд░рдгреА рдХреЗ рд╕рд╛рде рдПрдХ рд╕рдорд╛рдирд╛рдВрддрд░ рдмрд╕ рд╣реИ, рдЬреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рдбрд┐рд╕реНрдкреНрд▓реЗ рдмрдлрд░ (рдлреНрд░реЗрдо рдмрдлрд░) рд╣реИред



рдЖрдЙрдЯрдкреБрдЯ рдореЗрдВ, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рд╕рд╛рдзрд╛рд░рдг рд╕рдорд╛рдирд╛рдВрддрд░ рдмрд╕ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ 24 рдмрд┐рдЯреНрд╕ (RGB рдореЙрдбрд▓ рдХреЗ рд░рдВрдЧ рдкреНрд░рддрд┐ 8 рдмрд┐рдЯреНрд╕), рд╕рд┐рдВрдХреНрд░реЛрдирд╛рдЗрдЬрд╝реЗрд╢рди рд▓рд╛рдЗрдиреНрд╕, рдСрди / рдСрдл рд▓рд╛рдЗрди рдФрд░ рдкрд┐рдХреНрд╕реЗрд▓ рдШрдбрд╝реА рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрддреА рд╣реИрдВред рдЙрддреНрддрд░рд╛рд░реНрджреНрдз, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдПрдХ рдШрдбрд╝реА рд╕рдВрдХреЗрдд рд╣реИ рдЬрд┐рд╕рдХреЗ рджреНрд╡рд╛рд░рд╛ рдкрд┐рдХреНрд╕рд▓ рдХреЛ рдбрд┐рд╕реНрдкреНрд▓реЗ рдореЗрдВ рд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЕрд░реНрдерд╛рдд, рдпрджрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ 9.5 рдореЗрдЧрд╛рд╣рд░реНрдЯреНрдЬ рдХреА рдЖрд╡реГрддреНрддрд┐ рд╣реИ, рддреЛ 1 рд╕реЗрдХрдВрдб рдореЗрдВ рд╣рдо 9.5 рдорд┐рд▓рд┐рдпрди рдкрд┐рдХреНрд╕рд▓ рд▓реЛрдб рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣ рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ, рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рд╕рдордп рдФрд░ рдЕрдиреНрдп рдЪреАрдЬреЛрдВ рдХреЗ рдХрд╛рд░рдг рд╕рдВрдЦреНрдпрд╛ рдХреБрдЫ рдЕрдзрд┐рдХ рдорд╛рдореВрд▓реА рд╣реИред

LTDC рдХреЗ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддреГрдд рдкрд░рд┐рдЪрдп рдХреЗ рд▓рд┐рдП, рдореИрдВ рдЖрдкрдХреЛ рдХреБрдЫ рджрд╕реНрддрд╛рд╡реЗрдЬ рдкрдврд╝рдиреЗ рдХреА рд╕рд▓рд╛рд╣ рджреЗрддрд╛ рд╣реВрдВ:

  1. F4 рдореЗрдВ LTDC рдХреА рдХреНрд╖рдорддрд╛рдУрдВ рдХрд╛ рдЕрд╡рд▓реЛрдХрди, рд╣рдорд╛рд░реЗ F7 рдореЗрдВ рд╕рдм рдХреБрдЫ рд╕рдорд╛рди рд╣реИ
  2. рдЖрд╡реЗрджрди рдиреЛрдЯ 4861. "STM32 MCUs рдкрд░ рдПрд▓рд╕реАрдбреА-рдЯреАрдПрдлрдЯреА рдбрд┐рд╕реНрдкреНрд▓реЗ рдХрдВрдЯреНрд░реЛрд▓рд░ (LTDC)"

2. рд╣рдореЗрдВ рдХреНрдпрд╛ рдХрд░рдиреЗ рдХреА рдЬрд╝рд░реВрд░рдд рд╣реИ?


рдПрд╕рдЯреА рдорд╛рдЗрдХреНрд░реЛрдХрдВрдЯреНрд░реЛрд▓рд░реНрд╕ рдиреЗ рдЕрдЪреНрдЫреЗ рдХрд╛рд░рдг рдХреЗ рд▓рд┐рдП рд▓реЛрдХрдкреНрд░рд┐рдпрддрд╛ рд╣рд╛рд╕рд┐рд▓ рдХреА рд╣реИ, рдХрд┐рд╕реА рднреА рдЗрд▓реЗрдХреНрдЯреНрд░реЙрдирд┐рдХ рдШрдЯрдХреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдЖрд╡рд╢реНрдпрдХрддрд╛ рдкреНрд░рд▓реЗрдЦрди рд╣реИ, рдФрд░ рдЗрд╕рдХреЗ рд╕рд╛рде рд╕рдм рдХреБрдЫ рдареАрдХ рд╣реИред рд╕рд╛рдЗрдЯ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рднрдпрд╛рдирдХ рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВ рд╕рднреА рджрд╕реНрддрд╛рд╡реЗрдЬреЛрдВ рдХреЗ рд▓рд┐рдВрдХ рдЫреЛрдбрд╝ рджреВрдВрдЧрд╛ред рдирд┐рд░реНрдорд╛рддрд╛ рд╣рдореЗрдВ рд╕рд╛рдЗрдХрд┐рд▓ рдХреА рдкреАрдбрд╝рд╛ рдФрд░ рдЖрд╡рд┐рд╖реНрдХрд╛рд░ рд╕реЗ рдмрдЪрд╛рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП, рд╕рдВрджрд░реНрдн рдкреБрд╕реНрддрд┐рдХрд╛ RM0385 рдореЗрдВ рдкреГрд╖реНрда 520 рдкрд░ , рдХрд╛рд▓реЗ рдФрд░ рд╕рдлреЗрдж рдХрджрдо рджрд┐рдП рдЧрдП рд╣реИрдВ, рд╣рдореЗрдВ рдХреНрдпрд╛ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:



рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдЖрдкрдХреЛ рд╡рд░реНрдгрд┐рдд рдХрд╛ рдЖрдзрд╛ рдирд╣реАрдВ рдХрд░рдирд╛ рд╣реЛрдЧрд╛: рдЗрд╕реЗ рдпрд╛ рддреЛ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рдпрд╛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдиреНрдпреВрдирддрдо рд╢реБрд░реБрдЖрдд рдХреЗ рд▓рд┐рдП, рдЬреЛ рд╣рдореЗрдВ рдкрд┐рдХреНрд╕реЗрд▓ рдЦреАрдВрдЪрдиреЗ, рдЪрд┐рддреНрд░, рд░реЗрдЦрд╛рдВрдХрди, рдкрд╛рда рдЗрддреНрдпрд╛рджрд┐ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдпрд╣ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИ:

  • LTDC рдХреНрд▓реЙрдХрд┐рдВрдЧ рд╕рдХреНрд╖рдо рдХрд░реЗрдВ
  • рдШрдбрд╝реА рдкреНрд░рдгрд╛рд▓реА рдФрд░ рдбреЗрдЯрд╛ рдЖрдЙрдЯрдкреБрдЯ рдХреА рдЖрд╡реГрддреНрддрд┐ рд╕реЗрдЯ рдХрд░реЗрдВ (рдкрд┐рдХреНрд╕реЗрд▓ рдШрдбрд╝реА)
  • LTDC рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП I / O рдкреЛрд░реНрдЯ (GPIO) рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВ
  • рд╣рдорд╛рд░реЗ рдкреНрд░рджрд░реНрд╢рди рдореЙрдбрд▓ рдХреЗ рд▓рд┐рдП рд╕рдордп рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░реЗрдВ
  • рд╕рдВрдХреЗрддреЛрдВ рдХреА рдзреНрд░реБрд╡рддрд╛ рдХреЛ рд╕рдорд╛рдпреЛрдЬрд┐рдд рдХрд░реЗрдВред рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдХрд┐рдпрд╛ рдЧрдпрд╛
  • рдкреНрд░рджрд░реНрд╢рди рдХреА рдкреГрд╖реНрдарднреВрдорд┐ рдХрд╛ рд░рдВрдЧ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реЗрдВред рд╣рдордиреЗ рдЙрд╕реЗ рдЕрднреА рддрдХ рдирд╣реАрдВ рджреЗрдЦрд╛, рдЖрдк рдЗрд╕реЗ "рд╢реВрдиреНрдп рдкрд░" рдЫреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ
  • рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкрд░рдд рдХреЗ рд▓рд┐рдП рдбрд┐рд╕реНрдкреНрд▓реЗ рдХреЗ рджреГрд╢реНрдп рдХреНрд╖реЗрддреНрд░ рдХрд╛ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЖрдХрд╛рд░ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░реЗрдВ
  • рд░рдВрдЧ рдкреНрд░рд╛рд░реВрдк рдЪреБрдиреЗрдВ: ARGB8888, RGB 888, RGB565, рдЖрджрд┐ред
  • рдЙрд╕ рд╕рд░рдгреА рдХреЗ рдкрддреЗ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реЗрдВ рдЬреЛ рдлреНрд░реЗрдо рдмрдлрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рд░реНрдп рдХрд░реЗрдЧрд╛
  • рдПрдХ рдкрдВрдХреНрддрд┐ рдореЗрдВ рдбреЗрдЯрд╛ рдХреА рдорд╛рддреНрд░рд╛ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░реЗрдВ (рдЪреМрдбрд╝рд╛рдИ рдореЗрдВ рд▓рдВрдмрд╛рдИ)
  • рд▓рд╛рдЗрдиреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдЗрдВрдЧрд┐рдд рдХрд░реЗрдВ (рдкреНрд░рджрд░реНрд╢рди рдКрдВрдЪрд╛рдИ)
  • рдЙрд╕ рдкрд░рдд рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд░реЗрдВ рдЬрд┐рд╕рдХреЗ рд╕рд╛рде рд╣рдо рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВ
  • LTDC рдореЙрдбреНрдпреВрд▓ рд╕рдХреНрд╖рдо рдХрд░реЗрдВ

рдбрд░рд╛рд╡рдирд╛? рдФрд░ рдореИрдВ рдбрд░ рдЧрдпрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдпрд╣ рдкреВрд░реА рдХрд╛рд░реНрдпрд╡рд╛рд╣реА рдХреЗ рд╕рд╛рде 20 рдорд┐рдирдЯ рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рдХрд▓рд╛ред рдПрдХ рдХрд╛рд░реНрдп рд╣реИ, рдпреЛрдЬрдирд╛ рдХреА рдпреЛрдЬрдирд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ рдкреВрд░рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реА рдмрдиреА рд╣реБрдИ рд╣реИред

3. рдШрдбрд╝реА рдкреНрд░рдгрд╛рд▓реА рдХреА рд╕реНрдерд╛рдкрдирд╛


рдкрд╣рд▓рд╛ рдЖрдЗрдЯрдо рд╣рдореЗрдВ LTDC рдореЙрдбреНрдпреВрд▓ рдХреЛ рдПрдХ рдШрдбрд╝реА рд╕рдВрдХреЗрдд рднреЗрдЬрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдпрд╣ рдЖрд░рд╕реАрд╕реА рд░рдЬрд┐рд╕реНрдЯрд░ рдХреЛ рд▓рд┐рдЦрдХрд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:

RCC->APB2ENR |= RCC_APB2ENR_LTDCEN; 

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

 RCC->CR |= RCC_CR_HSEON; while (!(RCC->CR & RCC_CR_HSERDY)); 

рдЕрдм рдирд┐рдпрдВрддреНрд░рдХ рдлреНрд▓реИрд╢ рдореЗрдореЛрд░реА рдХреЗ рд▓рд┐рдП рджреЗрд░реА рд╕реЗрдЯ рдХрд░реЗрдВ, рдЬреИрд╕рд╛ рдХрд┐ рд╡рд╣ рдХреЛрд░ рдлреНрд░рд┐рдХреНрд╡реЗрдВрд╕реА рдкрд░ рдХрд╛рдо рдХрд░рдирд╛ рдирд╣реАрдВ рдЬрд╛рдирддреАред рдЗрд╕рдХрд╛ рдореВрд▓реНрдп, рдмрд╛рдХреА рдбреЗрдЯрд╛ рдХреА рддрд░рд╣, рд╕рдВрджрд░реНрдн рдореИрдиреБрдЕрд▓ рд╕реЗ рд▓рд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:

 FLASH->ACR |= FLASH_ACR_LATENCY_5WS; 

рдЕрдм, рд╡рд╛рдВрдЫрд┐рдд рдЖрд╡реГрддреНрддрд┐ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВ рдЗрдирдкреБрдЯ рд╕реЗ 25 рдореЗрдЧрд╛рд╣рд░реНрдЯреНрдЬ рдХреЛ 25 рд╕реЗ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░реВрдВрдЧрд╛ рдФрд░ 1 рдореЗрдЧрд╛рд╣рд░реНрдЯреНрдЬ рдкреНрд░рд╛рдкреНрдд рдХрд░реВрдВрдЧрд╛ред рдЕрдЧрд▓рд╛, рдкреАрдПрд▓рдПрд▓ I рдореЗрдВ 432 рд╕реЗ рдЧреБрдгрд╛ рдХрд░реЗрдВ, рдХреНрдпреЛрдВрдХрд┐ рднрд╡рд┐рд╖реНрдп рдореЗрдВ / 2 рдХреЗ рдиреНрдпреВрдирддрдо рдореВрд▓реНрдп рдХреЗ рд╕рд╛рде рдПрдХ рдЖрд╡реГрддреНрддрд┐ рд╡рд┐рднрдХреНрдд рд╣реЛрддрд╛ рд╣реИ рдФрд░ рдЖрдкрдХреЛ рдЗрд╕реЗ рджреЛ рдмрд╛рд░ рдЖрд╡реГрддреНрддрд┐ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдЙрд╕рдХреЗ рдмрд╛рдж, рд╣рдо PLL рдЗрдирдкреБрдЯ рдХреЛ рд╣рдорд╛рд░реЗ рдХреНрд╡рд╛рд░реНрдЯреНрдЬ рдЧреБрдВрдЬрдпрдорд╛рди рдпрдВрддреНрд░ (HSE) рд╕реЗ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ:

 RCC->PLLCFGR |= RCC_PLLCFGR_PLLM_0 | RCC_PLLCFGR_PLLM_3 | RCC_PLLCFGR_PLLM_4; RCC->PLLCFGR |= RCC_PLLCFGR_PLLN_4 | RCC_PLLCFGR_PLLN_5 | RCC_PLLCFGR_PLLN_7 | RCC_PLLCFGR_PLLN_8; RCC->PLLCFGR |= RCC_PLLCFGR_PLLSRC; 

рдЕрдм PLL рдХреЛ рд╕рдХреНрд╖рдо рдХрд░реЗрдВ рдФрд░ рддреИрдпрд╛рд░ рдзреНрд╡рдЬ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░реЗрдВ:

 RCC->CR |= RCC_CR_PLLON; while((RCC->CR & RCC_CR_PLLRDY) == 0){} 

рд╣рдо рдЕрдкрдиреЗ PLL рдХреЗ рдЖрдЙрдЯрдкреБрдЯ рдХреЛ рд╕рд┐рд╕реНрдЯрдо рдлрд╝реНрд░реАрдХреНрд╡реЗрдВрд╕реА рдХреЗ рд╕реНрд░реЛрдд рдХреЗ рд░реВрдк рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рддреИрдпрд╛рд░ рдзреНрд╡рдЬ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░рддреЗ рд╣реИрдВ:

 RCC->CFGR |= RCC_CFGR_SW_PLL; while((RCC->CFGR & RCC_CFGR_SWS) != RCC_CFGR_SWS_1) {} 

рдпрд╣ рд╕рд╛рдорд╛рдиреНрдп рдШрдбрд╝реА рд╕реЗрдЯрд┐рдВрдЧ рдХреЛ рд╕рдорд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИ рдФрд░ рд╣рдо рдЕрдкрдиреЗ рдкреНрд░рджрд░реНрд╢рди (рдкрд┐рдХреНрд╕реЗрд▓ рдШрдбрд╝реА) рдХреЗ рд▓рд┐рдП рдШрдбрд╝реА рдХреА рдЖрд╡реГрддреНрддрд┐ (PLLSAI) рдХреА рд╕реНрдерд╛рдкрдирд╛ рдХреЗ рд▓рд┐рдП рдЖрдЧреЗ рдмрдврд╝рддреЗ рд╣реИрдВред рдбреЗрдЯрд╢реАрдЯ рдХреЗ рдЕрдиреБрд╕рд╛рд░ PLLSAI рдХреЗ рд▓рд┐рдП рд╕рдВрдХреЗрдд рд╡рд┐рднрдХреНрдд / 25 рдХреЗ рдмрд╛рдж рд▓рд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЕрд░реНрдерд╛рдд, рдЗрдирдкреБрдЯ рдкрд░ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ 1 рдореЗрдЧрд╛рд╣рд░реНрдЯреНрдЬ рд╣реИред рд╣рдореЗрдВ рд▓рдЧрднрдЧ 9.5 рдореЗрдЧрд╛рд╣рд░реНрдЯреНрдЬ рдХреА рдЖрд╡реГрддреНрддрд┐ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЗрд╕рдХреЗ рд▓рд┐рдП рд╣рдо 1 рдореЗрдЧрд╛рд╣рд░реНрдЯреНрдЬ рдХреА рдЖрд╡реГрддреНрддрд┐ рдХреЛ 192 рд╕реЗ рдЧреБрдгрд╛ рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдлрд┐рд░ 5 рдФрд░ 4 рдХреЗ рджреЛ рдбрд┐рд╡рд╛рдЗрдбрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╣рдо рд╡рд╛рдВрдЫрд┐рдд рдорд╛рди PLLSAI = 1 MHz * 192/5/4/ 9.6 MHz рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВ:

 RCC->PLLSAICFGR |= RCC_PLLSAICFGR_PLLSAIN_6 | RCC_PLLSAICFGR_PLLSAIN_7; RCC->PLLSAICFGR |= RCC_PLLSAICFGR_PLLSAIR_0 | RCC_PLLSAICFGR_PLLSAIR_2; RCC->DCKCFGR1 |= RCC_DCKCFGR1_PLLSAIDIVR_0; RCC->DCKCFGR1 &= ~RCC_DCKCFGR1_PLLSAIDIVR_1; 

рдЕрдВрддрд┐рдо рдЪрд░рдг рдХреЗ рд░реВрдк рдореЗрдВ, рд╣рдо PLLSAI рдХреЛ рдкреНрд░рджрд░реНрд╢рди рдХреЗ рд▓рд┐рдП рд╕рдХреНрд╖рдо рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рддреИрдпрд╛рд░-рдЯреВ-рд╡рд░реНрдХ рдлреНрд▓реИрдЧ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░рддреЗ рд╣реИрдВ:

 RCC->CR |= RCC_CR_PLLSAION; while ((RCC->CR & RCC_CR_PLLSAIRDY) == 0) {} 

рдпрд╣ рдШрдбрд╝реА рдкреНрд░рдгрд╛рд▓реА рдХреЗ рдореВрд▓ рд╕реЗрдЯрдЕрдк рдХреЛ рдкреВрд░рд╛ рдХрд░рддрд╛ рд╣реИ, рддрд╛рдХрд┐ рднреВрд▓ рди рдЬрд╛рдП рдФрд░ рдлрд┐рд░ рдкреАрдбрд╝рд┐рдд рди рд╣реЛ, рдЪрд▓реЛ рд╕рднреА рдЗрдирдкреБрдЯ / рдЖрдЙрдЯрдкреБрдЯ рдкреЛрд░реНрдЯ (GPIO) рдкрд░ рдХреНрд▓реЙрдХрд┐рдВрдЧ рд╕рдХреНрд╖рдо рдХрд░реЗрдВред рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдмреИрдЯрд░реА рдкрд╛рд╡рд░ рдирд╣реАрдВ рд╣реИ, рдХрдо рд╕реЗ рдХрдо рдбрд┐рдмрдЧрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП, рдЗрд╕рд▓рд┐рдП рд╣рдо рдмрдЪрдд рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ:

 RCC->AHB1ENR |= RCC_AHB1ENR_GPIOAEN; RCC->AHB1ENR |= RCC_AHB1ENR_GPIOBEN; RCC->AHB1ENR |= RCC_AHB1ENR_GPIOCEN; RCC->AHB1ENR |= RCC_AHB1ENR_GPIODEN; RCC->AHB1ENR |= RCC_AHB1ENR_GPIOEEN; RCC->AHB1ENR |= RCC_AHB1ENR_GPIOFEN; RCC->AHB1ENR |= RCC_AHB1ENR_GPIOGEN; RCC->AHB1ENR |= RCC_AHB1ENR_GPIOHEN; RCC->AHB1ENR |= RCC_AHB1ENR_GPIOJEN; RCC->AHB1ENR |= RCC_AHB1ENR_GPIOKEN; 

4. I / O рдкреЛрд░реНрдЯреНрд╕ (GPIO) рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдирд╛


рдЬреАрдкреАрдУ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рдмрд╣реБрдд рд╕рд░рд▓ рд╣реИ - рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд╡реИрдХрд▓реНрдкрд┐рдХ рдЙрддреНрдкрд╛рджрди рдХреЗ рд░реВрдк рдореЗрдВ рдФрд░ рдЙрдЪреНрдЪ рдЖрд╡реГрддреНрддрд┐ рдкрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ LTDC рдмрд╕ рдХреЗ рд╕рднреА рдкреИрд░ рд╣реИрдВред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдкреГрд╖реНрда 201 рдкрд░ рд╕рдВрджрд░реНрдн рдкреБрд╕реНрддрд┐рдХрд╛ рдореЗрдВ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдпрд╣ рдЯрд┐рдк рд╣реИ:



рддрд╛рд▓рд┐рдХрд╛ рдЗрдВрдЧрд┐рдд рдХрд░рддреА рд╣реИ рдХрд┐ рдЖрд╡рд╢реНрдпрдХ рд╕реЗрдЯрд┐рдВрдЧ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдХрд┐рди рд░рдЬрд┐рд╕реНрдЯрд░реЛрдВ рдореЗрдВ рдмрд┐рдЯ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдпрд╣ рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рд╣реИ рдХрд┐ рд╕рднреА рдмреНрд░реЗрд╕рд┐рдЬрд╝ рдЕрдХреНрд╖рдо рд╣реИрдВред рдХрд╣рд╛рдБ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХреНрдпрд╛ рд╡реИрдХрд▓реНрдкрд┐рдХ рд╕рдорд╛рд░реЛрд╣ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП? рдФрд░ рдЗрд╕рдХреЗ рд▓рд┐рдП, рд╣рдорд╛рд░реЗ рдирд┐рдпрдВрддреНрд░рдХ рдкрд░ рдбреЗрдЯрд╛рд╢реАрдЯ рдореЗрдВ рдкреГрд╖реНрда 76 рдкрд░ рдЬрд╛рдПрдВ рдФрд░ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рддрд╛рд▓рд┐рдХрд╛ рджреЗрдЦреЗрдВ:



рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рддрд╛рд▓рд┐рдХрд╛ рдХрд╛ рддрд░реНрдХ рд╕рд░рд▓ рд╣реИ: рд╣рдореЗрдВ рдЕрдкрдиреЗ рдлрд╝рдВрдХреНрд╢рди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ LTDC B0, рддреЛ рд╣рдо рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ рдХрд┐рд╕ GPIO рдкрд░ рд╣реИ (PE4, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП) рдФрд░ рд╢реАрд░реНрд╖ рдкрд░ рд╣рдо рдЙрд╕ рд╡рд┐рдХрд▓реНрдк рдХреА рд╕рдВрдЦреНрдпрд╛ рджреЗрдЦрддреЗ рд╣реИрдВ рдЬрд┐рд╕реЗ рд╣рдо рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗ (рд╣рдорд╛рд░реЗ рд╕рд╛рде AF14)ред рд╡реИрдХрд▓реНрдкрд┐рдХ рдЖрдЙрдЯрдкреБрдЯ, LTDC B0 рдХреЗ рд╕рд╛рде рдкреБрд╢-рдЖрдЙрдЯрдкреБрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рд╣рдорд╛рд░реЗ рдЖрдЙрдЯрдкреБрдЯ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЛрдб рд▓рд┐рдЦрдирд╛ рд╣реЛрдЧрд╛:

 GPIOE->MODER &= ~GPIO_MODER_MODER4; GPIOE->MODER |= GPIO_MODER_MODER4_1; GPIOE->OSPEEDR |= GPIO_OSPEEDER_OSPEEDR4_1; GPIOE->AFR[0] &= ~GPIO_AFRL_AFRL4_0; GPIOE->AFR[0] |= GPIO_AFRL_AFRL4_1 | GPIO_AFRL_AFRL4_2 | GPIO_AFRL_AFRL4_3; 

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

 GPIOK->MODER &= ~GPIO_MODER_MODER3; GPIOK->MODER |= GPIO_MODER_MODER3_0; 

рдпрд╣ рд╕реЗрдЯрд┐рдВрдЧ PK3 рдЖрдЙрдЯрдкреБрдЯ рдХреЗ рд▓рд┐рдП рд╣реИ, рдЬреЛ рд╣рдорд╛рд░реА рдмреИрдХрд▓рд╛рдЗрдЯ рдХреЛ рдЪрд╛рд▓реВ рдФрд░ рдмрдВрдж рдХрд░рддрд╛ рд╣реИред рд╡реИрд╕реЗ, рдЖрдк рдЗрд╕реЗ рд╕реБрдЪрд╛рд░реВ рд░реВрдк рд╕реЗ рдЪрдордХ рдХреЛ рд╕рдорд╛рдпреЛрдЬрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреБрд╢ рднреА рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред PI12 рдХреЗ рд▓рд┐рдП, рдЬрд┐рд╕рдореЗрдВ рдПрдХ рдбрд┐рд╕реНрдкреНрд▓реЗ (DISP) рд╢рд╛рдорд┐рд▓ рд╣реИ, рд╕рдм рдХреБрдЫ рд╕рдорд╛рди рд╣реИред рдЗрди 2 рдкрд┐рдиреЛрдВ рдкрд░ рдЧрддрд┐ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдХрдо рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЙрдирд╕реЗ рдХреБрдЫ рдЙрдЪреНрдЪ-рдЖрд╡реГрддреНрддрд┐ рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИред

рдЖрдк рдбрд┐рдмрдЧ рдмреЛрд░реНрдб рдХреЗ рд╕рд░реНрдХрд┐рдЯ рдмреЛрд░реНрдб рдкрд░, рдпрд╛ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдбрд┐рд╡рд╛рдЗрд╕ рдХреЗ рд╕рд░реНрдХрд┐рдЯ рдЖрд░реЗрдЦ рдкрд░ рдЕрдиреНрдп рд╕рднреА I / O рдмрдВрджрд░рдЧрд╛рд╣реЛрдВ рдХреЛ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВред

5. рд╕рдордп рдФрд░ рдЙрдирдХреА рд╕реЗрдЯрд┐рдВрдЧреНрд╕


рдПрдХ рднреМрддрд┐рдХ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ рд╕рдордп рд╕рд╛рдорд╛рдиреНрдп рджреЗрд░реА рд╣реИред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдиреЗ рдмрд╛рд░-рдмрд╛рд░ рджреЗрд░реА (1) рдкреНрд░рдХрд╛рд░ рдХреЗ рд╡рд┐рднрд┐рдиреНрди рд╡рд┐рдХреГрддрд┐рдпреЛрдВ рдХрд╛ рдЕрд╡рд▓реЛрдХрди рдХрд┐рдпрд╛ рд╣реИ рдЬрдм рдЖрдк ILI9341 рдХреЗ рд╕рдорд╛рди SPI / I2C рдирд┐рдпрдВрддреНрд░рдХреЛрдВ рдХреЗ рд╕рд╛рде рдкреНрд░рджрд░реНрд╢рд┐рдд рдХреЛрдб рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЛ рджреЗрдЦрддреЗ рдереЗред рд╡рд╣рд╛рдВ, рдПрдХ рджреЗрд░реА рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рддрд╛рдХрд┐ рдирд┐рдпрдВрддреНрд░рдХ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХрдорд╛рдВрдб рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рдиреЗ, рдЙрд╕реЗ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдФрд░ рдлрд┐рд░ рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рдХреБрдЫ рдХрд░рдиреЗ рдХрд╛ рд╕рдордп рд╣реЛред LTDC рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╕рдм рдХреБрдЫ рдЙрд╕реА рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣реИ, рдХреЗрд╡рд▓ рд╣рдо рдмреИрд╕рд╛рдЦреА рдирд╣реАрдВ рдмрдирд╛рдПрдВрдЧреЗ рдФрд░ рдХреНрдпреЛрдВ рдирд╣реАрдВ - рд╣рдорд╛рд░реЗ рдорд╛рдЗрдХреНрд░реЛрдХрдВрдЯреНрд░реЛрд▓рд░ рд╕реНрд╡рдпрдВ рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдореЗрдВ рдЖрд╡рд╢реНрдпрдХ рд╕рдордп рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реИрдВред рдЙрдиреНрд╣реЗрдВ рдРрд╕реЗ рдбрд┐рд╕реНрдкреНрд▓реЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреНрдпреЛрдВ рд╣реИ рдЬрд╣рд╛рдВ рдХреЛрдИ рдирд┐рдпрдВрддреНрд░рдХ рдирд╣реАрдВ рд╣реИ? рд╣рд╛рдВ, рдпрд╣ рдкреНрд░рд╛рдердорд┐рдХ рд╣реИ рдХрд┐ рдкрд┐рдХреНрд╕рд▓ рдХреА рдкрд╣рд▓реА рдкрдВрдХреНрддрд┐ рдХреЛ рднрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдЕрдЧрд▓реА рдкрдВрдХреНрддрд┐ рдкрд░ рдЬрд╛рдПрдВ рдФрд░ рдЕрдкрдиреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рд╡рд╛рдкрд╕ рд▓реМрдЯреЗрдВред рдпрд╣ рдбрд┐рд╕реНрдкреНрд▓реЗ рдХреЗ рдЙрддреНрдкрд╛рджрди рдХреА рддрдХрдиреАрдХ рдХреЗ рдХрд╛рд░рдг рд╣реИ, рдФрд░ рдЗрд╕рд▓рд┐рдП рдкреНрд░рддреНрдпреЗрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдбрд┐рд╕реНрдкреНрд▓реЗ рдореЙрдбрд▓ рдХрд╛ рдЕрдкрдирд╛ рд╕рдордп рд╣реИред

рд╣рдореЗрдВ рдХрд┐рди рдореВрд▓реНрдпреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдпрд╣ рдЬрд╛рдирдиреЗ рдХреЗ рд▓рд┐рдП, рдПрд╕рдЯреА рд╡реЗрдмрд╕рд╛рдЗрдЯ рдкрд░ рдЬрд╛рдПрдВ рдФрд░ рдПрд╕рдЯреАрдПрдо 32 рдПрдл 746-рдбрд┐рд╕реНрдХреЛ рдбрд┐рдмрдЧ рдмреЛрд░реНрдб рдХреЗ рдЖрд░реЗрдЦ рдХреЛ рджреЗрдЦреЗрдВ ред рд╡рд╣рд╛рдВ рд╣рдо рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдбрд┐рд╕реНрдкреНрд▓реЗ RK043FN48H-CT672B рд╣реИ рдФрд░ рдЗрд╕рдХреЗ рд▓рд┐рдП рдкреНрд░рд▓реЗрдЦрди рдЙрдкрд▓рдмреНрдз рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрд╣рд╛рдБ ред рд╣рдо рдЦрдВрдб 13.рей.рез рдореЗрдВ рдкреГрд╖реНрда резрей рдкрд░ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВ:



рдпреЗ рд╣рдорд╛рд░реЗ рдореВрд▓реНрдп рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рд╣рдореЗрдВ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддреЗ рд╕рдордп рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред рдкреНрд░рд▓реЗрдЦрди рдореЗрдВ рднреА рдмрд╣реБрдд рдХреБрдЫ рд╣реИ рдЬреЛ рджрд┐рд▓рдЪрд╕реНрдк рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдмрд╕ рдФрд░ рдЗрддрдиреЗ рдкрд░ рд╕рд┐рдЧреНрдирд▓ рдЖрд░реЗрдЦ, рдЬрд┐рд╕реЗ рдЖрдкрдХреЛ рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрдк рдкреНрд░рджрд░реНрд╢рди рдХреЛ FPGA рдпрд╛ CPLD рдореЗрдВ рдЙрдард╛рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред

рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдкрд░ рдЬрд╛рдПрдВред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдЗрди рдореВрд▓реНрдпреЛрдВ рдХреЛ рдореЗрд░реЗ рд╕рд┐рд░ рдореЗрдВ рдирд╣реАрдВ рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВ рдЙрдиреНрд╣реЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХреЗ рд░реВрдк рдореЗрдВ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░реВрдВрдЧрд╛:

 #define DISPLAY_HSYNC ((uint16_t)30) #define DISPLAY_HBP ((uint16_t)13) #define DISPLAY_HFP ((uint16_t)32) #define DISPLAY_VSYNC ((uint16_t)10) #define DISPLAY_VBP ((uint16_t)2) #define DISPLAY_VFP ((uint16_t)2) 

рдПрдХ рджрд┐рд▓рдЪрд╕реНрдк рд╡рд┐рд╢реЗрд╖рддрд╛ рд╣реИред рдЯрд╛рдЗрдорд┐рдВрдЧ рдкрд▓реНрд╕ рдЪреМрдбрд╝рд╛рдИ , рдЬрд┐рд╕реЗ DISPLAY_HSYNC рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдХреЗрд╡рд▓ 5 MHz рдХреА рдкрд┐рдХреНрд╕реЗрд▓ рдШрдбрд╝реА рдЖрд╡реГрддреНрддрд┐ рдХреЗ рд▓рд┐рдП рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рдПрдХ рдорд╛рди рд╣реИ, рд▓реЗрдХрд┐рди 9 рдФрд░ 12 MHz рдХреЗ рд▓рд┐рдП рдпрд╣ рдирд╣реАрдВ рд╣реИред рдЖрдкрдХреЗ рдкреНрд░рджрд░реНрд╢рди рдХреЗ рд▓рд┐рдП рдЗрд╕ рд╕рдордп рдХрд╛ рдЪрдпрди рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдореБрдЭреЗ 30 рдХрд╛ рдпрд╣ рдорд╛рди рдорд┐рд▓рд╛, рдЬрдм рдПрд╕рдЯреА рдХреЗ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдореЗрдВ рдпрд╣ рдЕрд▓рдЧ рдерд╛ред рдкрд╣рд▓реА рд╢реБрд░реБрдЖрдд рдореЗрдВ, рдпрджрд┐ рдЖрдкрдХреЛ рдЗрд╕рдХреА рд╕реЗрдЯрд┐рдВрдЧ рдореЗрдВ рдХреЛрдИ рддреНрд░реБрдЯрд┐ рд╣реИ, рддреЛ рдЫрд╡рд┐ рдХреЛ рдмрд╛рдИрдВ рдУрд░ рдпрд╛ рджрд╛рдИрдВ рдУрд░ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдпрджрд┐ рдпрд╣ рджрд╛рдИрдВ рдУрд░ рд╣реИ, рддреЛ рд╣рдо рд╕рдордп рдШрдЯрд╛рддреЗ рд╣реИрдВ; рдпрджрд┐ рдмрд╛рдИрдВ рдУрд░, рд╣рдо рдЗрд╕реЗ рдмрдврд╝рд╛рддреЗ рд╣реИрдВред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдпрд╣ рджреГрд╢реНрдп рдХреНрд╖реЗрддреНрд░ рдХреА рдЙрддреНрдкрддреНрддрд┐ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рд╣рдо рдмрд╛рдж рдореЗрдВ рджреЗрдЦреЗрдВрдЧреЗред рдмрд╕ рдзреНрдпрд╛рди рд░рдЦреЗрдВ, рдФрд░ рд╣рдорд╛рд░реЗ AN4861 рдХреЗ рдкреЗрдЬ 24 рд╕реЗ рдирд┐рдореНрди рдЪрд┐рддреНрд░ рдЗрд╕ рдкреВрд░реЗ рдкреИрд░рд╛рдЧреНрд░рд╛рдл рдХреЛ рд╕рдордЭрдиреЗ рдореЗрдВ рдорджрдж рдХрд░реЗрдЧрд╛:



рдПрдХ рдЫреЛрдЯрд╛ рдЕрдореВрд░реНрдд рдпрд╣рд╛рдБ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИред рд╣рдорд╛рд░реЗ рдкрд╛рд╕ 2 рдбрд┐рд╕реНрдкреНрд▓реЗ рдЬреЛрди рд╣реИрдВ: рджреГрд╢реНрдпрдорд╛рди рдФрд░ рд╕рд╛рдорд╛рдиреНрдпред рджреГрд╢реНрдп рдХреНрд╖реЗрддреНрд░ рдореЗрдВ 272 рдкрд┐рдХреНрд╕реЗрд▓ рдХреЗ 480 рдХреЗ рдШреЛрд╖рд┐рдд рд░рд┐рдЬрд╝реЙрд▓реНрдпреВрд╢рди рдХреЗ рд╕рд╛рде рдЖрдпрд╛рдо рд╣реИрдВ, рдФрд░ рдХреБрд▓ рдХреНрд╖реЗрддреНрд░ рджреГрд╢реНрдпрдорд╛рди + рд╣рдорд╛рд░реА рд╕рдордпрд╛рд╡рдзрд┐ рд╣реИ, рдЬрд┐рдирдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдкрд░ 3 рд╣реИрдВред рдпрд╣ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП рднреА рд╕рд╛рд░реНрдердХ рд╣реИ (рдпрд╣ рдЕрдм рдЕрдореВрд░реНрдд рдирд╣реАрдВ рд╣реИ) рдХрд┐ рдПрдХ рд╕рд┐рд╕реНрдЯрдо рдЯрд┐рдХ 1 рдкрд┐рдХреНрд╕реЗрд▓ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдХреБрд▓ рдХреНрд╖реЗрддреНрд░рдлрд▓ 480 рдкрд┐рдХреНрд╕реЗрд▓ + HSYNC + HBP + HFP рд╣реИред

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

рд╕рдордп рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рдЕрдВрджрд░ рднрд╡рд┐рд╖реНрдп рдХреЗ рд▓рд┐рдП рдЦреБрдж рдХреЛ рдПрдХ рдЫреЛрдЯреА рд╕реА "рдЪреАрдЯ рд╢реАрдЯ" рдмрдирд╛ рд▓рд┐рдпрд╛ рд╣реИ, рдпрд╣ рдЖрдкрдХреЛ рдпрд╣ рд╕рдордЭрдиреЗ рдореЗрдВ рднреА рдорджрдж рдХрд░реЗрдЧрд╛ рдХрд┐ рдпрд╣ рдХреНрдпрд╛ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╣реИ рдФрд░ рдЗрд╕реЗ рдХрд╣рд╛рдБ рд▓рд┐рдЦрдирд╛ рд╣реИ:

 /* *************************** Timings for TFT display********************************** * * HSW = (DISPLAY_HSYNC - 1) * VSH = (DISPLAY_VSYNC - 1) * AHBP = (DISPLAY_HSYNC + DISPLAY_HBP - 1) * AVBP = (DISPLAY_VSYNC + DISPLAY_VBP - 1) * AAW = (DISPLAY_HEIGHT + DISPLAY_VSYNC + DISPLAY_VBP - 1) * AAH = (DISPLAY_WIDTH + DISPLAY_HSYNC + DISPLAY_HBP - 1) * TOTALW = (DISPLAY_HEIGHT + DISPLAY_VSYNC + DISPLAY_VBP + DISPLAY_VFP - 1) * TOTALH = (DISPLAY_WIDTH + DISPLAY_HSYNC + DISPLAY_HBP + DISPLAY_HFP - 1) * */ 

рдпрд╣ "рдЪреАрдЯ рд╢реАрдЯ" рдХрд╣рд╛рдВ рд╕реЗ рдЖрдпрд╛ ... рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдЖрдкрдиреЗ рдПрдХ рд╕рдорд╛рди "рд╕реВрддреНрд░" рдкрд╣рд▓реЗ рдкреИрд░рд╛рдЧреНрд░рд╛рдл рдХреЗ рдПрдХ рдЬреЛрдбрд╝реЗ рдХреЛ рджреЗрдЦрд╛ рдерд╛ред рджреВрд╕рд░реЗ, рд╣рдорд╛рд░реЗ AN4861 рдХреЗ рдкреЗрдЬ 56 рдкрд░ рдЬрд╛рдПрдВ:



рдпрд╣ рд╕рдЪ рд╣реИ, рдореБрдЭреЗ рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдЖрдкрдиреЗ рдЗрд╕ рдЪреАрдЯ рд╢реАрдЯ рдХреЗ рдЖрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рд╕рдордп рдХрд╛ рднреМрддрд┐рдХ рдЕрд░реНрде рд╕рдордЭ рд▓рд┐рдпрд╛ рд╣реИ рдФрд░ рдореБрдЭреЗ рдпрдХреАрди рд╣реИ рдХрд┐ рдЖрдк рд╕реНрд╡рдпрдВ рдЗрд╕реЗ рд╕рдВрдХрд▓рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕рдореЗрдВ рдХреБрдЫ рднреА рдЬрдЯрд┐рд▓ рдирд╣реАрдВ рд╣реИ, рдФрд░ рдЖрд░рдПрдо рдФрд░ рдПрдПрди рдХреА рддрд╕реНрд╡реАрд░реЗрдВ рдиреЗрддреНрд░рд╣реАрди рд░реВрдк рд╕реЗ рдЫрд╡рд┐ рдирд┐рд░реНрдорд╛рдг рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдкрд░ рд╕рдордп рдХреЗ рдкреНрд░рднрд╛рд╡ рдХреЛ рд╕рдордЭрдиреЗ рдореЗрдВ рдорджрдж рдХрд░рддреА рд╣реИрдВред

рдЕрдм рдПрдХ рдХреЛрдб рд▓рд┐рдЦрдиреЗ рдХрд╛ рд╕рдордп рдЖ рдЧрдпрд╛ рд╣реИ рдЬреЛ рдЗрди рд╕рдордпреЛрдВ рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИред "рдЪреАрдЯ рд╢реАрдЯ" рдореЗрдВ рд░рдЬрд┐рд╕реНрдЯрд░ рдХреЗ рдмрд┐рдЯреНрд╕ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рд▓рд┐рдЦрдирд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, TOTALH, рдФрд░ рд╕рд╛рдЗрди рдХреЗ рдмрд╛рдж рдЖрдЙрдЯрдкреБрдЯ рдХреЛ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рд╕рдВрдЦреНрдпрд╛ рджреЗрдиреЗ рд╡рд╛рд▓реЗ рд╕реВрддреНрд░ рдХреЗ рдмрд░рд╛рдмрд░ рд╣реИред рдХрд┐ рд╕реНрдкрд╖реНрдЯ рд╣реИ? рдлрд┐рд░ рд╣рдо рд▓рд┐рдЦрддреЗ рд╣реИрдВ:

 LTDC->SSCR |= ((DISPLAY_HSYNC - 1) << 16 | (DISPLAY_VSYNC - 1)); LTDC->BPCR |= ((DISPLAY_HSYNC+DISPLAY_HBP-1) << 16 | (DISPLAY_VSYNC+DISPLAY_VBP-1)); LTDC->AWCR |= ((DISPLAY_WIDTH + DISPLAY_HSYNC + DISPLAY_HBP - 1) << 16 | (DISPLAY_HEIGHT + DISPLAY_VSYNC + DISPLAY_VBP - 1)); LTDC->TWCR |= ((DISPLAY_WIDTH + DISPLAY_HSYNC + DISPLAY_HBP + DISPLAY_HFP -1)<< 16 |(DISPLAY_HEIGHT + DISPLAY_VSYNC + DISPLAY_VBP + DISPLAY_VFP - 1)); 

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

 LTDC->BCCR = 0; 

рд╕рдВрджрд░реНрдн рдкреБрд╕реНрддрд┐рдХрд╛ рдореЗрдВ рдПрдХ рдЕрджреНрднреБрдд рдЪрд┐рддреНрд░рдг рд╣реИ рдЬреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рджрд░реНрд╢рд╛рддрд╛ рд╣реИ рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ 3 рдкрд░рддреЗрдВ рд╣реИрдВ: рдкреГрд╖реНрдарднреВрдорд┐, рдкрд░рдд 1 рдФрд░ рдкрд░рдд 2ред рдкреГрд╖реНрдарднреВрдорд┐ рдкрд░рдд "рдХрд╛рд╕реНрдЯреЗрдб" рд╣реИ рдФрд░ рдЗрд╕реЗ рдХреЗрд╡рд▓ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд░рдВрдЧ рд╕реЗ рднрд░рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдЕрд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧреА рднреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рднрд╡рд┐рд╖реНрдп рдЬреАрдпреВрдЖрдИ рдбрд┐рдЬрд╛рдЗрдиред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпрд╣ рдЪрд┐рддреНрд░рдг рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдкрд░рддреЛрдВ рдХреА рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рдХреЛ рджрд░реНрд╢рд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рд╣рдо рдкреГрд╖реНрдарднреВрдорд┐ рдкрд░ рд░рдВрдЧ рддрднреА рджреЗрдЦреЗрдВрдЧреЗ рдЬрдм рд╢реЗрд╖ рдкрд░рддреЗрдВ рдпрд╛ рддреЛ рдЦрд╛рд▓реА рдпрд╛ рдкрд╛рд░рджрд░реНрд╢реА рд╣реЛрдВрдЧреАред

рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ, рдореИрдВ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рдкреГрд╖реНрдареЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рджрд┐рдЦрд╛рдКрдВрдЧрд╛, рдЬрд╣рд╛рдВ рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рджреМрд░рд╛рди рдкреГрд╖реНрдарднреВрдорд┐ рдПрдХ рд░рдВрдЧ рд╕реЗ рднрд░ рдЧрдИ рдереА рдФрд░ рдирд┐рдпрдВрддреНрд░рдХ рдиреЗ рдкреВрд░реЗ рдкреГрд╖реНрда рдХреЛ рдлрд┐рд░ рд╕реЗ рдирд╣реАрдВ рдмрдирд╛рдпрд╛, рд▓реЗрдХрд┐рди рдХреЗрд╡рд▓ рд╡реНрдпрдХреНрддрд┐рдЧрдд рдХреНрд╖реЗрддреНрд░, рдЬреЛ рдХрдИ рдЕрдиреНрдп рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рд▓рдЧрднрдЧ 50-60 рдПрдлрдкреАрдПрд╕ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред



6. LTDC рд╕реЗрдЯрдЕрдк рдХрд╛ рдЕрдВрддрд┐рдо рднрд╛рдЧ


LTDC рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЛ 2 рдЦрдВрдбреЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ: рдкрд╣рд▓реЗ рдкреВрд░реЗ LTDC рдореЙрдбреНрдпреВрд▓ рдХреЗ рд▓рд┐рдП рдЖрдо рд╣реИрдВ рдФрд░ LTDC рд░рдЬрд┐рд╕реНрдЯрд░ рд╕рдореВрд╣ рдореЗрдВ рд╕реНрдерд┐рдд рд╣реИрдВ, рдФрд░ рджреВрд╕рд░рд╛ рджреЛ рдкрд░рддреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдореЗрдВ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ LTDC_Layer1 рдФрд░ LTDC_Layer2 рд╕рдореВрд╣ рдореЗрдВ рд╣реИрдВ ред

рд╣рдордиреЗ рдкрд┐рдЫрд▓реЗ рдкреИрд░рд╛рдЧреНрд░рд╛рдл рдореЗрдВ рд╕рд╛рдорд╛рдиреНрдп рд╕реЗрдЯрд┐рдВрдЧ рдХреА, рдЗрдирдореЗрдВ рдЯрд╛рдЗрдорд┐рдВрдЧ, рдмреИрдХрдЧреНрд░рд╛рдЙрдВрдб рд▓реЗрдпрд░ рд╕реЗрдЯ рдХрд░рдирд╛ рд╢рд╛рдорд┐рд▓ рд╣реИред рдЕрдм рд╣рдо рдкрд░рддреЛрдВ рдХреЛ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдЧреЗ рдмрдврд╝рддреЗ рд╣реИрдВ рдФрд░ рд╣рдорд╛рд░реА рд╕реВрдЪреА рдХреЗ рдЕрдиреБрд╕рд╛рд░ рд╣рдореЗрдВ рдкрд░рдд рдХреЗ рджреГрд╢реНрдп рдХреНрд╖реЗрддреНрд░ рдХреЗ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЖрдХрд╛рд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдЬрд┐рд╕реЗ 4 рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ (x0, y0, X1, y2) рдХреЗ рд░реВрдк рдореЗрдВ рд╡рд░реНрдгрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЬреЛ рд╣рдореЗрдВ рдЖрдпрдд рдХреЗ рдЖрдпрд╛рдо рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рджреГрд╢реНрдп рдкрд░рдд рдХрд╛ рдЖрдХрд╛рд░ рдкреНрд░рджрд░реНрд╢рди рдХреЗ рд░рд┐рдЬрд╝реЙрд▓реНрдпреВрд╢рди рд╕реЗ рдХрдо рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдХреЛрдИ рднреА рдкрд░рдд рдХреЗ рдЖрдХрд╛рд░ рдХреЛ 100 рдкреНрд░рддрд┐ 100 рдкрд┐рдХреНрд╕реЗрд▓ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реЗрд╢рд╛рди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рджреГрд╢реНрдп рдХреНрд╖реЗрддреНрд░ рдХреЗ рдЖрдХрд╛рд░ рдХреЛ рд╕рдорд╛рдпреЛрдЬрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдирд┐рдореНрди рдХреЛрдб рд▓рд┐рдЦреЗрдВ:

 LTDC_Layer2->WHPCR |= (((DISPLAY_WIDTH + DISPLAY_HBP + DISPLAY_HSYNC - 1) << 16) | (DISPLAY_HBP + DISPLAY_HSYNC)); LTDC_Layer2->WVPCR |= (((DISPLAY_HEIGHT + DISPLAY_VSYNC + DISPLAY_VBP - 1) << 16) |(DISPLAY_VSYNC + DISPLAY_VBP)); 

рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рд╕рдм рдХреБрдЫ рд╕рдордп рдХреЗ рд╕рд╛рде рдЬреИрд╕рд╛ рд╣реИред рджреГрд╢реНрдп рдХреНрд╖реЗрддреНрд░ рдХреЗ рд╢реБрд░реБрдЖрддреА рдмрд┐рдВрджреБ (x0, y0) рдореЗрдВ рджреЛ рд╕рдордп рдХрд╛ рдпреЛрдЧ рд╣реЛрддрд╛ рд╣реИ: HSYNC + HBP рдФрд░ VSYNC + VBPред рд╕рдорд╛рдкрди рдмрд┐рдВрджреБ (X1, y1) рдХреЗ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдХреА рдЧрдгрдирд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдкрд┐рдХреНрд╕реЗрд▓ рдореЗрдВ рдЪреМрдбрд╝рд╛рдИ рдФрд░ рдКрдВрдЪрд╛рдИ рдХреЛ рдХреЗрд╡рд▓ рдореВрд▓реНрдп рдбреЗрдЯрд╛ рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИред

рдЕрдм рдЖрдкрдХреЛ рдкреНрд░рд╛рдкреНрдд рдбреЗрдЯрд╛ рдХреЗ рдкреНрд░рд╛рд░реВрдк рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред ARGB8888 рдкреНрд░рд╛рд░реВрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рдЕрдзрд┐рдХрддрдо рдЧреБрдгрд╡рддреНрддрд╛ рдкреНрд░рд╛рдкреНрдд рдХреА рдЬрд╛рддреА рд╣реИ, рд▓реЗрдХрд┐рди рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ рд╣рдореЗрдВ рдХрдмреНрдЬреЗ рд╡рд╛рд▓реА рдореЗрдореЛрд░реА рдХреА рдЕрдзрд┐рдХрддрдо рдорд╛рддреНрд░рд╛ рдорд┐рд▓рддреА рд╣реИред рдПрдХ рдкрд┐рдХреНрд╕реЗрд▓ рдореЗрдВ 32 рдмрд┐рдЯреНрд╕ рдпрд╛ 4 рдмрд╛рдЗрдЯреНрд╕ рд╣реЛрддреА рд╣реИрдВ, рдЬрд┐рд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдкреВрд░реА рд╕реНрдХреНрд░реАрди 4 * 480 * 272 = 522,240 рдмрд╛рдЗрдЯреНрд╕ рд▓реЗрддреА рд╣реИ, рдпрд╛рдиреА рд╣рдорд╛рд░реА рд╕рдмрд╕реЗ рдХрдордЬреЛрд░ рдХрдВрдЯреНрд░реЛрд▓рд░ рдХреА рдЖрдзреА рдлреНрд▓реИрд╢ рдореЗрдореЛрд░реАред рдбрд░реЛ рдордд - рдХреНрдпреВрдПрд╕рдкреАрдЖрдИ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдмрд╛рд╣рд░реА рдПрд╕рдбреАрдЖрд░рдПрдПрдо рдФрд░ рдлреНрд▓реИрд╢-рдореЗрдореЛрд░реА рдХреЛ рдЬреЛрдбрд╝рдирд╛ рд╕реНрдореГрддрд┐ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рд╣рд▓ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЗрд╕ рдкреНрд░рд╛рд░реВрдк рдкрд░ рдХреЛрдИ рдкреНрд░рддрд┐рдмрдВрдз рдирд╣реАрдВ рд╣реИ, рд╣рдо рдЕрдЪреНрдЫреА рдЧреБрдгрд╡рддреНрддрд╛ рдореЗрдВ рдЖрдирдиреНрджрд┐рдд рд╣реЛрддреЗ рд╣реИрдВред рдпрджрд┐ рдЖрдк рд╕реНрдерд╛рди рдмрдЪрд╛рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдпрд╛ рдЖрдкрдХрд╛ рдкреНрд░рджрд░реНрд╢рди 24-рдмрд┐рдЯ рдкреНрд░рд╛рд░реВрдк рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рддреЛ рдЗрд╕рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХ рдЙрдкрдпреБрдХреНрдд рдореЙрдбрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, RGB565ред рдбрд┐рд╕реНрдкреНрд▓реЗ рдФрд░ рдХреИрдорд░рд╛ рджреЛрдиреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдмрд╣реБрдд рд▓реЛрдХрдкреНрд░рд┐рдп рдкреНрд░рд╛рд░реВрдк, рдФрд░ рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп, 1 рдкрд┐рдХреНрд╕реЗрд▓ рдХреЗрд╡рд▓ 5 + 6 + 5 = 16 рдмрд┐рдЯреНрд╕ рдпрд╛ 2 рдмрд╛рдЗрдЯреНрд╕ рд▓реЗрддрд╛ рд╣реИред рддрджрдиреБрд╕рд╛рд░, рдкрд░рдд рджреНрд╡рд╛рд░рд╛ рдХрдмреНрдЬрд╛ рдХреА рдЧрдИ рдореЗрдореЛрд░реА рдХреА рдорд╛рддреНрд░рд╛ 2 рдЧреБрдирд╛ рдХрдо рд╣реЛрдЧреАред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рдирд┐рдпрдВрддреНрд░рдХ рдХреЗ рдкрд╛рд╕ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА ARGB8888 рдкреНрд░рд╛рд░реВрдк рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:

 LTDC_Layer2->PFCR = 0; 

рдпрджрд┐ рдЖрдкрдХреЛ ARGB8888 рд╕реЗ рднрд┐рдиреНрди рдкреНрд░рд╛рд░реВрдк рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рд╕рдВрджрд░реНрдн рдореИрдиреБрдЕрд▓ рдореЗрдВ рдкреЗрдЬ 533 рдФрд░ 534 рдкрд░ рдЬрд╛рдПрдВ рдФрд░ рдиреАрдЪреЗ рджреА рдЧрдИ рд╕реВрдЪреА рд╕реЗ рд╡рд╛рдВрдЫрд┐рдд рдкреНрд░рд╛рд░реВрдк рдЪреБрдиреЗрдВ:



рдЕрдм рдПрдХ рд╕рд░рдгреА рдмрдирд╛рдПрдВ рдФрд░ рдЙрд╕рдХрд╛ рдкрддрд╛ LTDC рдХреЛ рджреЗрдВ, рдпрд╣ рдПрдХ рдлреНрд░реЗрдо рдмрдлрд░ рдореЗрдВ рдмрджрд▓ рдЬрд╛рдПрдЧрд╛ рдФрд░ рд╣рдорд╛рд░реА рдкрд░рдд рдХрд╛ "рдкреНрд░рддрд┐рдмрд┐рдВрдм" рд╣реЛрдЧрд╛ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдкрд╣рд▓реА рдкрдВрдХреНрддрд┐ рдореЗрдВ 1 рдкрд┐рдХреНрд╕реЗрд▓ рдХреЛ рд╕рдлреЗрдж рд░рдВрдЧ рд╕реЗ рднрд░рдирд╛ рд╣реЛрдЧрд╛, рдЗрд╕рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдЗрд╕ рд╕рд░рдгреА рдХреЗ рдкрд╣рд▓реЗ рддрддреНрд╡ рдХреЛ рдХреЗрд╡рд▓ рд░рдВрдЧ рдорд╛рди (0xFFFFFFFF) рд▓рд┐рдЦрдирд╛ рд╣реЛрдЧрд╛ред рджреВрд╕рд░реА рдкрдВрдХреНрддрд┐ рдореЗрдВ рдкрд╣рд▓реА рдкрд┐рдХреНрд╕реЗрд▓ рднрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ? рдлрд┐рд░ рд╣рдо рд╕рдВрдЦреНрдпрд╛ (480 + 1) рдХреЗ рд╕рд╛рде рддрддреНрд╡ рдореЗрдВ рд░рдВрдЧ рдореВрд▓реНрдп рднреА рд▓рд┐рдЦрддреЗ рд╣реИрдВред 480 - рдПрдХ рдкрдВрдХреНрддрд┐ рд╡рд┐рд░рд╛рдо рдмрдирд╛рдУ, рдлрд┐рд░ рдЙрд╕ рдкрдВрдХреНрддрд┐ рдореЗрдВ рд╕рдВрдЦреНрдпрд╛ рдЬреЛрдбрд╝реЛ рдЬрд┐рд╕рдХреА рд╣рдореЗрдВ рдЬрд╝рд░реВрд░рдд рд╣реИред

рдпрд╣ рд╕реЗрдЯрд┐рдВрдЧ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддреА рд╣реИ:

 #define DISPLAY_WIDTH ((uint16_t)480) #define DISPLAY_HEIGHT ((uint16_t)272) const uint32_t imageLayer2[DISPLAY_WIDTH * DISPLAY_HEIGHT]; LTDC_Layer2->CFBAR = (uint32_t)imageLayer2; 

рдПрдХ рдЕрдЪреНрдЫреЗ рддрд░реАрдХреЗ рд╕реЗ, LTDC рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдЖрдкрдХреЛ const modifier рдХреЛ рд╣рдЯрд╛рдиреЗ рдФрд░ RAM рдореЗрдВ рдлреНрд░реЗрдо рдмрдлрд░ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП SDRAM рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреА рднреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдПрдордХреЗ рдХреА рдЕрдкрдиреА рд░реИрдо 4 рдмрд╛рдЗрдЯ рд╡рд╛рд▓реА рдПрдХ рдкрд░рдд рдХреЗ рд▓рд┐рдП рднреА рдкрд░реНрдпрд╛рдкреНрдд рдирд╣реАрдВ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рдкрд░рд┐рдзреАрдп рдХреЗ рд╕рд╣реА рд╡рд┐рдиреНрдпрд╛рд╕ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЪреЛрдЯ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред

рдЕрдЧрд▓рд╛, рдЖрдкрдХреЛ рдЕрд▓реНрдлрд╛ рд▓реЗрдпрд░ рдХреЗ рдорд╛рди рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЕрд░реНрдерд╛рдд, рд╣рдорд╛рд░реА рд▓реЗрдпрд░ 2 рдкрд░рдд рдХреЗ рд▓рд┐рдП рдкрд╛рд░рджрд░реНрд╢рд┐рддрд╛, рдЗрд╕рдХреЗ рд▓рд┐рдП рд╣рдо 0 рд╕реЗ 255 рддрдХ рдХрд╛ рдорд╛рди рд▓рд┐рдЦрддреЗ рд╣реИрдВ, рдЬрд╣рд╛рдБ 0 рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдкрд╛рд░рджрд░реНрд╢реА рдкрд░рдд рд╣реИ, 255 рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрдкрд╛рд░рджрд░реНрд╢реА рд╣реИ, рдЬреЛ 100% рджреГрд╢реНрдпрдорд╛рди рд╣реИред

 LTDC_Layer2->CACR = 255; 

рд╣рдорд╛рд░реА рдпреЛрдЬрдирд╛ рдХреЗ рдЕрдиреБрд╕рд╛рд░, рдЕрдм рд╣рдорд╛рд░реЗ рджреГрд╢реНрдпрдорд╛рди рдкреНрд░рджрд░реНрд╢рди рдХреНрд╖реЗрддреНрд░ рдХрд╛ рдЖрдХрд╛рд░ рдмрд╛рдЗрдЯреНрд╕ рдореЗрдВ рд░рд┐рдХреЙрд░реНрдб рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ, рдЗрд╕рдХреЗ рд▓рд┐рдП рд╣рдо рд░рдЬрд┐рд╕реНрдЯрд░реЛрдВ рдореЗрдВ рд╕рдВрдмрдВрдзрд┐рдд рдорд╛рди рд▓рд┐рдЦрддреЗ рд╣реИрдВ:

 LTDC_Layer2->CFBLR |= (((PIXEL_SIZE * DISPLAY_WIDTH) << 16) | (PIXEL_SIZE * DISPLAY_WIDTH + 3)); LTDC_Layer2->CFBLNR |= DISPLAY_HEIGHT; 

рдЕрдВрддрд┐рдо рджреЛ рдЪрд░рдг рдмрдиреЗ рд╣реБрдП рд╣реИрдВ, рдЕрд░реНрдерд╛рддреН рдкрд░рдд 2 рдХрд╛ рд╕рдорд╛рд╡реЗрд╢ рдФрд░ рд▓рд┐ред рдкрд░рд┐рдзреАрдп рдореЙрдбреНрдпреВрд▓ред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╕рдВрдмрдВрдзрд┐рдд рдмрд┐рдЯреНрд╕ рд▓рд┐рдЦреЗрдВ:

 LTDC_Layer2->CR |= LTDC_LxCR_LEN; LTDC->GCR |= LTDC_GCR_LTDCEN; 

рдпрд╣ рд╣рдорд╛рд░реЗ рдореЙрдбреНрдпреВрд▓ рдХреЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЛ рдкреВрд░рд╛ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЖрдк рд╣рдорд╛рд░реЗ рдбрд┐рд╕реНрдкреНрд▓реЗ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ!

7. LTDC рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдереЛрдбрд╝рд╛


рдбрд┐рд╕реНрдкреНрд▓реЗ рдХреЗ рд╕рд╛рде рд╕рднреА рдХрд╛рдо рдЕрдм рдХреЗрд╡рд▓ рдЗрдореЗрдЬрд▓реЗрдпрд░ 2 рд╕рд░рдгреА рдореЗрдВ рдбреЗрдЯрд╛ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдиреАрдЪреЗ рдЖрддреЗ рд╣реИрдВ, рдЗрд╕рдХрд╛ рдЖрдХрд╛рд░ 272 рддрддреНрд╡реЛрдВ рджреНрд╡рд╛рд░рд╛ 480 рд╣реИ, рдЬреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╣рдорд╛рд░реЗ рд╕рдВрдХрд▓реНрдк рд╕реЗ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИ рдФрд░ рдкреНрд░рджрд░реНрд╢рди рдкрд░ рдПрдХ рд╕рд░рд▓ рд╕рддреНрдп - 1 рд╕рд░рдгреА рддрддреНрд╡ = 1 рдкрд┐рдХреНрд╕реЗрд▓ ред

рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ, рдореИрдВрдиреЗ рдПрдХ рдЪрд┐рддреНрд░ рдХреЛ рдПрдХ рд╕рд░рдгреА рдореЗрдВ рд▓рд┐рдЦрд╛ рдерд╛ рдЬрд┐рд╕реЗ рдореИрдВрдиреЗ рдПрд▓рд╕реАрдбреА рдЫрд╡рд┐ рдХрдирд╡рд░реНрдЯрд░ рдореЗрдВ рдмрджрд▓ рджрд┐рдпрд╛ рдерд╛, рд▓реЗрдХрд┐рди рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЖрдкрдХреЗ рдХрд╛рд░реНрдп рдЗрд╕ рддрдХ рд╕реАрдорд┐рдд рд╣реЛрдВрдЧреЗред рджреЛ рддрд░реАрдХреЗ рд╣реИрдВ: рдПрдХ рддреИрдпрд╛рд░ рдХрд┐рдП рдЧрдП рдЬреАрдпреВрдЖрдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдФрд░ рдЗрд╕реЗ рд╕реНрд╡рдпрдВ рд▓рд┐рдЦрдирд╛ред рдЕрдкреЗрдХреНрд╖рд╛рдХреГрдд рд╕рд░рд▓ рдХрд╛рд░реНрдпреЛрдВ рдЬреИрд╕реЗ рдХрд┐ рдЯреЗрдХреНрд╕реНрдЯ рдЖрдЙрдЯрдкреБрдЯ, рдЧреНрд░рд╛рдлрд┐рдВрдЧ рдФрд░ рдЗрд╕реА рддрд░рд╣, рдореИрдВ рдЖрдкрдХреЛ рдЕрдкрдирд╛ рдЦреБрдж рдХрд╛ GUI рд▓рд┐рдЦрдиреЗ рдХреА рд╕рд▓рд╛рд╣ рджреЗрддрд╛ рд╣реВрдВ, рдЗрд╕рдореЗрдВ рдереЛрдбрд╝рд╛ рд╕рдордп рд▓рдЧреЗрдЧрд╛ рдФрд░ рдЖрдкрдХреЛ рдЗрд╕рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдХреА рдкреВрд░реА рд╕рдордЭ рд╣реЛрдЧреАред рдЬрдм рдХрд╛рд░реНрдп рдмрдбрд╝рд╛ рдФрд░ рдХрдард┐рди рд╣реЛрддрд╛ рд╣реИ, рдФрд░ рдЕрдкрдирд╛ рд╕реНрд╡рдпрдВ рдХрд╛ GUI рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдХрд╛ рд╕рдордп рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ, рддреЛ рдореИрдВ рдЖрдкрдХреЛ рд╕рд▓рд╛рд╣ рджреЗрддрд╛ рд╣реВрдВ рдХрд┐ рдЖрдк рддреИрдпрд╛рд░ рдХрд┐рдП рдЧрдП рд╕рдорд╛рдзрд╛рдиреЛрдВ рдкрд░ рдзреНрдпрд╛рди рджреЗрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, uGFX рдФрд░ рдЗрд╕ рддрд░рд╣ред

рдкрд╛рда, рд░реЗрдЦрд╛рдУрдВ рдФрд░ рдЕрдиреНрдп рддрддреНрд╡реЛрдВ рдХреЗ рдкреНрд░рддреАрдХ рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд░реВрдк рд╕реЗ рдкрд┐рдХреНрд╕реЗрд▓ рдХреЗ рд╕рд░рдгрд┐рдпрд╛рдБ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдЙрдиреНрд╣реЗрдВ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рддрд░реНрдХ рдХреЛ рд╕реНрд╡рдпрдВ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЖрдкрдХреЛ рд╕рдмрд╕реЗ рдмреБрдирд┐рдпрд╛рджреА рдлрд╝рдВрдХреНрд╢рди - "рдкрд┐рдХреНрд╕реЗрд▓ рдЖрдЙрдЯрдкреБрдЯ" рд╕реЗ рд╢реБрд░реВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЗрд╕рдореЗрдВ 3 рддрд░реНрдХ рджрд┐рдП рдЬрд╛рдиреЗ рдЪрд╛рд╣рд┐рдП: X рдХреЗ рд╕рд╛рде рд╕рдордиреНрд╡рдп, Y рдХреЗ рд╕рд╛рде рд╕рдордиреНрд╡рдп рдФрд░, рддрджрдиреБрд╕рд╛рд░, рд╡рд╣ рд░рдВрдЧ рдЬрд┐рд╕рдореЗрдВ рджрд┐рдпрд╛ рдЧрдпрд╛ рдкрд┐рдХреНрд╕реЗрд▓ рдЪрд┐рддреНрд░рд┐рдд рд╣реИред рдпрд╣ рдЗрд╕ рддрд░рд╣ рд▓рдЧ рд╕рдХрддрд╛ рд╣реИ:

 typedef enum ColorDisplay { RED = 0xFFFF0000, GREEN = 0xFF00FF00, BLUE = 0xFF0000FF, BLACK = 0xFF000000, WHITE = 0xFFFFFFFF } Color; void SetPixel (uint16_t setX, uint16_t setY, Color Color) { uint32_t numBuffer = ((setY - 1) * DISPLAY_WIDTH) + setX; imageLayer2[numBuffer] = Color; } 

рдЬрдм рд╣рдо рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдХреЛ рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рд▓реЗрддреЗ рд╣реИрдВ, рддреЛ рд╣рдо рдЙрдиреНрд╣реЗрдВ рдЙрд╕ рд╕рд░рдгреА рдХреА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдкреБрдирд░реНрдЧрдгрдирд╛ рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рджрд┐рдП рдЧрдП рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рд╕реЗ рдореЗрд▓ рдЦрд╛рддреА рд╣реИ рдФрд░ рдлрд┐рд░ рдкреНрд░рд╛рдкреНрдд рддрддреНрд╡ рдХреЛ рдкреНрд░рд╛рдкреНрдд рд░рдВрдЧ рд▓рд┐рдЦреЗрдВред рдЗрд╕ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рдЖрдк рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЬреНрдпрд╛рдорд┐рддрд┐, рдкрд╛рда рдФрд░ рдЕрдиреНрдп рдЬреАрдпреВрдЖрдИ "рдЙрдкрд╣рд╛рд░" рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╡рд┐рдЪрд╛рд░ рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕реЗ рдЬреАрд╡рди рдореЗрдВ рдХреИрд╕реЗ рд▓рд╛рдпрд╛ рдЬрд╛рдП рдпрд╣ рдЖрдкрдХреЗ рд╡рд┐рд╡реЗрдХ рдкрд░ рд╣реИред

рдкрд░рд┐рдгрд╛рдо


рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рд░рдЬрд┐рд╕реНрдЯрд░реЛрдВ (рд╕реАрдПрдордПрд╕рдЖрдИрдПрд╕) рдкрд░ рднреА рдЬрдЯрд┐рд▓ рдмрд╛рд╣реНрдп рдЙрдкрдХрд░рдгреЛрдВ рдХрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдПрдХ рдореБрд╢реНрдХрд┐рд▓ рдХрд╛рдо рдирд╣реАрдВ рд╣реИ, рдЖрдкрдХреЛ рдмрд╕ рдпрд╣ рд╕рдордЭрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЕрдВрджрд░ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдмреЗрд╢рдХ, рдпрд╣ рд╕рдордЭрдиреЗ рдХреЗ рдмрд┐рдирд╛ рдлрд░реНрдорд╡реЗрдпрд░ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдм рдлреИрд╢рдиреЗрдмрд▓ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рд╣реЛ рд░рд╣рд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдПрдХ рдореГрдд рдЕрдВрдд рд╣реИ рдпрджрд┐ рдЖрдк рдПрдХ рдЗрдВрдЬреАрдирд┐рдпрд░ рдмрдирдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛рддреЗ рд╣реИрдВ, рди рдХрд┐ ...

рдпрджрд┐ рдЖрдк HAL рдпрд╛ SPL рдореЗрдВ рд╕рдорд╛рдзрд╛рди рдХреЗ рд╕рд╛рде рдкрд░рд┐рдгрд╛рдореА рдХреЛрдб рдХреА рддреБрд▓рдирд╛ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рджреЗрдЦреЗрдВрдЧреЗ рдХрд┐ рд░рдЬрд┐рд╕реНрдЯрд░реЛрдВ рдореЗрдВ рд▓рд┐рдЦрд╛ рдХреЛрдб рдЕрдзрд┐рдХ рдХреЙрдореНрдкреИрдХреНрдЯ рд╣реИред рдЙрди рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдореЗрдВ рд╕реЗ рдХреБрдЫ рдЬреЛрдбрд╝реЗ рдЬрд╣рд╛рдВ рдЖрдкрдХреЛ рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рд▓рдкреЗрдЯрдХрд░, рд╣рдореЗрдВ рдХрдо рд╕реЗ рдХрдо HAL / SPL рдХреЗ рд░реВрдк рдореЗрдВ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдкрдардиреАрдпрддрд╛ рдорд┐рд▓рддреА рд╣реИ, рдФрд░ рдпрджрд┐ рдЖрдкрдХреЛ рдпрд╛рдж рд╣реИ рдХрд┐ рд╕рдВрджрд░реНрдн рдореИрдиреБрдЕрд▓ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдкрдВрдЬреАрдХреГрдд рд╣реИрдВ, рддреЛ CMSIS рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЕрдзрд┐рдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИред

1) TrueSTUDIO рдореЗрдВ рд╕реНрд░реЛрддреЛрдВ рдХреЗ рд╕рд╛рде рдкрд░рд┐рдпреЛрдЬрдирд╛ рдпрд╣рд╛рдВ рдбрд╛рдЙрдирд▓реЛрдб рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИ

2) рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЬреЛ GitHub рдХреЛ рджреЗрдЦрдиреЗ рдореЗрдВ рдЕрдзрд┐рдХ рд╕рд╣рдЬ рд╣реИрдВ

3) рдпрд╣рд╛рдБ рдПрд▓рд╕реАрдбреА рдЗрдореЗрдЬ рдХрдиреНрд╡рд░реНрдЯрд░ рдХреЛрдб рдореЗрдВ рдЫрд╡рд┐рдпреЛрдВ рдХреЛ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ

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


All Articles