рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ, рдореИрдВрдиреЗ рдерд░реНрдорд▓ рдЗрдореЗрдЬрд┐рдВрдЧ рд╕реЗрдЯ-рдЯреЙрдк рдмреЙрдХреНрд╕ рдХреЛ рдлрд╝реНрд▓рд┐рдпрд░ рд╡рди рдЬрдирд░рд▓ 2 рд╕реНрдорд╛рд░реНрдЯрдлреЛрди рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рд▓реЗрдЦ рд▓рд┐рдЦрд╛ рдерд╛ред рдЗрд╕ рд╕реЗрдЯ-рдЯреЙрдк рдмреЙрдХреНрд╕ рд╕реЗ рд▓реЗрдкреНрдЯрд╛рди рдореЙрдбреНрдпреВрд▓ рдХреЛ рд╣рдЯрд╛рдиреЗ рдФрд░ 160x120 рдкрд┐рдХреНрд╕рд▓ рдХреЗ рд╕рдВрдХрд▓реНрдк рдХреЗ рд╕рд╛рде рдирд╛рдЗрдЯ-рд╡рд┐рдЬрд╝рди рдбрд┐рд╡рд╛рдЗрд╕ рдХреЛ рдЕрд╕реЗрдВрдмрд▓ рдХрд░рдХреЗ рд╕реАрдзреЗ рдорд╛рдЗрдХреНрд░реЛрдХрдВрдЯреНрд░реЛрд▓рд░ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХрд╛ рд╕рдордп рд╣реИред
рдЕрдкрдиреА рдЦреБрдж рдХреА рдирд╛рдЗрдЯ рд╡рд┐рдЬрди рдерд░реНрдорд▓ рдЗрдореЗрдЬрд┐рдВрдЧ рдбрд┐рд╡рд╛рдЗрд╕ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА:
1) рдПрдХ рдорд╛рдЗрдХреНрд░реЛрдХрдВрдЯреНрд░реЛрд▓рд░ рдХреЗ рд╕рд╛рде рдмреЛрд░реНрдбред рдореИрдВрдиреЗ STM32F407VGT6 рдорд╛рдЗрдХреНрд░реЛрдХрдВрдЯреНрд░реЛрд▓рд░ рдХреЗ рд╕рд╛рде рдПрдХ рдЪреАрдиреА рджреЛрд╕реНрдд рд╕реЗ рдПрдХ рдмреЛрд░реНрдб рд▓рд┐рдпрд╛ред рдРрд╕рд╛ рдПрдХ рдЕрдЪреНрдЫрд╛ рдирд┐рдпрдВрддреНрд░рдХ: 168 рдореЗрдЧрд╛рд╣рд░реНрдЯреНрдЬ рдЖрд╡реГрддреНрддрд┐ рдФрд░ 192 рдХреЗрдмреА рд░реИрдоред

2) рдкреНрд░рджрд░реНрд╢рдиред рдореИрдВрдиреЗ 320x240 рдХреЗ рд░рд┐рдЬрд╝реЙрд▓реНрдпреВрд╢рди рдХреЗ рд╕рд╛рде рдбрд┐рд╕реНрдкреНрд▓реЗ рд▓рд┐рдпрд╛ред рдРрд╕реЗ рдбрд┐рд╕реНрдкреНрд▓реЗ рд╡рд┐рднрд┐рдиреНрди рдирд┐рдпрдВрддреНрд░рдХреЛрдВ рдХреЗ рд╕рд╛рде рдЖрддреЗ рд╣реИрдВред рдореИрдВ рдЗрд╕реЗ hx8347d рдирд┐рдпрдВрддреНрд░рдХ рдХреЗ рд╕рд╛рде рдорд┐рд▓рд╛ред

3) рдПрд╕рдкреАрдЖрдИ рдФрд░ I2C рдкрд░ рд▓реЗрдкреНрдЯрд╛рди 3 рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдмреЛрд░реНрдбред

4) рд▓реЗрдкреНрдЯрд╛рди рд╣реА 3. рд╕рдмрд╕реЗ рдХрдард┐рди рдФрд░ рдорд╣рдВрдЧрд╛ рддрддреНрд╡ред рдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ eBay рдкрд░ рдПрдХ рджреЛрд╖рдкреВрд░реНрдг рдлрд╝реНрд▓рд┐рдпрд░ рд╡рди рдЬрдирд░рд▓ 2 рдерд░реНрдорд▓ рдЗрдореЗрдЬрд░ рдЦрд░реАрджрд╛ рдФрд░ рдЗрд╕рдореЗрдВ рд╕реЗ рдПрдХ рд▓рд┐рдкреНрдЯрди рд▓рд┐рдпрд╛ред рдпрд╣ рдЗрд╕ рддрд░рд╣ рдмрдврд╝рд╛рдИ рдореЗрдВ рджрд┐рдЦрддрд╛ рд╣реИ:

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

рдЖрдкрдХреЛ рд╢рдХреНрддрд┐ рдХреЛ рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХреА рднреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рд▓реЗрдкреНрдЯрд╛рди рдмреЛрд░реНрдб рдХреЛ рдмрд┐рдЬрд▓реА рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдореИрдВ рдПрд╕рдЯреАрдПрдо 32 рдмреЛрд░реНрдб 3.3 рд╡реА рдХреЗ рд▓рд┐рдП 5 рд╡реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВред рдмреИрдЯрд░реА рд╕реЗ 5 рд╡реА рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВ TEL3-0511 рдХрдиреНрд╡рд░реНрдЯрд░ (4.5 рд╕реЗ 9 рд╡реА рддрдХ рдЗрдирдкреБрдЯ рд╡реЛрд▓реНрдЯреЗрдЬ) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ, рдФрд░ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЗрди 5 рд╡реА рдХреЛ рдПрдХ рдирд┐рдпрдорд┐рдд рдПрд▓рдкреА 550 рд╕реАрдЬреЗрдб-3.3 (рд╡реИрд╕реЗ) рд╕реЗ рдХрдо рдХрд░рддрд╛ рд╣реВрдВ , 70 рдбрд┐рдЧреНрд░реА рддрдХ рдЧрд░реНрдо рд╣реЛрддрд╛ рд╣реИред рдпрд╣рд╛рдВ, рдЖрдкрдХреЛ рдбреАрд╕реА / рдбреАрд╕реА рдХрдирд╡рд░реНрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВрдиреЗ рдЗрд╕реЗ рдЕрднреА рддрдХ рдирд╣реАрдВ рдЦрд░реАрджрд╛ рд╣реИ)ред рд▓реЗрдкреНрдЯрд╛рди 3 рдЦрд╛рддреА рд╣реИ, рд╡реИрд╕реЗ, рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗред 6 рд╡реА рд╕реЗ рд╕рдВрдЪрд╛рд▓рд┐рдд рд╣реЛрдиреЗ рдкрд░, рдкреВрд░реЗ рдбрд┐рд╡рд╛рдЗрд╕ рдХреА рд╡рд░реНрддрдорд╛рди рдЦрдкрдд рд▓рдЧрднрдЧ 250 рдПрдордП рд╣реИред рдЬрдм рд▓реЗрдкреНрдЯрд╛рди рдЕрдВрд╢рд╛рдВрдХрди рдХреЗ рд▓рд┐рдП рд╢рдЯрд░ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реИ, рддреЛ рд╡рд░реНрддрдорд╛рди 500 рдПрдордП рддрдХ рдмрдврд╝ рдЬрд╛рддрд╛ рд╣реИред
рд╕рдм рдХреБрдЫ рдПрдХ рд╕рд╛рде рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:


рдПрдХ рд▓реЗрдкреНрдЯрд╛рди рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдПрдХ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдореИрдВрдиреЗ CubeMX рдФрд░ Keil 5 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╕рднреА рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рдХреЛ рдЕрд╕рдВрднрд╡рддрд╛ рдХреЗ рд▓рд┐рдП рд╕рд░рд▓ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред
рдПрдХ рд▓реЗрдкреНрдЯрд╛рди рдХреЗ рд╕рд╛рде рд╕рдВрдЪрд╛рд░ SPI рдкрд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдореИрдВрдиреЗ I2C рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рдХреЗ рд▓рд┐рдП рдХреЛрдИ рд╡рд┐рд╢реЗрд╖ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рдереАред I2C рдХреЗ рдЕрдиреБрд╕рд╛рд░, рдЖрдк рд▓реЗрдкреНрдЯрд╛рди рдХреА рд╕реНрдерд┐рддрд┐, рдЗрд╕рдХреЗ рдСрдкрд░реЗрдЯрд┐рдВрдЧ рдореЛрдб, рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдЕрдВрд╢рд╛рдВрдХрди рдХреЛ рд╕рдХреНрд╖рдо / рдЕрдХреНрд╖рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдЗрд╕реА рддрд░рд╣ рд╕реЗ рдЗрд╕реЗ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рдПрдХ рдирд╛рдЗрдЯ рд╡рд┐рдЬрди рдбрд┐рд╡рд╛рдЗрд╕ рдХреЗ рд▓рд┐рдП, рдпрд╣ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реИред
рдбреЗрдЯрд╛ рдХреЛ рдбрд┐рдХреНрд░рд┐рдкреНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рдПрдХ рдореЙрдбреНрдпреВрд▓ рд▓рд┐рдЦрд╛:
рдореЙрдбреНрдпреВрд▓leptoncontrol.h#ifndef LEPTON_CONTROL_H #define LEPTON_CONTROL_H #include <stdbool.h> #include <stdio.h> // ( ) #define LEPTON_ORIGINAL_IMAGE_WIDTH 160 #define LEPTON_ORIGINAL_IMAGE_HEIGHT 120 // VoSPI #define VOSPI_FRAME_HEIGHT 60 // VoSPI #define VOSPI_FRAME_WIDTH 80 // VoSPI (164 RAW14 244 RGB) #define VOSPI_PACKAGE_SIZE 164 // VoSPI #define VOSPI_PACKAGE_LINE_SIZE 160 // VOSPI #define VOSPI_SEGMENT_LINE_AMOUNT 60 void LEPTONCONTROL_Init(void);// void LEPTONCONTROL_CalculateCRC(unsigned short *crc,unsigned char byte);// crc bool LEPTONCONTROL_PushVoSPI(unsigned char data[VOSPI_PACKAGE_SIZE],bool *first_line);// VoSPI unsigned short *LEPTONCONTROL_GetRAW14Ptr(void);// #endif
leptoncontrol.c #include "leptoncontrol.h" #include "stm32f4xx_hal.h" static unsigned short RAW14Image[LEPTON_ORIGINAL_IMAGE_HEIGHT*LEPTON_ORIGINAL_IMAGE_WIDTH];
рдЗрд╕ рдореЙрдбреНрдпреВрд▓ рдХреЗ рд╕рд╛рде рд╕рднреА рдХрд╛рд░реНрдп рдПрд╕рдкреАрдЖрдИ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рд╛рдкреНрдд рдбреЗрдЯрд╛ рдХреЛ рд╕рд░рд▓ рд░реВрдк рд╕реЗ рдкреНрд░рд╕реНрддреБрдд рдХрд░рддреЗ рд╣реИрдВред
рдореЙрдбреНрдпреВрд▓ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░реЗрдВ рдлреНрд░реЗрдо рдХреЛ рдЕрд╕реЗрдВрдмрд▓ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рд╕реЗрдВрд╕рд░ рд░реАрдбрд┐рдВрдЧ рдХреЛ рд╕рд╛рдорд╛рдиреНрдпреАрдХреГрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд╕реАрдорд╛ рддрдХ рдШрдЯрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ [0..255] рдФрд░ рдЗрд╕реЗ рдЧреНрд░реЗрд╕реНрдХреЗрд▓ рдХреЗ рд░реВрдк рдореЗрдВ рдбрд┐рд╕реНрдкреНрд▓реЗ рдкрд░ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдХреБрдЫ рднреА рдЫрд╡рд┐ рдХреЛ рд░рдВрдЧрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рд╕реА рднреА рдкреИрд▓реЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рд░реЛрдХрддрд╛ рд╣реИред
рдбрд┐рд╕реНрдкреНрд▓реЗ рдкрд░ рдЫрд╡рд┐ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВ 8-рдмрд┐рдЯ рдбреЗрдЯрд╛ рдмрд╕ рдореЛрдб рдореЗрдВ рдЗрд╕ рдирд┐рдпрдВрддреНрд░рдХ рдореЗрдВ рдирд┐рд░реНрдорд┐рдд FSMC рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВред
рдкреВрд░рд╛ рдХрд╛рд░реНрдпрдХреНрд░рдо
рдпрд╣рд╛рдВ рдбрд╛рдЙрдирд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛
рд╣реИ ред
рдХрд╛рдо рдХрд╛ рд╡реАрдбрд┐рдпреЛ (рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдореИрдВрдиреЗ рдЙрдЪрд┐рдд рдЧреБрдгрд╡рддреНрддрд╛ рдХреЗ рд╕рд╛рде рдПрдХ рдкреБрд░рд╛рдиреЗ рдХреИрдорд░реЗ рдкрд░ рд╢реВрдЯ рдХрд┐рдпрд╛ - рдореЗрд░реЗ рдкрд╛рд╕ рдЕрдм рдореЗрд░реЗ рдкрд╛рд╕ рд╡реАрдбрд┐рдпреЛ рдХреИрдорд░рд╛ рдирд╣реАрдВ рд╣реИ)ред
PS рд╡реИрд╕реЗ, рдЖрдк рд╕реАрдзреЗ USB рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ Flir One Gen 2 рдерд░реНрдорд▓ рдЗрдореЗрдЬрд░ рдХреЛ STM32F407Discovery рдбрд┐рдмрдЧ рдмреЛрд░реНрдб рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдХрдиреЗрдХреНрд╢рди рдЕрд╕реНрдерд┐рд░ рд╣реИ - рдерд░реНрдорд▓ рдЗрдореЗрдЬрд░ рдЕрдХреНрд╕рд░ рдЦреЛ рдЬрд╛рддрд╛ рд╣реИред
рдЗрд╕ рддрд░рд╣ рдХреЗ рдХрдиреЗрдХреНрд╢рди рдХреЗ рд▓рд┐рдП рдХрд╛рд░реНрдпрдХреНрд░рдо
рдпрд╣рд╛рдВ рд╣реИ ред рд╢рд╛рдпрдж рдХреЛрдИ рд╕рдордЭ рдЬрд╛рдПрдЧрд╛ рдХрд┐ рдпрд╣ рдХреНрдпрд╛ рд╣реИ рдФрд░ рдХрдиреЗрдХреНрд╢рди рдХреЛ рдХреИрд╕реЗ рд╕реНрдерд┐рд░ рдХрд┐рдпрд╛ рдЬрд╛рдПред
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпрд╣ рд▓реЗрдкреНрдЯрд╛рди 3 рдореЙрдбреНрдпреВрд▓ рдЖрд╕рд╛рдиреА рд╕реЗ рдФрд░ рдмрд╕ рд░рд╛рд╕реНрдкрдмреЗрд░реА рдкрд╛рдИ рд╕реЗ рдЬреЛрдбрд╝рддрд╛ рд╣реИред
рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдореБрдЭреЗ
рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рд╕реЗ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдирд╛ рдкрдбрд╝рд╛, рдЬрд┐рд╕рд╕реЗ рдореЗрд░рд╛
рд╕рдВрд╕реНрдХрд░рдг рд▓реЗрдкреНрдЯрд╛рди 3 рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рдерд╛ред