рдЗрд╕рдиреЗ рдШрд╛рд╕ рдХрд╛рдЯрдиреЗ рдХреА рдУрд░ рдПрдХ рдирдЬрд╝рд░ рдбрд╛рд▓реАред рдкрд╣рд▓реА рдирдЬрд╝рд░ рдореЗрдВ рдпрд╣ рдмрд╣реБрдд рджрд┐рд▓рдЪрд╕реНрдк рд▓рдЧ рд░рд╣рд╛ рдерд╛ - рд╕реА ++ рдореЗрдВ рдПрдХ рд▓реМрд╣-рд╕реНрд╡рддрдВрддреНрд░ рдврд╛рдВрдЪрд╛, рдорд╛рдЗрдХреНрд░реЛрдХрдВрдЯреНрд░реЛрд▓рд░ рдФрд░ рдбреЗрдореЛ рдмреЛрд░реНрдб рдХреЗ рдПрдХ рд╕рдореВрд╣ рдХреЗ рд╕рдорд░реНрдерди рдХреЗ рд╕рд╛рде, рд╕рдВрд╕реНрдХрд░рдг рдирд┐рдпрдВрддреНрд░рдг рдкреНрд░рдгрд╛рд▓реА рдореЗрдВ рдПрдХреАрдХрд░рдг рдХреЗ рд╕рд╛рде рдПрдХ рдСрдирд▓рд╛рдЗрди рд╕рдВрдХрд▓рдХред рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХрд╛ рдПрдХ рдЧреБрдЪреНрдЫрд╛ рдЬреЛ рдЖрдЧреЗ рдврд╛рдВрдЪреЗ рдХреА рд▓рд╛рд▓рд┐рддреНрдп рдХреЛ рдордирд╛рддрд╛ рд╣реИред рдорд╛рдЗрдХреНрд░реЛрдХрдВрдЯреНрд░реЛрд▓рд░ рдХреЗ рд▓рдЧрднрдЧ рд╕рднреА рдЗрдВрдЯрд░рдлреЗрд╕ рдкрд╣рд▓реЗ рд╕реЗ рд▓рд╛рдЧреВ рдХрд┐рдП рдЧрдП рд╕рдВрдмрдВрдзрд┐рдд рд╡рд░реНрдЧреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕реАрдзреЗ рдмреЙрдХреНрд╕ рд╕реЗ рдмрд╛рд╣рд░ рдкрд╣реБрдВрдЪ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕реЗ рд╕реАрдзреЗ рдорд╛рдЗрдХреНрд░реЛрдХрдВрдЯреНрд░реЛрд▓рд░ рд╕реЗ рдбреЗрдЯрд╢реАрдЯ рдХреЛ рджреЗрдЦреЗ рдмрд┐рдирд╛ рдмреЙрдХреНрд╕ рдФрд░ C ++ рдореЗрдВ рдкреНрд░реЛрдЧреНрд░рд╛рдо рд╕реЗ рд▓реЗрдВ - рдХреНрдпрд╛ рдпрд╣ рдПрдХ рд╕рдкрдирд╛ рдирд╣реАрдВ рд╣реИ?рдкрд░реАрдХреНрд╖рдг рдордВрдЪ рдЗрд╕ рдордВрдЪ рджреНрд╡рд╛рд░рд╛ рд╕рдорд░реНрдерд┐рдд рд▓рдВрдмреЗ рд╕рдордп рд╕реЗ рд╕реНрдерд╛рдпреА рдПрд╕рдЯреАрдПрдо рдиреНрдпреВрдХреНрд▓рд┐рдпреЛ F030 рд╣реИред рдкрд╣рд▓рд╛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреИрд╕реЗ рдкрдВрдЬреАрдХреГрдд рдХрд░реЗрдВ рдФрд░ рдХреИрд╕реЗ рд╢реБрд░реВ рдХрд░реЗрдВ, рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╣реБрдд рд╕рд╛рд░реЗ рдЕрдЪреНрдЫреЗ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рд╣реИрдВ, рд╣рдордиреЗ рдЙрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдирд╣реАрдВ рдХреАред рдЪрд▓реЛ рд╕реАрдзреЗ рджрд┐рд▓рдЪрд╕реНрдк рдкрд░ рдЪрд▓рддреЗ рд╣реИрдВредрдЗрд╕ рдмреЛрд░реНрдб рдореЗрдВ рдмрд╣реБрдд рд╕рд╛рд░реЗ рдкрд░рд┐рдзреАрдп "рдмреЛрд░реНрдб рдкрд░" рдирд╣реАрдВ рд╣реИрдВред рдПрд▓рдИрдбреА рдФрд░ рдмрдЯрди - рдпрд╣ рд╕рдм рдзрди рд╣реИред рдЦреИрд░, рдкрд╣рд▓рд╛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ - рдорд╛рдЗрдХреНрд░реЛрдХрдВрдЯреНрд░реЛрд▓рд░реНрд╕ рдХреА рджреБрдирд┐рдпрд╛ рд╕реЗ рдХреНрд▓рд╛рд╕рд┐рдХ "рд╣реИрд▓реЛ рд╡рд░реНрд▓реНрдб" - рдПрдХ рдПрд▓рдИрдбреА рдХреЗ рд╕рд╛рде рдкрд▓рдХред рдпрд╣рд╛рдБ рдХреЛрдб рд╣реИ:#include "mbed.h"
DigitalOut myled(LED1);
int main() {
while(1)
{
wait_ms(500);
myled = myled ^ 1;
}
}
рдЕрдЪреНрдЫрд╛ рд▓рдЧрд╛, рдирд╣реАрдВ? рдЖрдкрдХреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдирд┐рдпрдВрддреНрд░рдХ рдбреЗрдЯрд╛рд╢реАрдЯ рдкрд░ рдзреНрдпрд╛рди рджреЗрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ!рд╡реИрд╕реЗ, рдХреНрд▓рд╛рд╕рд┐рдХ "рд╣реИрд▓реЛ рд╡рд░реНрд▓реНрдб" рдмреЙрдХреНрд╕ рдХреЗ рдареАрдХ рдмрд╛рд╣рд░ рднреА рдЙрдкрд▓рдмреНрдз рд╣реИ:#include "mbed.h"
Serial pc(USBTX, USBRX);
int main() {
pc.printf("Hello world\n\r");
while(1)
{
}
}
рдХреНрдпрд╛ рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдорд╣рд╛рди рдирд╣реАрдВ рд╣реИ? "рдмреЙрдХреНрд╕ рд╕реЗ рдмрд╛рд╣рд░" рдХреНрдпрд╛ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рдХрдВрд╕реЛрд▓ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдПрдХ рдорд╛рдирдХ рд╕рд┐рд╕реНрдЯрдо рдкреНрд░рд┐рдВрдЯ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ? рдкреЛрд░реНрдЯ, рд╡реИрд╕реЗ, рдпрд╣ рднреА рддреБрд░рдВрдд рджрд┐рдЦрд╛рдИ рджреЗрддрд╛ рд╣реИ рдЬрдм рдмреЛрд░реНрдб рдХрдВрдкреНрдпреВрдЯрд░ рд╕реЗ рдЬреБрдбрд╝рд╛ рд╣реЛрддрд╛ рд╣реИ, рдПрдХ рдЖрднрд╛рд╕реА рдбрд┐рд╕реНрдХ рдХреЗ рд╕рд╛рде, рдЬрд┐рд╕ рдкрд░ рдЖрдкрдХреЛ рдмрд╕ рдЗрдХрдЯреНрдареЗ рдмрд╛рдЗрдирд░реА рдХреА рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ - рдФрд░ рдмреЛрд░реНрдб рдЦреБрдж рдХреЛ рд░рд┐рдмреВрдЯ рдХрд░реЗрдЧрд╛редрд▓реЗрдХрд┐рди рд╡рд╛рдкрд╕ рдкрд▓рдХ рдЭрдкрдХрддреЗ рдПрд▓рдИрдбреАред рд╕рдВрдХрд▓рди, рдмреЛрд░реНрдб рдкрд░ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдирд╛ - рдирд┐рдорд┐рд╖! рд▓реЗрдХрд┐рди рдХрд┐рд╕реА рднреА рддрд░рд╣ рдЬрд▓реНрджреА, рдЬрд╛рд╣рд┐рд░ рд╣реИ рдПрдХ рдмрд╛рд░ рдкреНрд░рддрд┐ рд╕реЗрдХрдВрдб рд╕реЗ рдЕрдзрд┐рдХ, рд▓реЗрдХрд┐рди рдХрдо рд╕реЗ рдХрдо 5 рдмрд╛рд░ ... рдЙрдлрд╝ ...рдореИрдВ рд╢реАрд░реНрд╖рдХ рдореЗрдВ рдЙрд▓реНрд▓рд┐рдЦрд┐рдд "рдЫрд┐рджреНрд░рдкреВрд░реНрдг рдЕрдореВрд░реНрдд" рд╕реЗ рдереЛрдбрд╝рд╛ рд╡рд┐рдЪрд▓рд┐рдд рд╣реВрдВред рдореИрдВрдиреЗ рдЬреЛрдПрд▓ рд╕реНрдкреЛрд▓реНрд╕реНрдХреА рдХреЗ рд╕рд╛рде рдЗрд╕ рд╢рдмреНрдж рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкрдврд╝рд╛ред рдпрд╣рд╛рдБ рдЙрд╕рдХреА рдмреЛрд▓реА рд╣реИ: "рдпрджрд┐ рдореИрдВ C ++ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХреЛ рд╕рд┐рдЦрд╛рддрд╛ рд╣реВрдВ, рддреЛ рдпрд╣ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛, рдЕрдЧрд░ рдореБрдЭреЗ рдЙрдиреНрд╣реЗрдВ char * рдФрд░ рд╕реВрдЪрдХ рдЕрдВрдХрдЧрдгрд┐рдд рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрддрд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВ рдорд╛рдирдХ рдЯреЗрдореНрдкрд▓реЗрдЯ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╕реЗ рд╕реАрдзреЗ рд▓рд╛рдЗрдиреЛрдВ рдкрд░ рдЬрд╛ рд╕рдХрддрд╛ рд╣реВрдВред рд▓реЗрдХрд┐рди рдПрдХ рджрд┐рди рд╡реЗ "рдлреВ" + "рдмрд╛рд░" рд▓рд┐рдЦреЗрдВрдЧреЗ, рдФрд░ рдЕрдЬреАрдм рд╕рдорд╕реНрдпрд╛рдПрдВ рдкреИрджрд╛ рд╣реЛрдВрдЧреА, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдЕрднреА рднреА рдЙрдиреНрд╣реЗрдВ рд╕рдордЭрд╛рдирд╛ рд╣реЛрдЧрд╛ рдХрд┐ рдЪрд╛рд░ * рдХреНрдпрд╛ рд╣реИред рдпрд╛ рд╡реЗ LPTSTR рдкреНрд░рдХрд╛рд░ рдХреЗ рдПрдХ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд╕рд╛рде рдПрдХ рд╡рд┐рдВрдбреЛрдЬ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВрдЧреЗ рдФрд░ рдЬрдм рддрдХ рд╡реЗ рдЪрд╛рд░ * рдФрд░ рдкреЙрдЗрдВрдЯрд░реНрд╕ рдФрд░ рдпреВрдирд┐рдХреЛрдб рдФрд░ wchar_t рдФрд░ TCHAR рд╣реЗрдбрд░ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдирд╣реАрдВ рд╕реАрдЦрддреЗ рд╣реИрдВ - рдпрд╣ рд╕рдм рд╕рд╛рд░ рдореЗрдВ рдЫреЗрдж рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЪрдордХрддрд╛ рд╣реИред "рддреЛ, рдЬреИрд╕рд╛ рдХрд┐ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рд╡рд┐рдбрдВрдмрдирд╛ рдпрд╣ рд╣реИ рдХрд┐ рдЫрд┐рджреНрд░рдкреВрд░реНрдг рдЕрдореВрд░реНрдд рдХрд╛ рдирд┐рдпрдо рдХрд┐рд╕реА рдХреЛ рдЗрд╕ рддрд░рд╣ рдХреЗ рдорд╛рдЗрдХреНрд░реЛрдХрдВрдЯреНрд░реЛрд▓рд░ рдХреЛ рд▓реЗрдиреЗ рдФрд░ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рджреЗрддрд╛ рд╣реИ (рднрд▓реЗ рд╣реА рдпрд╣ рддреАрди рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХрд╛ рд╕рдмрд╕реЗ рд╕рд░рд▓ "рд╣реИрд▓реЛ рд╡рд░реНрд▓реНрдб" рд╣реИ), рдмрд┐рдирд╛ рдХрд┐рд╕реА рднреА рдбреЗрдЯрд╛рд╢реАрдЯ рдХреЛ рджреЗрдЦреЗ рдФрд░ рдпрд╣ рд╡рд┐рдЪрд╛рд░ рдХрд┐рдП рдмрд┐рдирд╛ рдХрд┐ рдорд╛рдЗрдХреНрд░реЛрдХрдВрдЯреНрд░реЛрд▓рд░ рдХреЗ рдЕрдВрджрд░ рдПрдХ рд╣реА рд╣реИ, рд╕рд╛рде рд╣реА рдЕрдореВрд░реНрддрддрд╛ рдореЗрдВ рдЗрди рд╕рднреА рд╡рд░реНрдЧреЛрдВ рдХреЗ рдкреАрдЫреЗ рдХреНрдпрд╛ рд╣реИред рд╡рд┐рдкрдгрдХ рдХреЗ рд╡рд╛рджреЗ рдХреЗ рд╡рд┐рдкрд░реАрдд ...рдЗрд╕рд▓рд┐рдП, рднрд╛рд░реА рдЖрд╣реЗрдВ рднрд░рддреЗ рд╣реБрдП, рд╣рдо рдЦреЛрдЬрдирд╛ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред рдЕрдЧрд░ рдореЗрд░реА рдЖрдВрдЦреЛрдВ рдХреЗ рд╕рд╛рдордиреЗ рдпрд╣ рдПрдХ рдЕрдореВрд░реНрдд рдирд╣реАрдВ рдерд╛, рд▓реЗрдХрд┐рди рдирд┐рдпрдВрддреНрд░рдХ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреВрд░реНрдг рд╡рд┐рдХрд╛рд╕ рд╡рд╛рддрд╛рд╡рд░рдг, рддреЛ рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реЛрдЧрд╛ рдХрд┐ рдХрд╣рд╛рдВ рдЦреЛрджрдирд╛ рд╣реИред рд▓реЗрдХрд┐рди рдЙрдкрд░реЛрдХреНрдд рдХреЛрдб рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдХрд╣рд╛рдВ рдЦреЛрджрдирд╛ рд╣реИ? рдЕрдЧрд░ mbed.h рдлрд╝рд╛рдЗрд▓ рдХреА рд╕рд╛рдордЧреНрд░реА рднреА рдЕрдореВрд░реНрдд рдХреЛ рджреЗрдЦрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рджреЗрддреА рд╣реИ?рд╕реМрднрд╛рдЧреНрдп рд╕реЗ, mbed рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╕реНрд╡рдпрдВ рдЦреБрд▓рд╛ рд╕реНрд░реЛрдд рд╣реИ, рдФрд░ рдЖрдк рдЗрд╕реЗ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдЕрдВрджрд░ рдХреНрдпрд╛ рд╣реИред рдпрд╣ рдлрд┐рд░ рд╕реЗ, рд╕реМрднрд╛рдЧреНрдп рд╕реЗ рдирд┐рдХрд▓рд╛, рдХрд┐ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХреЗ рд▓рд┐рдП рдЕрдореВрд░реНрдд рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ, рдорд╛рдЗрдХреНрд░реЛрдХрдВрдЯреНрд░реЛрд▓рд░ рдХреЗ рд╕рднреА рд░рдЬрд┐рд╕реНрдЯрд░ рдХрд╛рдлреА рд╕реБрд▓рдн рд╣реИрдВ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЙрдиреНрд╣реЗрдВ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдШреЛрд╖рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдкрд╣рд▓реЗ рд╕реЗ рдмреЗрд╣рддрд░ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрдк рдпрд╣ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЗрд╕реЗ рдЪрд▓рд╛рдиреЗ рдХреА рдПрдХ рдШрдбрд╝реА рдХреА рдЧрддрд┐ рд╣реИ (рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рдореБрдЭреЗ рдбреЗрдЯрд╢реАрдЯ рдХреЛ рджреЗрдЦрдирд╛ рд╣реЛрдЧрд╛ рдФрд░ рдмрд╣реБрдд рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдЦреБрджрд╛рдИ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП): RCC_OscInitTypeDef str;
RCC_ClkInitTypeDef clk;
pc.printf("SystemCoreClock = %d Hz\n\r", HAL_RCC_GetSysClockFreq());
HAL_RCC_GetOscConfig(&str);
pc.printf("->HSIState %d\n\r", str.HSIState);
pc.printf("->PLL.PLLState %d\n\r", str.PLL.PLLState);
pc.printf("->PLL.PLLSource %d\n\r", str.PLL.PLLSource);
pc.printf("->PLL.PLLMUL %d\n\r", str.PLL.PLLMUL);
pc.printf("->PLL.PREDIV %d\n\r", str.PLL.PREDIV);
pc.printf("\n\r");
HAL_RCC_GetClockConfig(&clk, &flat);
pc.printf("ClockType %d\n\r", clk.ClockType);
pc.printf("SYSCLKSource %d\n\r", clk.SYSCLKSource );
pc.printf("AHBCLKDivider %d\n\r", clk.AHBCLKDivider );
pc.printf("APB1CLKDivider %d\n\r", clk.APB1CLKDivider );
рд╕рдм рдХреБрдЫ рдЖрд╡реГрддреНрддрд┐ рдХреЗ рд╕рд╛рде рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдирд┐рдХрд▓рд╛, рдпрд╣ 48 рдореЗрдЧрд╛рд╣рд░реНрдЯреНрдЬ рдерд╛, рдЬреИрд╕рд╛ рдХрд┐ рдпрд╣ рдЗрд░рд╛рджрд╛ рдерд╛редрдЦреИрд░, рдЖрдЧреЗ рдЦреБрджрд╛рдИ рдХрд░реЗрдВред рд╣рдо Wait_ms () рдХреЗ рдмрдЬрд╛рдп рдЯрд╛рдЗрдорд░ рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ: Timer timer;
timer.start();
while(1) {
myled ^= 1;
t1 = timer.read_ms();
t2 = timer.read_ms();
while (t2 - t1 < 500)
{
t2 = timer.read_ms();
}
}
рдпрд╣ рд╕реБрдВрджрд░ рд╣реИ, рдирд╣реАрдВ? рд▓реЗрдХрд┐рди рдПрд▓рдИрдбреА рдЕрднреА рднреА рд╡рд╛рдВрдЫрд┐рдд рдХреА рддреБрд▓рдирд╛ рдореЗрдВ 5 рдЧреБрдирд╛ рддреЗрдЬреА рд╕реЗ рдЭрдкрдХрд╛рддрд╛ рд╣реИ ...рдареАрдХ рд╣реИ, рд╣рдо рдФрд░ рднреА рдЧрд╣рд░рд╛ рдЦреЛрджрддреЗ рд╣реИрдВ рдФрд░ рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЬрд╛рджреВ рдЯрд╛рдЗрдорд░ рдХреЗ рдкреАрдЫреЗ рдХреНрдпрд╛ рд╣реИ, рдЬреЛ рдХрд┐ рдкреНрд░рд▓реЗрдЦрди рд╡рд╛рджреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ, рдХрд┐рд╕реА рднреА рдорд╛рддреНрд░рд╛ рдореЗрдВ рдмрдирд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рднрд▓реЗ рд╣реА рдХрд┐рддрдиреЗ рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдЯрд╛рдЗрдорд░ рд╣реЛрдВ рдорд╛рдЗрдХреНрд░реЛред рдХреВрд▓, рд╣рд╛рдБ ...рдФрд░ рдПрд╕рдЯреАрдПрдо F030 рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, TIM1 рдХрдВрдЯреНрд░реЛрд▓рд░ рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдЯрд╛рдЗрдорд░ рдЗрд╕рдХреЗ рдкреАрдЫреЗ рдЫрд┐рдкрд╛ рд╣реБрдЖ рд╣реИ, рдорд╛рдЗрдХреНрд░реЛрд╕реЗрдХрдВрдб рдЯрд┐рдХреЛрдВ рдХреЛ рдЧрд┐рдирдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдФрд░ рдЗрд╕ рдЖрдзрд╛рд░ рдкрд░, рдмрд╛рдХреА рд╕рдм рдХреБрдЫ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИредрддреЛ, рдпрд╣ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЧрд░реНрдо рд╣реИред рдпрд╛рдж рд░рдЦреЗрдВ, рдореИрдВрдиреЗ рдХрд╣рд╛ рдХрд┐ рд╕рднреА рд░рдЬрд┐рд╕реНрдЯрд░ рдЙрдкрд▓рдмреНрдз рд╣реИрдВ? рд╣рдо рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЛ рджреЗрдЦрддреЗ рд╣реИрдВ:pc.printf("PSC: %d\n\r", TIM1->PSC);
рджреЗрдЦрд╛! рдпрд╣ рдЗрд╕ рдмрд╛рдд рдХреА рдЬрд╛рдВрдЪ рдХрд╛ рдЕрдВрдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдХрд┐рд╕реЗ рджреЛрд╖реА рдард╣рд░рд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ: рдирдВрдмрд░ 7 рдХрдВрд╕реЛрд▓ рдХреЛ рднреЗрдЬрд╛ рдЧрдпрд╛ рд╣реИред PSC рд░рдЬрд┐рд╕реНрдЯрд░ рдореЗрдВ (рдореБрдВрд╢реА? рдХреНрдпрд╛ рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕рд┐рд░реНрдл рдПрдХ рд╕рдВрдпреЛрдЧ рд╣реИ?) рдПрдХ рдореВрд▓реНрдп рд╣реИ, рдЬрд┐рд╕ рдкрд░ рдкрд╣реБрдВрдЪрдиреЗ рдкрд░ рдЯрд╛рдЗрдорд░ рдПрдХ рдмрд╛рдзрд╛ рдЙрддреНрдкрдиреНрди рдХрд░реЗрдЧрд╛ рдФрд░ рдлрд┐рд░ рд╕реЗ рдЧрд┐рдирдирд╛ рд╢реБрд░реВ рдХрд░реЗрдЧрд╛ред рдФрд░ рдЗрд╕ рд░реБрдХрд╛рд╡рдЯ рдФрд░ рдорд╛рдЗрдХреНрд░реЛрд╕реЗрдХрдВрдб рдХрд╛рдЙрдВрдЯрд░ рдкрд░ рд▓рдЯрдХрд╛ рд╣реБрдЖ рд╣реИред рдФрд░ рдЗрд╕рд▓рд┐рдП рдХрд┐ 48 рдореЗрдЧрд╛рд╣рд░реНрдЯреНрдЬ рдХреА рдЖрд╡реГрддреНрддрд┐ рдкрд░ рдПрдХ рдмрд╛рд░ рдкреНрд░рддреНрдпреЗрдХ рдорд╛рдЗрдХреНрд░реЛрд╕реЗрдХрдВрдб рдореЗрдВ рд░реБрдХрд╛рд╡рдЯ рдЖрддреА рд╣реИ, рд╡рд╣рд╛рдБ 7 рдмрд┐рд▓реНрдХреБрд▓ рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рд▓реЗрдХрд┐рди 47. рдФрд░ 7 рд╡рд╣рд╛рдБ рдорд┐рд▓рд╛, рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ, рдорд╛рдЗрдХреНрд░реЛрдХрдВрдЯреНрд░реЛрд▓рд░ рд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рдкрд╣рд▓реЗ рдЪрд░рдг рдореЗрдВ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ 8 рдореЗрдЧрд╛рд╣рд░реНрдЯреНрдЬ рд╕реЗ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ рдФрд░ рдлрд┐рд░ рдкреАрдПрд▓рдПрд▓ рдХреЛ рдлрд┐рд░ рд╕реЗ рдмрдирд╛рддрд╛ рд╣реИ рддрд╛рдХрд┐ рд╡рд╛рдВрдЫрд┐рдд 48 рдореЗрдЧрд╛рд╣рд░реНрдЯреНрдЬ рджреЗ, рдЖрд╡реГрддреНрддрд┐ 6 тАЛтАЛрд╕реЗ рдЧреБрдгрд╛ рд╣реЛред рдФрд░ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЯрд╛рдЗрдорд░ рдмрд╣реБрдд рдЬрд▓реНрдж рд╢реБрд░реВ рд╣реЛ рд░рд╣рд╛ рд╣реИ ...рджреЛрд╖ рдХрд┐рд╕реЗ рджреЗрдирд╛ рд╣реИ, рдмрд┐рд▓реНрдХреБрд▓ред рд▓реЗрдХрд┐рди рдХрд░реЗрдВ рдХреНрдпрд╛? рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЙрд▓ рд╢реНрд░реГрдВрдЦрд▓рд╛рдУрдВ рдХреЗ рд▓рд┐рдП рд░реВрдкрд░реЗрдЦрд╛ рдХреЗ рдЙрддреНрдЦрдирди:рдкрд╣рд▓рд╛: SetSysClock_PLL_HSI () -> HAL_RCC_OscConfig (), HAL_RCC_ClockConfig () -> HAL_InitTick () - рдЖрд╡реГрддреНрддрд┐ рдмрджрд▓рддреЗ рд╕рдордп, microsecond рдЯрд┐рдХ рд╕реЗрдЯ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд░реЗрдВредрджреВрд╕рд░рд╛: HAL_Init () -> HAL_InitTick () -> HAL_TIM_Base_Init () -> TIM_Base_SetConfig () -> TIMx-> PSC - рд╕рдмрд╕реЗ рд╡реИрд╢реНрд╡рд┐рдХ рдХрд╛рд░реНрдпреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, HAL_InitTick PSC рд░рдЬрд┐рд╕реНрдЯрд░ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдорд╛рди рд▓рд┐рдЦрддрд╛ рд╣реИред рдЖрд╡реГрддреНрддрд┐рдпреЛрдВ ...рдЬреЛ рдореЗрд░реЗ рд▓рд┐рдП рдПрдХ рд░рд╣рд╕реНрдп рд╣реИ, рд╡рд╣ рдпрд╣ рд╣реИ рдХрд┐ рдпрд╣ рдПрд╕рдЯреАрдПрдо F0 рдкрд░рд┐рд╡рд╛рд░ рдХреЗ рд▓рд┐рдП рд╣реИ рдХрд┐ рджреВрд╕рд░реА рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХреЛ рдирд╣реАрдВ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рдореБрдЭреЗ HAL_Init () рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдХреЙрд▓ рдирд╣реАрдВ рдорд┐рд▓реА!рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпрджрд┐ рдЖрдк HAL_InitTick () рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ рджреЗрдЦрддреЗ рд╣реИрдВ, рддреЛ рдЗрд╕рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рдирд┐рдореНрди рдкрдВрдХреНрддрд┐рдпрд╛рдБ рд╣реЛрдВрдЧреА: static uint32_t ticker_inited=0;
if(ticker_inited)return HAL_OK;
ticker_inited=1;
рдЗрд╕ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдПрдХ рдмрд╛рд░ рдХреЙрд▓ рдХрд░реЗрдВред рдпрд╣реА рд╣реИ, рдЖрдк рдЙрд╕реЗ рдЬрд┐рддрдиреА рдмрд╛рд░ рдЪрд╛рд╣реЗрдВ рдХреЙрд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдмрд╛рдж рдХреА рд╕рднреА рдХреЙрд▓ рдХреЗ рд▓рд┐рдП рд╡рд╣ рдХреБрдЫ рднреА рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ред рдФрд░ рдпрд╣ рддрдереНрдп рдХрд┐ рдлреНрд░реЗрдорд╡рд░реНрдХ рдЗрд╕реЗ рдШрдбрд╝реА рдХреА рдЖрд╡реГрддреНрддрд┐ рдореЗрдВ рдмрджрд▓рд╛рд╡ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдХрд╣рддрд╛ рд╣реИ рдмреЗрдХрд╛рд░ рд╣реИ ...рдореИрдВ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЗ рдкреБрдирд░реНрдирд┐рд░реНрдорд╛рдг рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЖрд▓рд╕реА рдерд╛, рдЗрд╕рд▓рд┐рдП рдЗрд╕ рд░реВрдк рдореЗрдВ рд╕реБрдзрд╛рд░ рд╣реБрдЖ: рдореБрдЦреНрдп рд╕рдорд╛рд░реЛрд╣ рдореЗрдВ рдкрд╣рд▓реА рдкрдВрдХреНрддрд┐ рдпрд╣ рдереА:TIM1->PSC = (SystemCoreClock / 1000000) - 1;
рдЙрд╕рдХреЗ рдмрд╛рдж, рдПрд▓рдИрдбреА рдЖрдЦрд┐рд░рдХрд╛рд░ 1 рд╣рд░реНрдЯреНрдЬ рдХреА рд╕рд╣реА рдЖрд╡реГрддреНрддрд┐ рдХреЗ рд╕рд╛рде рдЭрдкрдХреА рд▓реЗрдирд╛ рд╢реБрд░реВ рдХрд░ рджрд┐рдпрд╛ ...рдореБрдЭреЗ рдЖрд╢реНрдЪрд░реНрдп рд╣реИ рдХрд┐ рдХрд┐рд╕реА рдХрд╛рд▓реНрдкрдирд┐рдХ рдордВрдЪ рдХреЛ рдХрд┐рд╕ рдЪрд░рдг рдореЗрдВ рд░реЛрдХрд╛ рдЬрд╛рдПрдЧрд╛, рдЬрд┐рд╕реЗ рдореЗрдмрдб рдорд╛рд░реНрдХреЗрдЯрд░реНрд╕ рдиреЗ рдорд╛рдЗрдХреНрд░реЛрдХрдВрдЯреНрд░реЛрд▓рд░ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдХреЛ рдЦрд░реЛрдВрдЪ рд╕реЗ рдЗрддрдирд╛ рдЖрд╕рд╛рди рдмрдирд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдордирд╛ рд▓рд┐рдпрд╛? рдпрджрд┐ рдЙрд╕рдиреЗ рдкрд╣рд▓реЗ рдорд╛рдЗрдХреНрд░реЛрдХрдВрдЯреНрд░реЛрд▓рд░ рдХрд╛ рд╕рд╛рдордирд╛ рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ?рдареАрдХ рд╣реИ, рдЕрдЧрд░ рдореИрдВ рдмрд╣реБрдд рдердХрд╛ рд╣реБрдЖ рдирд╣реАрдВ рд╣реВрдВ, рддреЛ рд╣рдо рдЖрдЧреЗ рдмрдврд╝ рд░рд╣реЗ рд╣реИрдВред рдПрдХ рдПрд▓рдИрдбреА рдЪрдордХрддреА рдЕрдЪреНрдЫреА рд╣реИ, рд▓реЗрдХрд┐рди рджрд┐рд▓рдЪрд╕реНрдк рдирд╣реАрдВ рд╣реИред рдореБрдЭреЗ рдХреБрдЫ рдФрд░ рдЪрд╛рд╣рд┐рдПред DS1820 рддрд╛рдкрдорд╛рди рд╕реЗрдВрд╕рд░ рдПрдХ рдмрдбрд╝реЗ рд╕реЗ рдкрд╛рдпрд╛ рдЧрдпрд╛ рдерд╛, рдФрд░ рдЗрд╕рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЛ рдЧреБрдЧрд▓реА рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдЗрд╕ рд╕реЗрдВрд╕рд░ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдЬрдЯрд┐рд▓рддрд╛ рдХреЛ рдЫрд┐рдкрд╛рддреЗ рд╣реБрдП рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реИред рдмрд╕ рдЬрд░реВрд░рдд рд╣реИ рддреЛ рдХреБрдЫ рдРрд╕рд╛ рд▓рд┐рдЦрдиреЗ рдХреА#include "DS1820.h"
DS1820 probe[1] = {D4};
probe[0].convert_temperature(DS1820::all_devices);
float temperature = probe[0].temperature('c');
рдЖрдкрдХреЛ рдХреНрдпрд╛ рд▓рдЧрддрд╛ рд╣реИ рд╕рдВрдХрд▓рди рдФрд░ рд▓реЙрдиреНрдЪ рдХреЗ рдмрд╛рдж рдХреНрдпрд╛ рд╣реБрдЖ? рд╕рд╣реА рдврдВрдЧ рд╕реЗред рдпрд╣ рдХрд╛рдо рдирд╣реАрдВ рдХрд┐рдпрд╛ :)рд▓реАрдХ рдХреЗ рд╕рд╛рд░, рд╣рд╛рдБред рдЦреИрд░, mbed internals рдХрд╛ рдПрдХ рдФрд░ рд░реЛрдорд╛рдВрдЪрдХ рдЕрдзреНрдпрдпрди рд╣рдореЗрдВ рдЗрдВрддрдЬрд╛рд░ рдХрд░ рд░рд╣рд╛ рд╣реИ, рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИред рдФрд░ рд╕реЗрдВрд╕рд░ рдХрд╛ рд╡рд┐рд╡рд░рдгредрд╕реЗрдВрд╕рд░ рдмрд╣реБрдд рджрд┐рд▓рдЪрд╕реНрдк рд╣реИред рдЗрд╕рдХреЗ рдбрд┐рдЬрд┐рдЯрд▓ рдЗрдВрдЯрд░рдлреЗрд╕ рдХреЗ рд╕рд╛рдеред рдПрдХ рдкрдВрдХреНрддрд┐ рдореЗрдВ, рдЕрд░реНрдерд╛рддреНред рдЖрдзреЗ рдбреБрдкреНрд▓реЗрдХреНрд╕ рдореЛрдб рдореЗрдВ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдирд┐рдпрдВрддреНрд░рдХ рдбреЗрдЯрд╛ рдПрдХреНрд╕рдЪреЗрдВрдЬ рд╢реБрд░реВ рдХрд░рддрд╛ рд╣реИ, рд╕реЗрдВрд╕рд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдмрд┐рдЯреНрд╕ рдХрд╛ рдПрдХ рдХреНрд░рдо рднреЗрдЬрддрд╛ рд╣реИред рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдРрд╕реЗ рдорд╛рдорд▓реЛрдВ рдХреЗ рд▓рд┐рдП, рдореИрдмреЗрдб рдлреНрд░реЗрдорд╡рд░реНрдХ рдореЗрдВ DigitalInOut class рд╣реИ, рдЬрд┐рд╕рдХреЗ рд╕рд╛рде рдЖрдк рдордХреНрдЦреА рдкрд░ GPIO рдкрд┐рди рдкрд░ рдЗрд╕рдХреЗ рдХрд╛рдо рдХреА рджрд┐рд╢рд╛ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВред рдХреБрдЫ рдЗрд╕ рддрд░рд╣:bool DS1820::onewire_bit_in(DigitalInOut *pin) {
bool answer;
pin->output();
pin->write(0);
wait_us(3);
pin->input();
wait_us(10);
answer = pin->read();
wait_us(45);
return answer;
}
рдирд┐рдпрдВрддреНрд░рдХ рд╕реЗрдВрд╕рд░ рдХреЛ рдПрдХ рдирд╛рдбрд╝реА "1 -> 0 -> 1" рднреЗрдЬрддрд╛ рд╣реИ, рдЬреЛ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдПрдХ рдмрд┐рдЯ рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдВрдХреЗрдд рд╣реИред рдпрд╣рд╛рдВ рдХреНрдпрд╛ рдХрд╛рдо рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ? рдпрд╣рд╛рдБ рд╕реЗрдВрд╕рд░ рдбреЗрдЯрд╛рд╢реАрдЯ рдХрд╛ рдПрдХ рдЯреБрдХрдбрд╝рд╛ рд╣реИ:
рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рд╣рдордиреЗ рд╕реЗрдВрд╕рд░ рдХреЛ рдПрдХ рдЖрд╡реЗрдЧ рднреЗрдЬрдиреЗ рдХреЗ рдмрд╛рдж, рдмрд┐рдЯ рдХреЛ рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ 15 рдорд╛рдЗрдХреНрд░реЛрд╕реЗрдХрдВрдб рд╣реИрдВредрд╣рдо рдЖрд╕реНрдЯрд╕реАрд▓рд╕реНрдХрдк рдХреЛ рдХрдиреЗрдХреНрдЯ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ рд╕реЗрдВрд╕рд░ рдмрд┐рдЯреНрд╕ рдХреЛ рд╕реНрд╡рдпрдВ рднреЗрдЬрддрд╛ рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐ рдбреЗрдЯрд╛рд╢реАрдЯ рдореЗрдВ рджрд░реНрд╢рд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдпрд╣рд╛рдВ рдХрдВрдЯреНрд░реЛрд▓рд░ рдХрдЪрд░рд╛ рдкрдврд╝рддрд╛ рд╣реИред рдХреНрдпрд╛ рдХрд╛рд░рдг рд╣реЛ рд╕рдХрддрд╛ рд╣реИ?рдореИрдВ рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдЬреНрдпрд╛рджрд╛ рдирд╣реАрдВ рд▓рд┐рдЦ рдкрд╛рдпрд╛ рдХрд┐ рдореИрдВ рдЗрд╕ рдХреЛрдб рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреИрд╕реЗ рдЖрдпрд╛: pin->output();
t1 = timer.read_us();
pin->input();
t4 = timer.read_us();
pc.printf("Time: %d us\n\r", t4-t1);
рдареАрдХ рд╣реИ, рдЬреЛ рдЕрдиреБрдорд╛рди рд▓рдЧрд╛рддрд╛ рд╣реИ рдХрд┐ рдЖрдЧреЗ рдкрдврд╝рдиреЗ рдХреЗ рдмрд┐рдирд╛, 48 рдореЗрдЧрд╛рд╣рд░реНрдЯреНрдЬ рдХреА рдШрдбрд╝реА рдЖрд╡реГрддреНрддрд┐ рдХреЗ рд╕рд╛рде рдПрдХ рдорд╛рдЗрдХреНрд░реЛрдХрдВрдЯреНрд░реЛрд▓рд░ рдкрд░ рдХрд┐рддрдирд╛ рд╕рдордп рд▓рдЧрддрд╛ рд╣реИ, рдпрд╣ рдПрдХ GPIO рдкрд┐рди рдХреА рджрд┐рд╢рд╛ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рд▓реЗрддрд╛ рд╣реИ (рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдпрд╣ рдПрдХ рд╣реИ рд░рдЬрд┐рд╕реНрдЯрд░ рдореЗрдВ рд▓рд┐рдЦреЗрдВ, рдпрджрд┐ рд╡рд╣ рд╣реИ), рдЕрдЧрд░ рдпрд╣ рд▓рд┐рдЦрд┐рдд рд░реВрдкрд░реЗрдЦрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред C ++ рдПрдХ рд▓реЛрд╣реЗ рдХреА рд╕реНрд╡рддрдВрддреНрд░ рдкрд░рдд рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реИ?13 рдорд╛рдЗрдХреНрд░реЛрд╕реЗрдХрдВрдбредрдФрд░ рд╕реЗрдВрд╕рд░ рдХреА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЛ рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ 15. рдХреЗ рд░реВрдк рдореЗрдВ рдХрдИ рд╣реИрдВ рдФрд░ рднрд▓реЗ рд╣реА рд╣рдо рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдкреНрд░рддреАрдХреНрд╖рд╛ (10) рдКрдкрд░ рдХреЗ рдХреЛрдб рд╕реЗ рд╣рдЯрд╛ рджреЗрдВ, рдХрдорд╛рдВрдб рдЙрддреНрддрд░ = рдкрд┐рди-> рдкрдврд╝рд╛ (); 2 рдорд╛рдЗрдХреНрд░реЛрд╕реЗрдХрдВрдб рд╕реЗ рднреА рдЕрдзрд┐рдХ рд╕рдордп рд▓реЗрддрд╛ рд╣реИред рдЙрддреНрддрд░ рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдордп рди рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдХреНрдпрд╛ рдкрд░реНрдпрд╛рдкреНрдд рд╣реИредрд╕реМрднрд╛рдЧреНрдп рд╕реЗ, GPIO рдХреА рджрд┐рд╢рд╛ рдмрджрд▓реЗ рдмрд┐рдирд╛ STM рдХреЗ рд▓рд┐рдП рдПрдХ рдЖрд╡реЗрдЧ рднреЗрдЬрдирд╛ рд╕рдВрднрд╡ рдерд╛ред рдЗрдирдкреБрдЯ рдореЛрдб рдореЗрдВ, рдЬрдм рдЖрдк рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдкреБрд▓рдбрд╛рдЙрди рд░реЗрд╕рд┐рд╕реНрдЯрд░ рдХреЛ рдХрдиреЗрдХреНрдЯ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдкреНрд░рднрд╛рд╡ рд╕рдорд╛рди рд╣реЛрддрд╛ рд╣реИред рдФрд░ рдлрд┐рд░, рд╕реМрднрд╛рдЧреНрдп рд╕реЗ, рдкрд┐рди-> рдЗрдирдкреБрдЯ () рдХреЗ рдмрдЬрд╛рдп рдкрд┐рди-> рдореЛрдб (рдкреБрд▓рдЕрдк) рдХреЛ рдХреЗрд╡рд▓ 6 рдорд╛рдЗрдХреНрд░реЛрд╕реЗрдХрдВрдб рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИредрдЬрд╡рд╛рдм рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдордп рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдХреНрдпрд╛ рдкрд░реНрдпрд╛рдкреНрдд рдерд╛редрдФрд░ рдЕрдВрдд рдореЗрдВ, рдЕрдореВрд░реНрдд рдореЗрдВ рдПрдХ рдФрд░ рдЫреЗрджред DS1820 рдХреЗ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдЕрдЧрд▓рд╛ рд╕реЗрдВрд╕рд░ рдЬреЛ рд╣рд╛рде рдореЗрдВ рдЖрдпрд╛ рд╡рд╣ рдерд╛ DHT21, рдПрдХ рд╕реЗрдВрд╕рд░ рдЬреЛ рддрд╛рдкрдорд╛рди рдФрд░ рдЖрд░реНрджреНрд░рддрд╛ рджреЛрдиреЛрдВ рдХреЛ рдорд╛рдкрддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ 1-рддрд╛рд░ рдЗрдВрдЯрд░рдлреЗрд╕ рдХреЗ рд╕рд╛рде, рд▓реЗрдХрд┐рди рдЗрд╕ рдмрд╛рд░ рдкрд▓реНрд╕ рдЕрд╡рдзрд┐ рдХреЗ рд╕рд╛рде рдПрдиреНрдХреЛрдбрд┐рдВрдЧ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ред рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╕реНрдкрд╖реНрдЯ рд╕рдорд╛рдзрд╛рди рдЗрд╕ рд▓рд╛рдЗрди рдХреЛ GPIO рдЗрдирдкреБрдЯ рдЗрдВрдЯрд░рдкреНрдЯ рдкрд░ рд▓рдЯрдХрд╛рдирд╛ рд╣реЛрдЧрд╛, рдЬрд┐рд╕рд╕реЗ рдкрд▓реНрд╕ рдЕрд╡рдзрд┐ рдХреЛ рдорд╛рдкрдирд╛ рдЖрд╕рд╛рди рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рдФрд░ рдЗрд╕рдХреЗ рд▓рд┐рдП mbed рдореЗрдВ рдПрдХ рд╡рд░реНрдЧ рднреА рд╣реИред рдФрд░ рдпрд╣ рджрд╕реНрддрд╛рд╡реЗрдЬ рдХреЗ рд░реВрдк рдореЗрдВ рднреА рдХрд╛рдо рдХрд░рддрд╛ рд╣реИредрд▓реЗрдХрд┐рди рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рд╕реЗрдВрд╕рд░ рдЖрдзреЗ рдбреБрдкреНрд▓реЗрдХреНрд╕ рдореЗрдВ рднреА рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдФрд░ рдЙрд╕рдХреЗ рд▓рд┐рдП рдбреЗрдЯрд╛ рдкреНрд░реЗрд╖рд┐рдд рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЙрд╕реЗ рдКрдкрд░ рджрд┐рдП рдЧрдП рдЙрджрд╛рд╣рд░рдг рдореЗрдВ "1 -> 0 -> 1" рдЖрд╡реЗрдЧ рднреЗрдЬрдирд╛ рд╣реЛрдЧрд╛редрдФрд░ рдпрд╣рд╛рдБ mbed рдпрд╣ рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рджреЗрддрд╛ рд╣реИред рдпрд╛ рдЖрдк рдкреЛрд░реНрдЯ рдХреЛ DigitalInOut рдШреЛрд╖рд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рддрдм рдЖрдк рдЗрдВрдЯрд░рдкреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╛ рдЖрдк рдкреЛрд░реНрдЯ рдХреЛ InterruptIn рдШреЛрд╖рд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдлрд┐рд░ рдЖрдк рдЗрд╕реЗ рдХреБрдЫ рднреА рдирд╣реАрдВ рднреЗрдЬ рд╕рдХрддреЗ рд╣реИрдВред рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдкреБрд▓рдбрд╛рдЙрди рдЯреНрд░рд┐рдХ рдиреЗ рдпрд╣рд╛рдВ рдХрд╛рдо рдирд╣реАрдВ рдХрд┐рдпрд╛ред рд╕реЗрдВрд╕рд░ рдореЗрдВ рдПрдХ рдмрд┐рд▓реНрдЯ-рдЗрди PullUp рд╣реИ, рдФрд░ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд PullDown рдорд╛рдЗрдХреНрд░реЛрдХрдВрдЯреНрд░реЛрд▓рд░ рдкрд┐рди рдХреЛ 0. рдкрд░ рдЦреАрдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рдирд╣реАрдВ рд╣реИредрдореБрдЭреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рдмрд╣реБрдд рдХрдо рд╕реБрдВрджрд░ рд▓рд╛рдЗрди рдкреЛрд▓рд┐рдВрдЧ рдЪрдХреНрд░ рдмрдирд╛рдирд╛ рдкрдбрд╝рд╛ред рд╕рдм рдХреБрдЫ, рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рдЙрд╕ рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдХрд┐рдпрд╛, рд▓реЗрдХрд┐рди рдпрд╣ рдЦреВрдмрд╕реВрд░рддреА рд╕реЗ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рдерд╛ред рдЬреЛ рд░рдЬрд┐рд╕реНрдЯрд░реЛрдВ рддрдХ рд╕реАрдзреЗ рдкрд╣реБрдВрдЪ рдХреЗ рд╕рд╛рде рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реЛрдЧреА ...рдпрд╣реА рдкрд░ рд╣реИред рдПрдХ рдЕрдореВрд░реНрдд рдмрдирд╛рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рддрд╛рдХрд┐ рдХреЛрдИ рднреА рддреБрд░рдВрдд рдорд╛рдЗрдХреНрд░реЛрдХрдВрдЯреНрд░реЛрд▓рд░ рдХреЗ рдпреЛрдЧреНрдп рдХрд╛рд░реНрдпрдХреНрд░рдо рд╢реБрд░реВ рдХрд░ рд╕рдХреЗред рдХрдИ рдЪреАрдЬреЗрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдмрд╣реБрдд рд╕рд░рд▓ рд╣реЛрддреА рд╣реИрдВ, рдФрд░ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдХрд╛рдо рднреАред рд▓реЗрдХрд┐рди, рдХрд┐рд╕реА рднреА рдЙрдЪреНрдЪ-рд╕реНрддрд░реАрдп рдЕрдореВрд░реНрдд рдХреА рддрд░рд╣, рдпрд╣ рдЕрдореВрд░реНрдд рднреА рдЫрд┐рджреНрд░реЛрдВ рд╕реЗ рднрд░рд╛ рд╣реИред рдФрд░ рдХрд┐рд╕реА рднреА рдХрдИ рдЫреЗрджреЛрдВ рдХреЗ рд╕рд╛рде рдЯрдХрд░рд╛рд╡ рдореЗрдВ рд╕реНрд╡рд░реНрдЧ рд╕реЗ рдкреГрдереНрд╡реА рддрдХ рдиреАрдЪреЗ рдЬрд╛рдирд╛ рдкрдбрд╝рддрд╛ рд╣реИред