рдлреНрд▓рд┐рдпрд░ рд▓реЗрдкреНрдЯрд╛рди 3 рдерд░реНрдорд▓ рдЗрдореЗрдЬрд┐рдВрдЧ рдореЙрдбреНрдпреВрд▓ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рдирд╛рдЗрдЯ рд╡рд┐рдЬрди рдбрд┐рд╡рд╛рдЗрд╕

рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ, рдореИрдВрдиреЗ рдерд░реНрдорд▓ рдЗрдореЗрдЬрд┐рдВрдЧ рд╕реЗрдЯ-рдЯреЙрдк рдмреЙрдХреНрд╕ рдХреЛ рдлрд╝реНрд▓рд┐рдпрд░ рд╡рди рдЬрдирд░рд▓ 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];//  static unsigned short CRCTable[256];//   CRC16 //     #define RESYNC_TIMEOUT_MS 19 //:   #define NO_SEGMENT -1 //:   #define ERROR_PACKAGE -2 //---------------------------------------------------------------------------------------------------- // //---------------------------------------------------------------------------------------------------- void LEPTONCONTROL_Init(void) { //    CRC unsigned short code; for(long n=0;n<256;n++) { code=((unsigned short)n)<<8; for(unsigned char m=0;m<8;m++) { if(code&(1<<15)) code=(code<<1)^0x1021; else code=code<<1; } CRCTable[n]=code; } } //---------------------------------------------------------------------------------------------------- // crc //---------------------------------------------------------------------------------------------------- void LEPTONCONTROL_CalculateCRC(unsigned short *crc,unsigned char byte) { *crc=CRCTable[(((*crc)>>8)^byte++)&0xFF]^((*crc)<<8); } //---------------------------------------------------------------------------------------------------- //---------------------------------------------------------------------------------------------------- long LEPTONCONTROL_ReadSegment(unsigned short *raw14_ptr,unsigned char data[VOSPI_PACKAGE_SIZE],bool *first_line) { static long current_package=-1; static long segment=-1; long n; *first_line=false; if ((data[0]&0x0F)==0x0F) return(NO_SEGMENT);//  unsigned short crc=data[2]; crc<<=8; crc|=data[3]; // CRC unsigned short crc16=0; LEPTONCONTROL_CalculateCRC(&crc16,data[0]&0x0F); LEPTONCONTROL_CalculateCRC(&crc16,data[1]); LEPTONCONTROL_CalculateCRC(&crc16,0); LEPTONCONTROL_CalculateCRC(&crc16,0); for(n=4;n<VOSPI_PACKAGE_SIZE;n++) LEPTONCONTROL_CalculateCRC(&crc16,data[n]); if (crc16!=crc) return(ERROR_PACKAGE);// CRC //   unsigned short package=data[0]&0x0F; package<<=8; package|=data[1]; if (package==0) { *first_line=true; current_package=0; } if (package==20) { unsigned char ttt=(data[0]&0x70)>>4;//     20  segment=ttt; } if (current_package<0) return(NO_SEGMENT); if (current_package!=package) { current_package=-1; return(ERROR_PACKAGE); } unsigned short *raw_ptr=raw14_ptr+current_package*VOSPI_PACKAGE_LINE_SIZE/2; for(n=0;n<VOSPI_PACKAGE_LINE_SIZE/2;n++,raw_ptr++) { //    big-endian: ,  unsigned short value=data[n*sizeof(short)+4]; value<<=8; value|=data[n*sizeof(short)+5]; *raw_ptr=value; } current_package++; if (current_package!=VOSPI_FRAME_HEIGHT) return(NO_SEGMENT); current_package=-1; return(segment); } //---------------------------------------------------------------------------------------------------- //    VoSPI    //---------------------------------------------------------------------------------------------------- bool LEPTONCONTROL_PushVoSPI(unsigned char data[VOSPI_PACKAGE_SIZE],bool *first_line) { *first_line=false; static long waitable_segment=1; long segment=LEPTONCONTROL_ReadSegment(RAW14Image+(waitable_segment-1)*VOSPI_FRAME_WIDTH*VOSPI_SEGMENT_LINE_AMOUNT,data,first_line); if (segment==ERROR_PACKAGE) HAL_Delay(RESYNC_TIMEOUT_MS); if (segment==ERROR_PACKAGE || segment==0) waitable_segment=1; if (segment==ERROR_PACKAGE || segment==NO_SEGMENT || segment==0) return(false); if (segment!=waitable_segment) { waitable_segment=1; if (segment!=1) return(false); } waitable_segment++; if (waitable_segment!=5) return(false); waitable_segment=1; return(true); } //---------------------------------------------------------------------------------------------------- //      //---------------------------------------------------------------------------------------------------- unsigned short *LEPTONCONTROL_GetRAW14Ptr(void) { return(RAW14Image); } 


рдЗрд╕ рдореЙрдбреНрдпреВрд▓ рдХреЗ рд╕рд╛рде рд╕рднреА рдХрд╛рд░реНрдп рдПрд╕рдкреАрдЖрдИ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рд╛рдкреНрдд рдбреЗрдЯрд╛ рдХреЛ рд╕рд░рд▓ рд░реВрдк рд╕реЗ рдкреНрд░рд╕реНрддреБрдд рдХрд░рддреЗ рд╣реИрдВред

рдореЙрдбреНрдпреВрд▓ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░реЗрдВ
 while(1) { //   while(1) { HAL_SPI_Receive(&hspi1,buffer,VOSPI_PACKAGE_SIZE,0x1000); bool first_line=false; unsigned char *buffer_ptr=buffer; LEPTONCONTROL_PushVoSPI(buffer_ptr,&first_line); if (first_line==true) break; } //    lepton3 unsigned char *buffer_ptr=buffer; HAL_SPI_Receive(&hspi1,buffer_ptr,VOSPI_PACKAGE_SIZE*SPI_READ_VOSPI_AMOUNT,0x1000); buffer_ptr=buffer; for(long n=0;n<SPI_READ_VOSPI_AMOUNT;n++,buffer_ptr+=VOSPI_PACKAGE_SIZE) { bool first_line=false; bool res=LEPTONCONTROL_PushVoSPI(buffer_ptr,&first_line); if (res==true) CreateImage();//     } } 


рдлреНрд░реЗрдо рдХреЛ рдЕрд╕реЗрдВрдмрд▓ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рд╕реЗрдВрд╕рд░ рд░реАрдбрд┐рдВрдЧ рдХреЛ рд╕рд╛рдорд╛рдиреНрдпреАрдХреГрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд╕реАрдорд╛ рддрдХ рдШрдЯрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ [0..255] рдФрд░ рдЗрд╕реЗ рдЧреНрд░реЗрд╕реНрдХреЗрд▓ рдХреЗ рд░реВрдк рдореЗрдВ рдбрд┐рд╕реНрдкреНрд▓реЗ рдкрд░ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдХреБрдЫ рднреА рдЫрд╡рд┐ рдХреЛ рд░рдВрдЧрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рд╕реА рднреА рдкреИрд▓реЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рд░реЛрдХрддрд╛ рд╣реИред

рдбрд┐рд╕реНрдкреНрд▓реЗ рдкрд░ рдЫрд╡рд┐ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВ 8-рдмрд┐рдЯ рдбреЗрдЯрд╛ рдмрд╕ рдореЛрдб рдореЗрдВ рдЗрд╕ рдирд┐рдпрдВрддреНрд░рдХ рдореЗрдВ рдирд┐рд░реНрдорд┐рдд FSMC рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВред

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

рдХрд╛рдо рдХрд╛ рд╡реАрдбрд┐рдпреЛ (рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдореИрдВрдиреЗ рдЙрдЪрд┐рдд рдЧреБрдгрд╡рддреНрддрд╛ рдХреЗ рд╕рд╛рде рдПрдХ рдкреБрд░рд╛рдиреЗ рдХреИрдорд░реЗ рдкрд░ рд╢реВрдЯ рдХрд┐рдпрд╛ - рдореЗрд░реЗ рдкрд╛рд╕ рдЕрдм рдореЗрд░реЗ рдкрд╛рд╕ рд╡реАрдбрд┐рдпреЛ рдХреИрдорд░рд╛ рдирд╣реАрдВ рд╣реИ)ред


PS рд╡реИрд╕реЗ, рдЖрдк рд╕реАрдзреЗ USB рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ Flir One Gen 2 рдерд░реНрдорд▓ рдЗрдореЗрдЬрд░ рдХреЛ STM32F407Discovery рдбрд┐рдмрдЧ рдмреЛрд░реНрдб рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдХрдиреЗрдХреНрд╢рди рдЕрд╕реНрдерд┐рд░ рд╣реИ - рдерд░реНрдорд▓ рдЗрдореЗрдЬрд░ рдЕрдХреНрд╕рд░ рдЦреЛ рдЬрд╛рддрд╛ рд╣реИред


рдЗрд╕ рддрд░рд╣ рдХреЗ рдХрдиреЗрдХреНрд╢рди рдХреЗ рд▓рд┐рдП рдХрд╛рд░реНрдпрдХреНрд░рдо рдпрд╣рд╛рдВ рд╣реИ ред рд╢рд╛рдпрдж рдХреЛрдИ рд╕рдордЭ рдЬрд╛рдПрдЧрд╛ рдХрд┐ рдпрд╣ рдХреНрдпрд╛ рд╣реИ рдФрд░ рдХрдиреЗрдХреНрд╢рди рдХреЛ рдХреИрд╕реЗ рд╕реНрдерд┐рд░ рдХрд┐рдпрд╛ рдЬрд╛рдПред

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпрд╣ рд▓реЗрдкреНрдЯрд╛рди 3 рдореЙрдбреНрдпреВрд▓ рдЖрд╕рд╛рдиреА рд╕реЗ рдФрд░ рдмрд╕ рд░рд╛рд╕реНрдкрдмреЗрд░реА рдкрд╛рдИ рд╕реЗ рдЬреЛрдбрд╝рддрд╛ рд╣реИред


рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдореБрдЭреЗ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рд╕реЗ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдирд╛ рдкрдбрд╝рд╛, рдЬрд┐рд╕рд╕реЗ рдореЗрд░рд╛ рд╕рдВрд╕реНрдХрд░рдг рд▓реЗрдкреНрдЯрд╛рди 3 рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рдерд╛ред

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


All Articles