STM32 + рд▓рд╛рдЗрдирдХреНрд╕

рдПрдХ рд▓рдВрдмреА рдЦреЛрдЬ рдХреЗ рдмрд╛рдж рд▓реЛрд╣реЗ рдХреЗ рдПрдХ рдЯреБрдХрдбрд╝реЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдирд┐рдпрдВрддреНрд░рдг рдкреНрд░рдгрд╛рд▓реА рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рдПрдХ STM32 ARM рдорд╛рдЗрдХреНрд░реЛрдХрдВрдЯреНрд░реЛрд▓рд░ - STM32F103 ("рд╕реЗрдВрдЯреАрдкреАрдб" рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ) рдХрд╛ рдЪрдпрди рдХрд┐рдпрд╛ред рдФрд░ рд╡рд┐рдХрд╛рд╕ рдФрд░ рдбрд┐рдмрдЧрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдмреНрд░реЗрдбрдмреЛрд░реНрдб рдХреЗ рд░реВрдк рдореЗрдВ - STM32P103 (рд╣рд╛рд▓рд╛рдВрдХрд┐ рдХрдо рдкреИрд░ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдХреЛрд░ рд╕рдорд╛рди рд╣реИ)ред рдореИрдВрдиреЗ рдЕрдкрдиреА рдЬрд╝рдЬрд╝рд╢рдХрд╛ рдореЗрдВ "рд╕рдХреНрд╕реЗрд╕ рд╕реНрдЯреЛрд░реАрдЬрд╝" рдХреЛ рдереЛрдбрд╝рд╛-рдереЛрдбрд╝рд╛ рдХрд░рдХреЗ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд┐рдпрд╛, рд▓реЗрдХрд┐рди рдореИрдВрдиреЗ рдЗрд╕реЗ рд╕рднреА рдХреЛ рдПрдХ рд╕рд╛рде рд░рдЦрдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ рдФрд░ рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХреА рдХрд┐ рд▓рд┐рдирдХреНрд╕ рдореЗрдВ рдорд╛рдЗрдХреНрд░реЛрдХрдВрдЯреНрд░реЛрд▓рд░реНрд╕ рдХреЛ рдХреИрд╕реЗ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХрд░рдирд╛ рдЕрдЪреНрдЫрд╛ рд▓рдЧрддрд╛ рд╣реИред рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╣реА рд╕реЛрд░реНрд╕рдлреЛрд░реНрдЬ рдХреЗ рд╕рд╛рде рд╣реИред



рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдореИрдВ рд╕рд╛рдорд╛рдиреНрдп рдкрд░ рд╕реНрдкрд░реНрд╢ рдХрд░реВрдВрдЧрд╛, рдФрд░ рдлрд┐рд░ рдореИрдВ рд╡рд┐рд╡рд░рдг рдкрд░ рдЬрд╛рдКрдВрдЧрд╛ред

рддреЛ, рдмреНрд░реЗрдбрдмреЛрд░реНрдб рдореЙрдбрд▓ (рдпрд╛ рддреИрдпрд╛рд░ рдбрд┐рд╡рд╛рдЗрд╕ - рдЬрдм рдпрд╣ рддреИрдпрд╛рд░ рд╣реИ) рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЖрдкрдХреЛ рдПрдХ JTAG рдПрдбрд╛рдкреНрдЯрд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдпрд╣ ST-LINK / V2 рд╣реИред рдЖрдпрд░рди, рдЬрд╝рд╛рд╣рд┐рд░ рд╣реИ, рдкрд░реНрдпрд╛рдкреНрдд рдирд╣реАрдВ рд╣реИ: рдЖрдкрдХреЛ рдЕрднреА рднреА рдХреЛрдб рдХреЛ рдХрд┐рд╕реА рддрд░рд╣ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдФрд░ рдлрд┐рд░ рдЗрд╕реЗ рдирд┐рдпрдВрддреНрд░рдХ рдкрд░ рдЕрдкрд▓реЛрдб рдХрд░реЗрдВред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдПрдЖрд░рдПрдо рдХреЗ рд▓рд┐рдП рдЬреАрд╕реАрд╕реА рдХрдВрдкрд╛рдЗрд▓рд░ (рдЖрд░реНрдо-рдиреЛ-рдИрдмреАрдмреА) рдФрд░ рдПрд╕рдЯреА-рд▓рд┐рдВрдХ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдЙрдкрдпреЛрдЧрд┐рддрд╛ (рдЗрд╕реЗ рд╕реНрдЯрд┐рдВрдХрд▓ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ) рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдП рдЧрдП рдереЗред

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

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

рдПрдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ IDE рдХреЗ рд░реВрдк рдореЗрдВ рдореИрдВ Geany рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВред рдЪреВрдВрдХрд┐ рдореЗрд░реЗ рдкрд╛рд╕ рдХрд╛рдо рдкрд░ рджреЛ рдореЙрдирд┐рдЯрд░ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╛рдлреА рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИ: рдПрдХ рдореЙрдирд┐рдЯрд░ рдкрд░ рдореЗрд░реЗ рдкрд╛рд╕ рдХреЛрдб рдХреЗ рд╕рд╛рде рдЧреАрди рдУрдкрди рд╣реИ, рдФрд░ рджреВрд╕рд░реЗ рдкрд░ - рдЯрд░реНрдорд┐рдирд▓, рдЬрд╣рд╛рдВ рдореИрдВ рд░рди рдмрдирд╛рддрд╛ рд╣реВрдВ рдФрд░ рдХреЙрдо (рдЫреЛрдЯреЗ рд╕реЗ рдЯрд░реНрдорд┐рдирд▓)ред

рдореИрдВ рдкреВрд░реЗ рдореЗрдХрдлрд╛рдЗрд▓ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдирд╣реАрдВ рдХрд░реВрдВрдЧрд╛, рдореИрдВ рдХреЗрд╡рд▓ рдЗрд╕ рдкрд░ рдзреНрдпрд╛рди рджреВрдВрдЧрд╛ рдХрд┐ рдЗрд╕рдореЗрдВ рдХреНрдпрд╛ рдкрд░рд┐рд╡рд░реНрддрди рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП:
рдХреЛрдб
BIN=testproject тАж STM32_LIBSRC+=stm32_lib/misc.c STM32_LIBSRC+=stm32_lib/stm32f10x_adc.c #~ STM32_LIBSRC+=stm32_lib/stm32f10x_bkp.c #~ STM32_LIBSRC+=stm32_lib/stm32f10x_can.c #~ STM32_LIBSRC+=stm32_lib/stm32f10x_cec.c #~ STM32_LIBSRC+=stm32_lib/stm32f10x_crc.c #~ STM32_LIBSRC+=stm32_lib/stm32f10x_dac.c #~ STM32_LIBSRC+=stm32_lib/stm32f10x_dbgmcu.c STM32_LIBSRC+=stm32_lib/stm32f10x_dma.c STM32_LIBSRC+=stm32_lib/stm32f10x_exti.c #~ STM32_LIBSRC+=stm32_lib/stm32f10x_flash.c #~ STM32_LIBSRC+=stm32_lib/stm32f10x_fsmc.c STM32_LIBSRC+=stm32_lib/stm32f10x_gpio.c #~ STM32_LIBSRC+=stm32_lib/stm32f10x_i2c.c #~ STM32_LIBSRC+=stm32_lib/stm32f10x_it.c #~ STM32_LIBSRC+=stm32_lib/stm32f10x_iwdg.c #~ STM32_LIBSRC+=stm32_lib/stm32f10x_pwr.c STM32_LIBSRC+=stm32_lib/stm32f10x_rcc.c #~ STM32_LIBSRC+=stm32_lib/stm32f10x_rtc.c #~ STM32_LIBSRC+=stm32_lib/stm32f10x_sdio.c #~ STM32_LIBSRC+=stm32_lib/stm32f10x_spi.c #~ STM32_LIBSRC+=stm32_lib/stm32f10x_tim.c STM32_LIBSRC+=stm32_lib/stm32f10x_usart.c #~ STM32_LIBSRC+=stm32_lib/stm32f10x_wwdg.c тАж SRC=hw_config.c main.c leds.c interrupts.c usb_desc.c usb_istr.c \ usb_prop.c usb_pwr.c onewire.c тАж #~ OBJ+=stm32f10x_bkp.o #~ OBJ+=stm32f10x_can.o #~ OBJ+=stm32f10x_cec.o #~ OBJ+=stm32f10x_crc.o #~ OBJ+=stm32f10x_dac.o #~ OBJ+=stm32f10x_dbgmcu.o OBJ+=stm32f10x_dma.o OBJ+=stm32f10x_exti.o #~ OBJ+=stm32f10x_flash.o #~ OBJ+=stm32f10x_fsmc.o OBJ+=stm32f10x_gpio.o #~ OBJ+=stm32f10x_i2c.o #~ OBJ+=stm32f10x_it.o #~ OBJ+=stm32f10x_iwdg.o #~ OBJ+=stm32f10x_pwr.o OBJ+=stm32f10x_rcc.o #~ OBJ+=stm32f10x_rtc.o #~ OBJ+=stm32f10x_sdio.o #~ OBJ+=stm32f10x_spi.o #~ OBJ+=stm32f10x_tim.o OBJ+=stm32f10x_usart.o #~ OBJ+=stm32f10x_wwdg.o 



рдХреЛрдб рд▓рд┐рдЦреЗ рдЬрд╛рдиреЗ рдХреЗ рдмрд╛рдж, рд░рди рдмрдирд╛рдПрдВред рдпрджрд┐ рд╕рдм рдХреБрдЫ рдХреНрд░рдо рдореЗрдВ рд╣реИ, рддреЛ $ (BIN) .рдмреАрди рдлрд╝рд╛рдЗрд▓ рд╡рд░реНрддрдорд╛рди рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рджрд┐рдЦрд╛рдИ рджреЗрдЧреА, рдЬрд┐рд╕реЗ рдЖрдкрдХреЛ USB рдлреНрд▓реИрд╢ рдбреНрд░рд╛рдЗрд╡ рдкрд░ рд▓рд┐рдЦрдирд╛ рд╣реЛрдЧрд╛ред рд░рд┐рдХреЙрд░реНрдбрд┐рдВрдЧ рдореЗрдХ рд▓реЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ: рдпрд╣ рдмрд┐рд▓реНрдб рд▓рдХреНрд╖реНрдп рдорд╛рдЗрдХреНрд░реЛ-рдХрдВрдЯреНрд░реЛрд▓рд░ рдХреЛ рдлреНрд▓реИрд╢ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╕ рд╕реНрдЯ-рдлреНрд▓реИрд╢ рдХрд╣рддрд╛ рд╣реИред

рдпреВрдПрд╕рдмреА


рддреЛ, рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдЖрдкрдХреЛ рдХрдВрдкреНрдпреВрдЯрд░ рдФрд░ рдкреАрд╕реА рдХреЗ рдмреАрдЪ рдПрдХ рдХрдиреЗрдХреНрд╢рди рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдпрд╣ рджреЗрдЦрддреЗ рд╣реБрдП рдХрд┐ рдЖрдзреБрдирд┐рдХ рдХрдВрдкреНрдпреВрдЯрд░ рдореЗрдВ RS-232 рдЕрдиреБрдкрд╕реНрдерд┐рдд рд╣реИ, рдореИрдВ USB рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдбрд┐рдмрдЧрд┐рдВрдЧ рд╕рдВрдЪрд╛рд░ рдХреА рд╡реНрдпрд╡рд╕реНрдерд╛ рдХрд░реВрдВрдЧрд╛ред рд╣рд╛рд▓рд╛рдВрдХрд┐, "рдпреБрджреНрдз рдХреА рд╕реНрдерд┐рддрд┐" рдореЗрдВ, рдПрдордХреЗрдПрд╕рдХреЗрдПрд╕ рдХреЛ рдПрдХ рдЕрдиреНрдп рдирд┐рдпрдВрддреНрд░рдХ рд╕реЗ RS-232 рдХрдорд╛рдВрдб рдкреНрд░рд╛рдкреНрдд рд╣реЛрдВрдЧреЗ, рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рддреБрд░рдВрдд USB <-> RS-232 рдПрдбрд╛рдкреНрдЯрд░ рдПрдореБрд▓реЗрдЯрд░ рдХреЗ рдЖрдпреЛрдЬрди рдХреА рджрд┐рд╢рд╛ рдореЗрдВ рджреЗрдЦрдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред рдпрд╣ рджреГрд╖реНрдЯрд┐рдХреЛрдг рднреА рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдХреЛ USB рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдбрд┐рд╡рд╛рдЗрд╕ рдХреЗ рд╕рд╛рде рдмрд╛рддрдЪреАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрддрд┐рд░рд┐рдХреНрдд рдХреЛрдб рд╕реЗ рдкрд░реЗрд╢рд╛рди рдирд╣реАрдВ рд╣реЛрдирд╛ рд╣реИ (рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рдкреНрд░рд╛рдердорд┐рдХ рд╣реИ, рд▓реЗрдХрд┐рди рдмрд╣реБрдд рдЖрд▓рд╕реА рд╣реИ!)ред рд╣рд╛рдВ, рдФрд░ рдбрд┐рдмрдЧрд┐рдВрдЧ рд╕рд░рд▓ рд╣реИ: рдХрд┐рд╕реА рднреА рд╕реАрд░рд┐рдпрд▓ рдЯрд░реНрдорд┐рдирд▓ рдПрдореБрд▓реЗрдЯрд░ рдФрд░ "рдХрдореНрдпреВрдирд┐рдХреЗрд╢рди" рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕реАрд░рд┐рдпрд▓ рдкреЛрд░реНрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рдбрд┐рд╡рд╛рдЗрд╕ / рджреЗрд╡ / ttyACM0 рдЦреЛрд▓реЗрдВред рд╣рд╛рдВ, рдкрд╣рд▓реЗ рдПрдХ рдЯрд░реНрдорд┐рдирд▓ рдПрдореБрд▓реЗрдЯрд░ рдХреЗ рд░реВрдк рдореЗрдВ (рдЕрдм рддрдХ рдХрдВрдкреНрдпреВрдЯрд░ рдХреА рддрд░рдл рдХреЛрдИ рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдирд╣реАрдВ рд╣реИ) рдореИрдВрдиреЗ рдЫреЛрдЯреЗ рд╕реНрддрд░ рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ред

рдпрд╣рд╛рдБ рд╕реЗ рдореИрдВрдиреЗ рдПрдореБрд▓реЗрдЯрд░ рдПрдбреЙрдкреНрдЯрд░ USB <-> RS-232 рдХреЗ рд▓рд┐рдП рдХреЛрдб рдбрд╛рдЙрдирд▓реЛрдб рдХрд┐рдпрд╛ред рдЪреВрдВрдХрд┐ рдореИрдВ рддреБрд░рдВрдд рджреВрд╕рд░реЗ рдкрдХреНрд╖ (RS-232) рдХреА рд╕рдВрдЪрд╛рд▓рди рдХреНрд╖рдорддрд╛ рдХреА рдЬрд╛рдВрдЪ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ (рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣реАрдВ рдирд╣реАрдВ рд╣реИ), рдЕрдкреНрд░рдпреБрдХреНрдд USART рдХреЛрдб рдХреА рдЕрд╕реНрдерд╛рдпреА рд░реВрдк рд╕реЗ рдЯрд┐рдкреНрдкрдгреА рдХреА рдЧрдИ рдереАред

USB рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, STMicroelectronics рдХреА рдПрдХ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрджрд┐ рдЖрдк рд╕реНрд╡рдпрдВ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рдХреЛрдб рдореЗрдВ рдирд╣реАрдВ рдЖрддреЗ рд╣реИрдВ, рддреЛ рд╕рдм рдХреБрдЫ рдмрд╣реБрдд рд╕рд░рд▓ рд╣реИ: рд╣рдореЗрдВ рдЕрдкрдиреЗ рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ (usb_desc [Ch] рдлрд╝рд╛рдЗрд▓реЛрдВ) рдХреЗ рд▓рд┐рдП рдбрд┐рд╕реНрдХреНрд░рд┐рдкреНрдЯрд░ рдХреЛ рдлрд┐рд░ рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рддрд╛рдХрд┐ рдХрдВрдкреНрдпреВрдЯрд░ рдЗрд╕реЗ USB <> RS-232 рдПрдбреЙрдкреНрдЯрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдкрд╣рдЪрд╛рдиреЗ рдФрд░ рдмрд╛рдзрд┐рдд рд╣реИрдВрдбрд▓рд░ рдХреЛ рдмрджрд▓ рд╕рдХреЗред рдпреВрдПрд╕рдмреА рдЗрд╡реЗрдВрдЯ (рдХрдо рд╕реЗ рдХрдо - рдкреНрд░рд╛рдкреНрдд рдбреЗрдЯрд╛ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░реЗрдВ, рдФрд░ рдПрдХ рдПрдбреЗрдкреНрдЯрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдкрд╛рд░рджрд░реНрд╢реА рд╕рдВрдЪрд╛рд▓рди рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдпреВрдПрд╕рдмреА рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╡рд╣рд╛рдВ рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдбреЗрдЯрд╛ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдпреВрдПрд╕рдПрдЖрд░рдЯреА рдЗрдВрдЯрд░рдкреНрдЯ рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ рдХреЛ рднреА рдЬреЛрдбрд╝рдирд╛ рд╣реЛрдЧрд╛)ред

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

рдЪреВрдВрдХрд┐ рдХреБрдЫ рдХрдорд╛рдВрдб (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, 1-рд╡рд╛рдпрд░ рд╕реЗрдВрд╕рд░ рд╕реЗ рддрд╛рдкрдорд╛рди рдкрдврд╝рдирд╛) рдореЗрдВ рдХрд╛рдлреА рд▓рдВрдмрд╛ рд╕рдордп рд▓рдЧрддрд╛ рд╣реИ, рдпреВрдПрд╕рдмреА рдХрдорд╛рдВрдб рдХреЗ рд▓рд┐рдП рд╣реИрдВрдбрд▓рд░ рдХреЗрд╡рд▓ рдРрд╕реЗ рдСрдкрд░реЗрд╢рди рдХреЗ рд▓рд┐рдП рдЭрдВрдбреЗ рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдореБрдЦреНрдп рд▓реВрдк рдореЗрдВ рдореБрдЦреНрдп () рдЗрди рдЭрдВрдбреЛрдВ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рддрд╛ рд╣реИред рд╕рдВрдЪрд╛рд▓рди рдЬреЛ рдЬрд▓реНрджреА рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (рдПрд▓рдИрдбреА рдХреЗ рд╕рд╛рде рдХрд╛рдо) рд╕реАрдзреЗ рдЗрд╕ рдлрд╝рдВрдХреНрд╢рди рд╕реЗ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рдбреАрдмрдЧрд┐рдВрдЧ рдЙрджреНрджреЗрд╢реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рдЗрд╕реЗ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рдбрд┐рдХреНрд░рд┐рдкреНрд╢рди рдХреЗ рд░реВрдк рдореЗрдВ рдХрдорд╛рдВрдбреЛрдВ рдореЗрдВ "рдЗрдХреЛ" рдЬреЛрдбрд╝рд╛:
рдХреЛрдб
 void usb_handle_command(uint16_t cnt){ uint8_t command, *answer; uint16_t i; for(i = 0; i < cnt; i++){ command = USB_Rx_Buffer[i]; switch(command){ case CMD_LED_ON: LED_On(); answer = (uint8_t*)"On"; break; case CMD_LED_OFF: LED_Off(); answer = (uint8_t*)"Off"; break; case CMD_LED_BLINK: LED_OnBlink(); answer = (uint8_t*)"Blk"; break; case CMD_LED_DUTY_PLUS: LED_DutyPlus(); answer = (uint8_t*)"Shn"; break; case CMD_LED_DUTY_MINUS: LED_DutyMinus(); answer = (uint8_t*)"Fad"; break; case CMD_1W_GET_TEMP: FLAGS |= FLAG_READ_T; answer = (uint8_t*)"Read T"; break; case CMD_1W_GET_DEV: FLAGS |= FLAG_GETDEV; answer = (uint8_t*)"find devices"; break; case CMD_1W_PRNT_DEV: FLAGS |= FLAG_PRINTDEV; answer = (uint8_t*)"Print devices"; break; case CMD_HALL_GET: FLAGS |= FLAG_PRINTHALL; answer = (uint8_t*)"Print Hall"; break; case CMD_ADC_GET: FLAGS |= FLAG_PRINTADC; answer = (uint8_t*)"Print ADC val"; break; default: answer = (uint8_t*)"Unk"; } newline(); prnt(answer); newline(); } } 


рдпрд╣реА рд╣реИ, рдЕрдм рдЬрдм рдЖрдк рдмреНрд░реЗрдбрдмреЛрд░реНрдб рдореЙрдбрд▓ рдХреЛ USB рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрдВрдкреНрдпреВрдЯрд░ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рддреЗ рд╣реИрдВ (рдФрд░ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдпрд╣ рд╣рдореЗрд╢рд╛ рдореЗрд░реЗ рд╕рд╛рде рдЬреБрдбрд╝рд╛ рд╣реЛрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ USB рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕рдВрдЪрд╛рд▓рд┐рдд рд╣реЛрддрд╛ рд╣реИ), рдбрд┐рд╡рд╛рдЗрд╕ / dev / ttyACM0 рдкреНрд░рдХрдЯ рд╣реЛрддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рдЖрдк рдПрдХ рдирд┐рдпрдорд┐рдд рд╕реАрд░рд┐рдпрд▓ рдкреЛрд░реНрдЯ рдХреА рддрд░рд╣ рдХрд╛рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЗрд╕реЗ рдПрдХ рд╕реАрд░рд┐рдпрд▓ рдЯрд░реНрдорд┐рдирд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЦреЛрд▓реЗрдВ (рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВрдиреЗ рдКрдкрд░ рдХрд╣рд╛ рдерд╛, рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ рдореИрдВ рдЫреЛрдЯреЗ рдЕрдХреНрд╖рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ)ред

рдПрд▓рдИрдбреА рдмрдЯрди


рд╕рдВрднрд╡рддрдГ, рдпрд╣ рд▓реЛрд╣реЗ рдХреЗ рдХреБрдЫ рдирдП рдЯреБрдХрдбрд╝реЗ рдХреЗ рдЕрдзреНрдпрдпрди рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ "рдбрд╛рдпреЛрдб рдХреЗ рд╕рд╛рде рдкрд▓рдХ" рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд╛рд░рдВрдкрд░рд┐рдХ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдВ рдРрд╕рд╛ рд╣реА рдХрд░реВрдВрдЧрд╛ред рдФрд░ рдЙрд╕реА рд╕рдордп рдореИрдВ "рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдмрдЯрди" рдкрд░ рдПрдХ рдмрд╛рдзрд╛ рдХреЛ рд▓рдЯрдХрд╛рдКрдВрдЧрд╛, рдЬреЛ рдПрд▓рдИрдбреА рдХреЗ рдСрдкрд░реЗрдЯрд┐рдВрдЧ рдореЛрдб рдХреЛ рдмрджрд▓ рджреЗрдЧрд╛ред

рдмрд╕ рдмреНрд▓рд┐рдВрдХрд┐рдВрдЧ рджрд┐рд▓рдЪрд╕реНрдк рдирд╣реАрдВ рд╣реИ: рдЪрдордХ рдХреЛ рдмрджрд▓рдирд╛ рджрд┐рд▓рдЪрд╕реНрдк рд╣реИред рдЗрд╕рдХреЗ рд▓рд┐рдП, рдПрдХ рд╕рд░рд▓ "рд╕реЙрдлреНрдЯ" PWM рдкрд░реНрдпрд╛рдкреНрдд рд╣реИред 10 ╬╝s рдХреА рдЕрд╡рдзрд┐ рдХреЗ рд▓рд┐рдП SysTick рдЯрд╛рдЗрдорд░ рд╕реЗрдЯ рдХрд░реЗрдВред рд╣рдо рджреЛ рдХрд╛рдЙрдВрдЯрд░ рд╢реБрд░реВ рдХрд░реЗрдВрдЧреЗ: рдПрдХ рдЙрд╕ рдЯрд┐рдХ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЗ рд▓рд┐рдП рдЬрд┐рд╕ рдкрд░ рдПрд▓рдИрдбреА рдЪрд╛рд▓реВ рд╣реИ, рдФрд░ рджреВрд╕рд░реА рдЯрд┐рдХ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЗ рд▓рд┐рдП рдЬрд┐рд╕рдХреЗ рджреМрд░рд╛рди рдПрд▓рдИрдбреА рдмрдВрдж рд╣реИред рдПрд▓рдИрдбреА рдХреА рдЪрдордХ рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рдкреАрдбрдмреНрд▓реВрдПрдо рдбреНрдпреВрдЯреА рдЪрдХреНрд░ рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд░рд▓ рдЖрда-рд╕реНрддрд░реАрдп рдпреЛрдЬрдирд╛ рдмрдирд╛рдИред
рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛:
рдХреЛрдб
 uint8_t LED_GetState(){ return led_state; } void LED_Duty(uint8_t duty){ duty_cycle = duty; if(led_state == LEDSTATE_BLINK) LED_OnBlink(); } void LED_DutyPlus(){ if(duty_cycle < 7) duty_cycle++; if(led_state == LEDSTATE_BLINK) LED_OnBlink(); } void LED_DutyMinus(){ if(duty_cycle > 0) duty_cycle--; if(led_state == LEDSTATE_BLINK) LED_OnBlink(); } uint8_t LED_GetBlinkState(uint16_t *blink_on, uint16_t *blink_off){ *blink_on = led_blink_on; *blink_off = led_blink_off; return led_state; } void LED_On(){ led_state = LEDSTATE_ON; led_blink_on = 0; led_blink_off = 0; GPIO_ResetBits(GPIOC, GPIO_Pin_12); } void LED_Off(){ led_state = LEDSTATE_OFF; GPIO_SetBits(GPIOC, GPIO_Pin_12); } void LED_OnBlink(){ led_blink_off = 1 << duty_cycle; led_blink_on = 0xff - led_blink_off; led_ticks_on = 0; led_ticks_off = 0; if(led_blink_off == 0){ LED_On(); return; } if(led_blink_on == 0) { LED_Off(); return; } led_state = LEDSTATE_BLINK; } void LED_SysTick_Handler(){ if(led_state != LEDSTATE_BLINK) return; if(led_ticks_on == 0) GPIO_SetBits(GPIOC, GPIO_Pin_12); if(led_ticks_on <= led_blink_on) { led_ticks_on++; return; } if (led_ticks_off == 0){ GPIO_ResetBits(GPIOC, GPIO_Pin_12); } if(led_ticks_off <= led_blink_off){ led_ticks_off++; return; } led_ticks_on = 0; led_ticks_off = 0; } 


"рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдмрдЯрди" рдкрд░ рдореИрдВрдиреЗ рдПрдХ рдмрд╛рд╣рд░реА рд░реБрдХрд╛рд╡рдЯ рдбрд╛рд▓реА:
рдХреЛрдб
  // Enable the BUTTON Clock RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE); RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE); // Configure Button pin as input GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING; GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz; GPIO_Init(GPIOA, &GPIO_InitStructure); // Connect Button EXTI Line to Button GPIO Pin GPIO_EXTILineConfig(GPIO_PortSourceGPIOA, GPIO_PinSource0); // Configure Button EXTI line EXTI_InitStructure.EXTI_Line = EXTI_Line0; EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt; EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Rising; EXTI_InitStructure.EXTI_LineCmd = ENABLE; EXTI_Init(&EXTI_InitStructure); // Enable and set Button EXTI Interrupt to the lowest priority NVIC_InitStructure.NVIC_IRQChannel = EXTI0_IRQn; NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0x0F; NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0x0F; NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; NVIC_Init(&NVIC_InitStructure); 

рдФрд░ рдЗрд╕рдХрд╛ рд╣реИрдВрдбрд▓рд░ рдЗрд╕ рддрдереНрдп рдореЗрдВ рд▓рдЧрд╛ рд╣реБрдЖ рд╣реИ рдХрд┐ рдпрд╣ рдирд┐рд░рдВрддрд░ рдкреНрд░рдХрд╛рд╢ рдореЛрдб рдореЗрдВ рдПрд▓рдИрдбреА рдХреЛ рд░рдЦрддрд╛ рд╣реИ рдпрджрд┐ рдпрд╣ "рдмреНрд▓рд┐рдВрдХ", рдпрд╛ рдЗрд╕рдХреЗ рд╡рд┐рдкрд░реАрдд - "рдмреНрд▓рд┐рдВрдХ" рдореЛрдб рдореЗрдВ рдЕрдЧрд░ рдпрд╣ рдЬрд▓рд╛рдпрд╛ рдЧрдпрд╛ рдерд╛:
рдХреЛрдб
 void EXTI0_IRQHandler(void){ if(EXTI_GetITStatus(EXTI_Line0) != RESET){ if(LED_GetState() != LEDSTATE_BLINK) LED_OnBlink(); else LED_On(); EXTI_ClearITPendingBit(EXTI_Line0); } } 


1-рддрд╛рд░


рдореИрдВрдиреЗ easyelectronics.ru рд╕реЗ рдХрд╣реАрдВ рд╕реЗ 1-рддрд╛рд░ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдб рдЪреБрд░рд╛ рд▓рд┐рдпрд╛ред рдореИрдВрдиреЗ рдЗрд╕реЗ рдХрд╛рдлреА рдмрджрд▓ рджрд┐рдпрд╛ред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдореИрдВрдиреЗ рдмрд╕ рдкрд░ рд▓рдЯрдХрдиреЗ рд╡рд╛рд▓реЗ рдЙрдкрдХрд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП рдЦреЛрдЬ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдмрджрд▓ рджрд┐рдпрд╛ (рдХрд┐рд╕реА рдХрд╛рд░рдг рд╕реЗ, рдпрд╣ рдореВрд▓ рдореЗрдВ рдХрд╛рдо рдирд╣реАрдВ рдХрд┐рдпрд╛, рд╣рд╛рд▓рд╛рдВрдХрд┐ рддрд░реНрдХ рдХрд╛рдлреА рд╕реНрдкрд╖реНрдЯ рдФрд░ рд╕рд╣реА рд▓рдЧ рд░рд╣рд╛ рдерд╛)ред

рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рдореИрдВрдиреЗ рдЪреБрд░рд╛ рд▓рд┐рдпрд╛, 1-рддрд╛рд░ рдиреЗ USART рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрд╛рдо рдХрд┐рдпрд╛, рдФрд░ рдбреАрдПрдордП рдХрд╛ рдЙрдкрдпреЛрдЧ рдкрдврд╝рдиреЗ / рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЧрдпрд╛ред рдореБрдЭреЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдпрд╣ рд╡рд┐рдЪрд╛рд░ рдкрд╕рдВрдж рдЖрдпрд╛, рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдЗрд╕реЗ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ (рд╣рд╛рд▓рд╛рдВрдХрд┐ 1-рд╡рд╛рдпрд░ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХреЛ рднреА рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░рдирд╛ рд╕рдВрднрд╡ рдерд╛)ред

1-рддрд╛рд░ рдмрд╕ рдХреЛ рдПрдХ рд╕реАрд░рд┐рдпрд▓ рдкреЛрд░реНрдЯ рд╕реЗ рдЬреЛрдбрд╝рдиреЗ рдХреА рдорд╛рдирдХ рдпреЛрдЬрдирд╛ рд╕реЗ рддрд╛рддреНрдкрд░реНрдп рд╢реЛрдЯреНрд╕реНрдХреА рдбрд╛рдпреЛрдб рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рд╕реЗ рд╣реИ:

рд╣рд╛рд▓рд╛рдВрдХрд┐, рдореЗрд░реЗ рдкрд╛рд╕ рдРрд╕рд╛ рдХреЛрдИ рдбрд╛рдпреЛрдб рдирд╣реАрдВ рдерд╛ред рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдПрд╣рд╕рд╛рд╕ рд╣реБрдЖ рдХрд┐ рдкреБрд╢-рдкреБрд▓ рдореЛрдб рдХреЗ рдЕрд▓рд╛рд╡рд╛, USART_TX рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рдкреИрд░ рдХреЛ рдУрдкрди-рдбреНрд░реЗрди рдореЛрдб рдореЗрдВ рд╕реНрд╡рд┐рдЪ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ - рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдХреЛрдИ рд╢реЙрд░реНрдЯ рд╕рд░реНрдХрд┐рдЯ рдирд╣реАрдВ рд╣реЛрдЧрд╛ред 1-рддрд╛рд░ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ USART3 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ (рдЬрдмрдХрд┐ рдореИрдВ рдЦреЗрд▓рддрд╛ рд╣реВрдВ, рдореЗрд░реЗ рдкрд╛рд╕ рдкрд░реНрдпрд╛рдкреНрдд рдкреИрд░ рд╣реИрдВ - рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рд╣рдЯрд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ)ред рдЖрд░реЗрдЦ рдореЗрдВ, рдореИрдВрдиреЗ рджреЗрдЦрд╛ рдХрд┐ USART3 (PB10 рдФрд░ PB11) рдХреЗ рдкреИрд░ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА 10k so рдкреНрд░рддрд┐рд░реЛрдзреЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЬрдореАрди рдкрд░ рдЦреАрдВрдЪ рд▓рд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рд░реЛрдХрдиреЗ рд╡рд╛рд▓реЗ рдХреЛ рднреА рдирд╣реАрдВ рд╕реБрд▓рдЭрд╛рдирд╛ рдкрдбрд╝рддрд╛ рд╣реИ: рдореИрдВрдиреЗ рддрд╛рдкрдорд╛рди рд╕реЗрдВрд╕рд░ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдмреНрд░реЗрдбрдмреЛрд░реНрдб рдкрд░ рд╕реЙрдХреЗрдЯ рдХреЗ рд╕рд╛рде рдПрдХ рдЫреЛрдЯрд╛ рд╕рд╛ рд╕реЛрд▓реНрдбрд░ рд▓рдЧрд╛рдпрд╛ред

рдореИрдВ onewire.c рдлрд╝рд╛рдЗрд▓ рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рд╡рд░реНрдгрди рдирд╣реАрдВ рдХрд░реВрдВрдЧрд╛: рдпрд╣ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдХрдИ рдмрд╛рд░ рдореЗрд░реЗ рд╕рд╛рде рдХрд┐рдпрд╛ рдЬрд╛ рдЪреБрдХрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВ рдХреЗрд╡рд▓ рд╕реАрдзреЗ рдерд░реНрдорд╛рдореАрдЯрд░ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдкрд░ рд╕реНрдкрд░реНрд╢ рдХрд░реВрдВрдЧрд╛ред

рдбрд┐рд╡рд╛рдЗрд╕ рдХреЗ рдЧрд░реНрдо (-50 рдбрд┐рдЧреНрд░реА рд╕реЗрд▓реНрд╕рд┐рдпрд╕) рднрд╛рдЧреЛрдВ рдХреЗ рддрд╛рдкрдорд╛рди рдХреА рдирд┐рдЧрд░рд╛рдиреА рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рд╕рд░рд▓ рдбреАрдПрд╕ 18 рдПрд╕ 20 рд╕реЗрдВрд╕рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ рд╣реИ (рдХрд╣рд╛ рдЧрдпрд╛ рдорд╛рдк рд╕рдЯреАрдХрддрд╛ 0.5 рдбрд┐рдЧреНрд░реА рд╕реЗрд▓реНрд╕рд┐рдпрд╕ рд╕реЗ рднреА рдмрджрддрд░ рдирд╣реАрдВ рд╣реИ)ред рдореИрдВрдиреЗ рдЖрд╡рд╢реНрдпрдХ рдирд┐рд╖реНрдХрд░реНрд╖ рдкрд░ рдмреНрд░реЗрдбрдмреЛрд░реНрдб рдХреЛ рд╕реЙрдХреЗрдЯ рдХрд┐рдП рдЧрдП рд╕реЙрдХреЗрдЯ рд╕реЗ рдЬреЛрдбрд╝рд╛, рддрд╛рдХрд┐ рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ рдерд░реНрдорд╛рдореАрдЯрд░ рдХреЗ рдПрдХ рдЬреЛрдбрд╝реЗ рдХреЛ рдПрдорд╕реА рд╕реЗ рдЬреЛрдбрд╝рд╛ рдЬрд╛ рд╕рдХреЗред

рдпрд╣рд╛рдБ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдерд░реНрдорд╛рдореАрдЯрд░ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдкрд░ рдореБрдЭреЗ рдХреНрдпрд╛ рдорд┐рд▓реЗрдЧрд╛
рдХреЛрдб
 com /dev/ttyACM0 Ca exit, Cx modem lines status [STATUS]: RTS CTS DTR //  'c' : find devices Found 2 devices //  'p' : Print devices device 0: 0x10 0x7c 0xee 0x8f 0x02 0x08 0x00 0x1c device 1: 0x10 0xad 0xbc 0x8f 0x02 0x08 0x00 0xf9 //  't' : Read T Device 0: 0x3b 0x00 0x4b 0x46 0xff 0xff 0x08 0x10 0x39 Device 1: 0x3a 0x00 0x4b 0x46 0xff 0xff 0x0c 0x10 0x41 


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

рдЗрд╕ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ, рд╕реЗрдВрд╕рд░ рд╣реА рдЧрд░реНрдо рд╣реЛрддрд╛ рд╣реИ, рдЬреЛ рдорд╛рдк рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, рдЕрдХреНрд╕рд░ рдЙрдирд╕реЗ рдкреВрдЫрддрд╛рдЫ рди рдХрд░реЗрдВред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╕реЗрдВрд╕рд░ рдХреА рд░реАрдбрд┐рдВрдЧ рдПрдХ-рджреВрд╕рд░реЗ рд╕реЗ рдбреЗрдврд╝ рдбрд┐рдЧреНрд░реА рддрдХ рднрд┐рдиреНрди рд╣реЛрддреА рд╣реИ! рдпрд╣ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП: рдпрджрд┐ рдЖрдк рдЗрд╕ рддрд░рд╣ рд╕реЗ рдХрдИ рд╕реЗрдВрд╕рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛рддреЗ рд╣реИрдВ рдЬреИрд╕реЗ рдХрд┐ 0.5 ┬░ C рд╕реЗ рдЕрдзрд┐рдХ рдХреА рд╕рдЯреАрдХрддрд╛ рдХреЗ рд╕рд╛рде рдХрд┐рд╕реА рдЪреАрдЬ рдХреЗ рд╡рд░реНрдЧреЛрдВ рдХреЗ рдмреАрдЪ рддрд╛рдкрдорд╛рди рдХреЗ рдЕрдВрддрд░ рдХреЛ рдореЙрдирд┐рдЯрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдкрд╣рд▓реЗ рд╕рднреА рд╕реЗрдВрд╕рд░ рдХреЛ рдХреИрд▓рд┐рдмреНрд░реЗрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдФрд░ рдЕрдВрд╢рд╛рдВрдХрди рд╕реВрддреНрд░реЛрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рд░реАрдбрд┐рдВрдЧ рд▓реЗрдВ, рди рдХрд┐ рд╕реЗрдВрд╕рд░ рдХреА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ред

рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕реЗрдВрд╕рд░ рдХреА рддреНрд░реБрдЯрд┐ рдХрднреА-рдХрднреА 0.5 ┬░ C рд╕реЗ рдЕрдзрд┐рдХ рд╣реЛ рдЬрд╛рддреА рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рдорд╛рди рд▓реЗрдирд╛ рдмреЗрд╣рддрд░ рд╣реИ рдХрд┐ рд╕реЗрдВрд╕рд░ рдХреА рд╕рдЯреАрдХрддрд╛ 1 ┬░ C рд╣реИред

рд╣реЙрд▓ рд╕реЗрдВрд╕рд░


рдореЗрд░реЗ рдкрд╛рд╕ рдПрдирд╛рд▓реЙрдЧ рд╣реЙрд▓ рд╕реЗрдВрд╕рд░ рд╣реИрдВ - SS495Aред рд╕реЗрдВрд╕рд░ рдХреЗ рд╕реНрдкреЗрд╕рд┐рдлрд┐рдХреЗрд╢рди рдЗрдВрдЯрд░рдиреЗрдЯ рдкрд░ рджреЗрдЦреЗ рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВред рдореИрдВ рдХреЗрд╡рд▓ рдпрд╣ рдХрд╣ рд╕рдХрддрд╛ рд╣реВрдВ рдХрд┐ рдЗрд╕рдХреЗ рдЖрдЙрдЯрдкреБрдЯ рд▓реЗрдЧ рдкрд░ рд╕рд╛рдорд╛рдиреНрдп рд╕реНрдерд┐рддрд┐ рдореЗрдВ рд╡реЛрд▓реНрдЯреЗрдЬ рд▓рдЧрднрдЧ 2.5 V (рддрд╛рд░реНрдХрд┐рдХ рдЗрдХрд╛рдИ STM32) рд╣реИ, рдмрд╛рд╣рд░реА рдЪреБрдВрдмрдХреАрдп рдХреНрд╖реЗрддреНрд░ рдХреА рдзреНрд░реБрд╡рддрд╛ рдФрд░ рдкрд░рд┐рдорд╛рдг рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рдпрд╣ 0..5 V рдХреЗ рднреАрддрд░ рдЗрд╕рдХреА рд░реАрдбрд┐рдВрдЧ рдХреЛ рдмрджрд▓ рджреЗрдЧрд╛ред рдпрд╣ рджреЗрдЦрддреЗ рд╣реБрдП рдХрд┐ рдЖрдЙрдЯрдкреБрдЯ рд╡реЛрд▓реНрдЯреЗрдЬ рдкрд╛рдВрдЪ рд╡реЛрд▓реНрдЯ рддрдХ рдкрд╣реБрдВрдЪ рд╕рдХрддрд╛ рд╣реИ, рдпрд╣ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реИ, рд▓реЗрдХрд┐рди "рдкрд╛рдВрдЪ-рд╡реЛрд▓реНрдЯ" (рд╡рд┐рдирд┐рд░реНрджреЗрд╢ рдореЗрдВ рдПрдлрдЖрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдирд╛рдорд┐рдд) рдирд┐рдпрдВрддреНрд░рдХ рдЗрдирдкреБрдЯред

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

рдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рдПрдХ рд╕реЗрдВрд╕рд░ рдХреЛ рдмреНрд░реЗрдбрдмреЛрд░реНрдб рдкрд░ рдорд┐рд▓рд╛рдпрд╛ред рдЙрдиреНрд╣реЛрдВрдиреЗ рдкрд╛рд╡рд░ рдХреЛ 5 рд╡реА рд╕реЗ рдЬреЛрдбрд╝рд╛, рдФрд░ рд╕рд┐рдЧреНрдирд▓ рдЖрдЙрдЯрдкреБрдЯ рдкреАрд╕реА 10 рдкреЛрд░реНрдЯ рдХреЗ рд▓рд┐рдП рдиреЗрддреГрддреНрд╡ рдХрд┐рдпрд╛, рдЬреЛ рдХрд┐ 5 рд╡реА рдкрд░ рд▓рд╛рдЧреВ рд╣реЛрдиреЗ рдкрд░ рдЬрд▓рд╛ рдирд╣реАрдВ рдЬрд╛рдПрдЧрд╛ред рдкреЛрд░реНрдЯ рдХреЛ рд▓рдЧрд╛рддрд╛рд░ рдирд╣реАрдВ рдЦреАрдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рдЙрд╕ рдкрд░ рдПрдХ рдмрдЯрди рджрдмрд╛рдпрд╛ (рдмрдЯрди рдХреЗ рд╕рдорд╛рди)ред рдЗрдВрдЯрд░рдкреНрдЯ рд╣реИрдВрдбрд▓рд░ рдмрд╕ рд╕рдВрдмрдВрдзрд┐рдд рдзреНрд╡рдЬ рдХреЛ рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдореБрдЦреНрдп рд▓реВрдк рдореЗрдВ, рдпрджрд┐ рдпрд╣ рдзреНрд╡рдЬ рд╕реЗрдЯ рд╣реИ (рдЕрд░реНрдерд╛рдд, рдЪреБрдВрдмрдХ рдпрд╛ рддреЛ рджрд┐рдЦрд╛рдИ рджрд┐рдпрд╛ рдпрд╛ рд╕реЗрдВрд╕рд░ рдХреЗ "рдлрд╝реАрд▓реНрдб рдСрдлрд╝ рд╡реНрдпреВ") рдХреЛ рдЫреЛрдбрд╝ рджреЗрддрд╛ рд╣реИ, рд╣рдо рдЬрд╛рдБрдЪрддреЗ рд╣реИрдВ рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ PC10 рд╣реИред рдпрджрд┐ рд╢реВрдиреНрдп (рд╡рд╣рд╛рдБ рд╕рд╛рдВрд╕рдж рд╣реИ), рдЯрд░реНрдорд┐рдирд▓ "рдЪреБрдВрдмрдХ" рдкрд░ рд▓рд┐рдЦреЗрдВ, рдЕрдиреНрдпрдерд╛ рд╣рдо "рд╕реНрдкрд╖реНрдЯ" рд▓рд┐рдЦрддреЗ рд╣реИрдВред рдпрджрд┐ рдЖрдк рдЯрд░реНрдорд┐рдирд▓ рдореЗрдВ "h" рджрдмрд╛рдХрд░ рд╕реЗрдВрд╕рд░ рд▓рдЧрд╛рддреЗ рд╣реИрдВ рдпрд╛ рдирд╣реАрдВ, рдпрд╣ рднреА рдЬрд╛рдВрдЪ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдПрдбреАрд╕реА


"рдЧрд░реНрдо рдХреНрд╖реЗрддреНрд░реЛрдВ" рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдореБрдЭреЗ рдЕрднреА рднреА рдардВрдб рдореЗрдВ рддрд╛рдкрдорд╛рди (рдКрдкрд░ рд╕реЗ 75K рддрдХ) рдХреЛ рдорд╛рдкрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред рдЗрд╕рдХреЗ рд▓рд┐рдП, ADG506A рдПрдирд╛рд▓реЙрдЧ рд╕реНрд╡рд┐рдЪ рд╕реЗ рдЬреБрдбрд╝реЗ рдкреНрд▓реИрдЯрд┐рдирдо рдерд░реНрдорд┐рд╕реНрдЯрд░реНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдареАрдХ рд╣реИ, рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рдореИрдВ рд╕реЛрдЪ рд░рд╣рд╛ рдерд╛ рдХрд┐ "рджреЗрд╢реА" рдПрдордПрд╕рд╕реА рдХрдирд╡рд░реНрдЯрд░ рдХрд┐рддрдирд╛ рдмреБрд░рд╛ рд╣реИ: рдХреНрдпрд╛ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рддрд╛рдкрдорд╛рди рдХреЛ рдорд╛рдкрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ?

ADC рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ STM32 рдЙрджрд╛рд╣рд░рдг рднрд░реЗ рд╣реБрдП рд╣реИрдВ, рдореИрдВрдиреЗ STDPeriphLib рд╕реЗ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд▓рд┐рдпрд╛ред рд╣рдо рдирд┐рд░рдВрддрд░ рд░реВрдкрд╛рдВрддрд░рдг рдореЛрдб рдореЗрдВ рдПрдбреАрд╕реА рдХреЛ рдЪрд▓рд╛рдПрдВрдЧреЗ, рдФрд░ рдкрд░рд┐рдгрд╛рдо рдбреАрдПрдордП рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдореЗрдореЛрд░реА рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдореИрдВрдиреЗ рд░реВрдкрд╛рдВрддрд░рдг рдХрд╛ рд╕рдордп рд╕рдмрд╕реЗ рдмрдбрд╝рд╛ (рдЕрдзрд┐рдХ рд╕рдЯреАрдХ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП) рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рд╣реИ, рдФрд░ рдХреБрдЫ рд╕рдордп рдХреЗ рд▓рд┐рдП рдореИрдВ ADC рдЗрдирдкреБрдЯ PB0 (ADC8) рд▓рдЯрдХрд╛рдКрдВрдЧрд╛:
рдХреЛрдб
  // 0. Configure ADC8 (PB0) as analog input (clocking GPIOB sat on in onewire.c) RCC_ADCCLKConfig(RCC_PCLK2_Div4); RCC_AHBPeriphClockCmd(RCC_AHBPeriph_DMA1, ENABLE); RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC1 | RCC_APB2Periph_GPIOB, ENABLE); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AIN; GPIO_Init(GPIOB, &GPIO_InitStructure); // 1. DMA for converted value (DMA1 clocking sat on at onewire.c) //RCC_AHBPeriphClockCmd(RCC_AHBPeriph_DMA1, ENABLE); DMA_DeInit(DMA1_Channel1); DMA_InitStructure.DMA_PeripheralBaseAddr = ADC1_DR_Address; DMA_InitStructure.DMA_MemoryBaseAddr = (uint32_t)&ADC_value; DMA_InitStructure.DMA_DIR = DMA_DIR_PeripheralSRC; DMA_InitStructure.DMA_BufferSize = 1; DMA_InitStructure.DMA_PeripheralInc = DMA_PeripheralInc_Disable; DMA_InitStructure.DMA_MemoryInc = DMA_MemoryInc_Disable; DMA_InitStructure.DMA_PeripheralDataSize = DMA_PeripheralDataSize_HalfWord; DMA_InitStructure.DMA_MemoryDataSize = DMA_MemoryDataSize_HalfWord; DMA_InitStructure.DMA_Mode = DMA_Mode_Circular; DMA_InitStructure.DMA_Priority = DMA_Priority_High; DMA_InitStructure.DMA_M2M = DMA_M2M_Disable; DMA_Init(DMA1_Channel1, &DMA_InitStructure); DMA_Cmd(DMA1_Channel1, ENABLE); // 2. ADC1 config ADC_InitStructure.ADC_Mode = ADC_Mode_Independent; ADC_InitStructure.ADC_ScanConvMode = ENABLE; ADC_InitStructure.ADC_ContinuousConvMode = ENABLE; ADC_InitStructure.ADC_ExternalTrigConv = ADC_ExternalTrigConv_None; ADC_InitStructure.ADC_DataAlign = ADC_DataAlign_Right; ADC_InitStructure.ADC_NbrOfChannel = 1; ADC_Init(ADC1, &ADC_InitStructure); // Connect ADC to ADC8 (PB0), ADC_RegularChannelConfig(ADC1, ADC_Channel_8, 1, ADC_SampleTime_239Cycles5); // Enable ADC1 DMA ADC_DMACmd(ADC1, ENABLE); ADC_Cmd(ADC1, ENABLE); // Calibration of ADC1 ADC_ResetCalibration(ADC1); while(ADC_GetResetCalibrationStatus(ADC1)); ADC_StartCalibration(ADC1); while(ADC_GetCalibrationStatus(ADC1)); ADC_SoftwareStartConvCmd(ADC1, ENABLE); // turn conversion on 


рд╕реНрд╡рд┐рдЪ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдирд┐рдпрдВрддреНрд░рдг рдмрдВрджрд░рдЧрд╛рд╣ рдХреЗ рдкрд╛рдВрдЪ рдмрд┐рдЯреНрд╕ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдмрд┐рдЯ рд░реВрдкрд╛рдВрддрд░рдг рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЪрд┐рдВрддрд╛ рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рдкрддреЗ рдХреЗ рд░реВрдк рдореЗрдВ рдкреЛрд░реНрдЯ рд╕реА рдХреЗ рдкрд╣рд▓реЗ рдЪрд╛рд░ рдмрд┐рдЯреНрд╕ рдФрд░ рд╕реНрд╡рд┐рдЪ рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд░рдиреЗ рд╡рд╛рд▓реА рдХреБрдВрдЬреА рдХреЗ рд░реВрдк рдореЗрдВ рдкрд╛рдВрдЪрд╡рд╛рдВ рдмрд┐рдЯ рд▓рд┐рдпрд╛:
рдХреЛрдб
  GPIO_InitStructure.GPIO_Pin = 0x1f; // first 5 bits of PC0 // PC0..PC3 - analog channel address, PC4 - analog enable switch GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; GPIO_Init(GPIOC, &GPIO_InitStructure); 


рдпрд╣рд╛рдВ рдХреЛрдИ рд░реБрдХрд╛рд╡рдЯ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрдВрдЯрд░рдкреНрдЯреНрд╕ред рд╕реАред рд╕реАред рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдЖрдкрдХреЛ рдПрдХ рдХрдорд╛рдВрдб (рдЬрдм, рдХрдорд╛рдВрдб 'рдП') рд╕реЗрдВрд╕рд░ рдкрд░ рд╡реЛрд▓реНрдЯреЗрдЬ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИ, рддреЛ рдПрдХ рдирдП рдЭрдВрдбреЗ рдХреА рд╕реЗрдЯрд┐рдВрдЧ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдореБрдЦреНрдп () рдореЗрдВ, рдЗрд╕ рдзреНрд╡рдЬ рдХреЗ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рдЬреЛрдбрд╝реЗрдВ:
рдХреЛрдб
 inline void prntADC(){ uint32_t address; // addr = 0, EN = 1 uint8_t *_2b = (uint8_t *) &ADC_value; for(address = 0x10; address < 0x20; address++){ // changhe channel address & turn on switch GPIOC->BSRR = address; Delay(2); // wait for AD conversion prnt((uint8_t*)"Temperature "); printInt(address&0x0f); prnt((uint8_t*)" = "); printInt(_2b[1]); printInt(_2b[0]); newline(); // turn off switch & reset bits GPIOC->BRR = (uint32_t)0x1f; Delay(2); } } 

рдЬрдм рдХреЛрдИ рдЖрджреЗрд╢ рд▓реВрдк рдореЗрдВ рдЖрддрд╛ рд╣реИ, рддреЛ рд╣рдо рд╕реНрд╡рд┐рдЪ рдкрд░ рд╡рд╛рдВрдЫрд┐рдд рдкрддрд╛ рд╕реЗрдЯ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ, рдПрдбреАрд╕реА рдХреЗ рдХреБрдЫ рдЬреЛрдбрд╝реЗ рдХреЛ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░реЗрдВ, рдФрд░ рдлрд┐рд░ рдкрд░рд┐рдгрд╛рдореА рдореВрд▓реНрдп рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░реЗрдВред рдлрд┐рд░ рд╣рдо рд╕реНрд╡рд┐рдЪ рдХреЛ рдмрдВрдж рдХрд░ рджреЗрддреЗ рд╣реИрдВ рдФрд░ (рдХреЗрд╡рд▓ рдорд╛рдорд▓реЗ рдореЗрдВ) рдПрдХ рдФрд░ рдорд┐рд▓реАрд╕реЗрдХрдВрдб рдХреЗ рд▓рд┐рдП рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░рддреЗ рд╣реИрдВред

рдПрдХ рдЕрд▓рдЧ рдмреНрд░реЗрдбрдмреЛрд░реНрдб рдкрд░, рдореИрдВрдиреЗ рдЫреЛрдЯреЗ-рдУрдо (200..900 рдУрдо) рдкреНрд░рддрд┐рд░реЛрдзреЛрдВ рдХреЗ рд╕рд╛рде рд╕реНрд╡рд┐рдЪ рдХреЗ рд╕рднреА рдПрдирд╛рд▓реЙрдЧ рдЗрдирдкреБрдЯ рдХреЛ рдЬреЛрдбрд╝рддреЗ рд╣реБрдП, рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдкреНрд░рддрд┐рд░реЛрдзрдХ рд╡реЛрд▓реНрдЯреЗрдЬ рд╡рд┐рднрдХреНрдд рдЗрдХрдЯреНрдард╛ рдХрд┐рдпрд╛ред рдореИрдВрдиреЗ рдЬрдореАрди рдХреЛ рдПрд╕ 1 рд╕реЗ рдЬреЛрдбрд╝рд╛, рдФрд░ рдПрд╕рдЯреАрдПрдо 32 рдмреНрд░реЗрдбрдмреЛрд░реНрдб рд╕реЗ рдПрд╕ 16 рддрдХ + 3.3 рд╡реАред рдореИрдВрдиреЗ рдмрд╛рд╣рд░реА HDD (12V) рд╕реЗ рдПрдХ рдкреБрд░рд╛рдиреЗ рдкреАрдПрд╕рдпреВ рдХреЗ рд╕рд╛рде рдЪрд┐рдк рдХреЛ рд╕рдВрдЪрд╛рд▓рд┐рдд рдХрд┐рдпрд╛ред

STM32P103 рдмреНрд░реЗрдбрдмреЛрд░реНрдб рдореЗрдВ, рдПрдбреАрд╕реА рдХреЗ рд▓рд┐рдП рд╕рдВрджрд░реНрдн рд╡реЛрд▓реНрдЯреЗрдЬ рд╕рд╛рдорд╛рдиреНрдп рдмрд┐рдЬрд▓реА рдХреА рдЖрдкреВрд░реНрддрд┐ рд╕реЗ рд▓рд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╕рдЯреАрдХрддрд╛ рдХрдо рд╣реИ: рдорд╛рди рдХрднреА-рдХрднреА 20 рдЗрдХрд╛рдЗрдпреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рддреИрд░рддреЗ рд╣реИрдВ!

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рджреЛ рдЪреБрдирд╛рд╡реЛрдВ рдХреЗ рд╕рд╛рде рдХреНрдпрд╛ рд╣реБрдЖ:
рдХреЛрдб
 //  1 Temperature 0x00 = 0x00 0x00 Temperature 0x01 = 0x00 0x84 Temperature 0x02 = 0x00 0xaf Temperature 0x03 = 0x01 0xdb Temperature 0x04 = 0x03 0x10 Temperature 0x05 = 0x03 0xe4 Temperature 0x06 = 0x05 0xca Temperature 0x07 = 0x06 0x9b Temperature 0x08 = 0x07 0x4e Temperature 0x09 = 0x08 0xd6 Temperature 0x0a = 0x0a 0x04 Temperature 0x0b = 0x0a 0xb4 Temperature 0x0c = 0x0b 0xfc Temperature 0x0d = 0x0d 0xe0 Temperature 0x0e = 0x0e 0xb7 Temperature 0x0f = 0x0f 0xff //  2 Temperature 0x00 = 0x00 0x00 Temperature 0x01 = 0x00 0x7f Temperature 0x02 = 0x00 0xaf Temperature 0x03 = 0x01 0xdf Temperature 0x04 = 0x03 0x0f Temperature 0x05 = 0x03 0xe4 Temperature 0x06 = 0x05 0xcc Temperature 0x07 = 0x06 0x9d Temperature 0x08 = 0x07 0x5a Temperature 0x09 = 0x08 0xd6 Temperature 0x0a = 0x0a 0x01 Temperature 0x0b = 0x0a 0xb5 Temperature 0x0c = 0x0b 0xfc Temperature 0x0d = 0x0e 0x09 Temperature 0x0e = 0x0e 0xb0 Temperature 0x0f = 0x0f 0xec 


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

рд╕реНрдЯреЗрдкрд░ рдореЛрдЯрд░


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

рдореЗрд░реЗ рдкрд╛рд╕ 1.2-рдПрдореНрдкреАрдпрд░ рдкрд░ рдЪрд░рдг-рдкрд░рд┐рд╡рд░реНрддрдХ - VSS42 рд╣реЛрдВрдЧреЗред рдпреЗ рд╕рдмрд╕реЗ рдЖрд╕рд╛рдиреА рд╕реЗ ShD-L6208 рдбреНрд░рд╛рдЗрд╡рд░ рдХреЗ рд╕рд╛рде рдкреНрд░рдмрдВрдзрд┐рдд рд╣реЛрддреЗ рд╣реИрдВред рдЬрдм рдЗрд╕ рдорд╛рдЗрдХреНрд░реЛрдХреНрд░рд┐рдХрд┐рдЯ рдкрд░ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдХреЗрд╡рд▓ рджрд┐рд╢рд╛рддреНрдордХ рдирд┐рдпрдВрддреНрд░рдг рд╕рдВрдХреЗрддреЛрдВ рдХреА рдЖрдкреВрд░реНрддрд┐ рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ, рдПрдХ рдХрд╛рд░реНрдп рд╕рд┐рдЧреНрдирд▓ рдФрд░ рдШрдбрд╝реА рджрд╛рд▓реЛрдВ рдХреЛ рд╕рдХреНрд╖рдо рдХрд░рддрд╛ рд╣реИред рдирд┐рдпрдВрддреНрд░рдХ рд╕реНрд╡рдпрдВ PWM рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рддрд╛ рд╣реИ рдФрд░ рдореЛрдЯрд░ рд╡рд╛рдЗрдВрдбрд┐рдВрдЧ рдкрд░ рд╡рд╛рдВрдЫрд┐рдд рд╡реЛрд▓реНрдЯреЗрдЬ рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИред

рдореИрдВ рдореБрдЦреНрдп рдмрд╛рддреЛрдВ рдХреА рдУрд░ рдзреНрдпрд╛рди рджрд┐рд▓рд╛рдКрдВрдЧрд╛:

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


All Articles