{"id":473629,"date":"2025-09-02T17:08:04","date_gmt":"2025-09-02T17:08:04","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=473629"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=473629","title":{"rendered":"<span>\u041a\u043e\u043d\u0442\u0440\u043e\u043b\u044c \u043d\u0430\u043f\u0440\u044f\u0436\u0435\u043d\u0438\u044f \u043d\u0430\u0434 \u0431\u043b\u043e\u043a\u043e\u043c \u043f\u0438\u0442\u0430\u043d\u0438\u044f \u043d\u0430 STM32: \u041f\u043e\u0434\u0445\u043e\u0434 \u043a \u044d\u043d\u0435\u0440\u0433\u043e\u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u043e\u0441\u0442\u0438 \u0438 \u0437\u0430\u0449\u0438\u0442\u0435<\/span>"},"content":{"rendered":"<div><!--[--><!--]--><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body article-formatted-body_version-2\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<figure class=\"full-width\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/23b\/d1f\/32d\/23bd1f32df7b46c0d8ad6391b70b55a5.png\" width=\"3520\" height=\"2120\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/23b\/d1f\/32d\/23bd1f32df7b46c0d8ad6391b70b55a5.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/23b\/d1f\/32d\/23bd1f32df7b46c0d8ad6391b70b55a5.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<p>\u041f\u0440\u0438\u0432\u0435\u0442, \u0425\u0430\u0431\u0440! <\/p>\n<p>\u0410\u0432\u0442\u043e\u043d\u043e\u043c\u043d\u044b\u0435 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0441\u0442\u0430\u043d\u043e\u0432\u044f\u0442\u0441\u044f \u0432\u0441\u0435 \u0431\u043e\u043b\u0435\u0435 \u0432\u043e\u0441\u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043d\u043d\u044b\u043c\u0438 &#8212; \u043e\u0442 \u043f\u043e\u0440\u0442\u0430\u0442\u0438\u0432\u043d\u044b\u0445 \u043f\u0440\u0438\u0431\u043e\u0440\u043e\u0432 \u0434\u043e \u0441\u043b\u043e\u0436\u043d\u044b\u0445 \u043f\u0440\u043e\u043c\u044b\u0448\u043b\u0435\u043d\u043d\u044b\u0445 \u043a\u043e\u043c\u043f\u043b\u0435\u043a\u0441\u043e\u0432 &#8212; \u043d\u0430\u0434\u0435\u0436\u043d\u043e\u0435 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043d\u0430\u043f\u0440\u044f\u0436\u0435\u043d\u0438\u0435\u043c \u043f\u0438\u0442\u0430\u043d\u0438\u044f \u043f\u0440\u0435\u0432\u0440\u0430\u0449\u0430\u0435\u0442\u0441\u044f \u0432 \u043a\u043b\u044e\u0447\u0435\u0432\u043e\u0439 \u0444\u0430\u043a\u0442\u043e\u0440 \u0438\u0445 \u0434\u043e\u043b\u0433\u043e\u0432\u0435\u0447\u043d\u043e\u0441\u0442\u0438 \u0438 \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u043e\u0441\u0442\u0438. \u0421\u0435\u0440\u0434\u0446\u0435 \u043b\u044e\u0431\u043e\u0439 \u0442\u0430\u043a\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b &#8212; \u0430\u043a\u043a\u0443\u043c\u0443\u043b\u044f\u0442\u043e\u0440, \u0430 \u0435\u0433\u043e \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u044c \u0438 \u0441\u0440\u043e\u043a \u0441\u043b\u0443\u0436\u0431\u044b, \u043d\u0430\u043f\u0440\u044f\u043c\u0443\u044e \u0437\u0430\u0432\u0438\u0441\u0438\u0442 \u043e\u0442 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044f \u043d\u0430\u043f\u0440\u044f\u0436\u0435\u043d\u0438\u044f. <\/p>\n<p>\u0412 \u0434\u0430\u043d\u043d\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d \u043f\u0440\u0438\u043c\u0435\u0440 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044f \u043d\u0430\u043f\u0440\u044f\u0436\u0435\u043d\u0438\u044f, \u043d\u0430\u0434 \u0431\u043b\u043e\u043a\u043e\u043c \u043f\u0438\u0442\u0430\u043d\u0438\u044f &#8212; \u0432\u043d\u0443\u0442\u0440\u0438 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e (\u043d\u0438\u043a\u0435\u043b\u044c-\u043c\u0435\u0442\u0430\u043b\u043b\u0433\u0438\u0434\u0440\u0438\u0434\u043d\u0430\u044f \u0430\u043a\u043a\u0443\u043c\u0443\u043b\u044f\u0442\u043e\u0440\u043d\u0430\u044f \u0441\u0431\u043e\u0440\u043a\u0430 NiMH 14.4\u0412\/12 \u0431\u0430\u043d\u043e\u043a \u043f\u043e 1.2\u0412(1.4\u0412- \u043f\u0440\u0438 \u043f\u043e\u043b\u043d\u043e\u0439 \u0437\u0430\u0440\u044f\u0434\u043a\u0435)). <\/p>\n<p>\u0412 \u0431\u043b\u043e\u043a\u0435 \u043f\u0438\u0442\u0430\u043d\u0438\u044f \u0443\u0436\u0435 \u0435\u0441\u0442\u044c \u043f\u0430\u043b\u0430\u0442\u0430 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043d\u0430\u0434 \u0430\u043a\u043a\u0443\u043c\u0443\u043b\u044f\u0442\u043e\u0440\u043e\u043c, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442 \u0437\u0430\u0434\u0430\u0447\u0438:<\/p>\n<ul>\n<li>\n<p>\u0420\u0430\u0431\u043e\u0442\u0430 \u0441 \u043a\u043d\u043e\u043f\u043a\u043e\u0439;<\/p>\n<\/li>\n<li>\n<p>\u0420\u0430\u0431\u043e\u0442\u0430 \u0441\u043e \u0441\u0432\u0435\u0442\u043e\u0434\u0438\u043e\u0434\u043e\u043c;<\/p>\n<\/li>\n<li>\n<p>\u0420\u0430\u0431\u043e\u0442\u0430 \u0441 \u043f\u044a\u0435\u0437\u043e\u044d\u043b\u0435\u043a\u0442\u0440\u0438\u0447\u0435\u0441\u043a\u0438\u043c \u0438\u0437\u043b\u0443\u0447\u0430\u0442\u0435\u043b\u0435\u043c(\u0437\u0432\u0443\u043a\u043e\u0432\u0430\u044f \u0438\u043d\u0434\u0438\u043a\u0430\u0446\u0438\u044f); <\/p>\n<\/li>\n<li>\n<p>\u041a\u043e\u043d\u0442\u0440\u043e\u043b\u044c \u0437\u0430\u0440\u044f\u0434\u0430\/\u0440\u0430\u0437\u0440\u044f\u0434\u0430 \u0430\u043a\u043a\u0443\u043c\u0443\u043b\u044f\u0442\u043e\u0440\u0430(\u0434\u0430\u0435\u0442 \u0437\u0432\u0443\u043a\u043e\u0432\u043e\u0439 \u0441\u0438\u0433\u043d\u0430\u043b \u043f\u0440\u0438 \u043d\u0430\u043f\u0440\u044f\u0436\u0435\u043d\u0438\u0438 \u043c\u0435\u043d\u0435\u0435 9 \u0432\u043e\u043b\u044c\u0442 \u0438 \u0431\u043e\u043b\u0435\u0435 14).<\/p>\n<\/li>\n<\/ul>\n<p>\u0412 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0435 \u0430\u043d\u0430\u043b\u0438\u0437\u0430 \u0438 \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u043e\u0431\u043e\u0440\u0443\u0434\u043e\u0432\u0430\u043d\u0438\u044f \u0441\u0442\u0430\u043b\u043e \u043e\u0447\u0435\u0432\u0438\u0434\u043d\u043e, \u0447\u0442\u043e \u043c\u043d\u043e\u0433\u0438\u0435 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0438 \u0447\u0430\u0441\u0442\u043e \u0437\u0430\u0431\u044b\u0432\u0430\u044e\u0442 \u0441\u0432\u043e\u0435\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e \u043e\u0442\u043a\u043b\u044e\u0447\u0430\u0442\u044c \u0431\u043b\u043e\u043a\u0438 \u043f\u0438\u0442\u0430\u043d\u0438\u044f. \u0412 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0435 \u0430\u043a\u043a\u0443\u043c\u0443\u043b\u044f\u0442\u043e\u0440\u043d\u044b\u0435 \u0441\u0431\u043e\u0440\u043a\u0438 \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0430\u044e\u0442 \u0440\u0430\u0437\u0440\u044f\u0436\u0430\u0442\u044c\u0441\u044f \u0434\u0430\u0436\u0435 \u043f\u0440\u0438 \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0438\u0438 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u0438, \u043d\u0430\u043f\u0440\u044f\u0436\u0435\u043d\u0438\u0435 \u043f\u0430\u0434\u0430\u0435\u0442 \u0434\u043e \u043a\u0440\u0438\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439, \u0438 \u0430\u043a\u043a\u0443\u043c\u0443\u043b\u044f\u0442\u043e\u0440 \u0431\u044b\u0441\u0442\u0440\u043e \u0442\u0435\u0440\u044f\u0435\u0442 \u0441\u0432\u043e\u044e \u0435\u043c\u043a\u043e\u0441\u0442\u044c, \u0441\u0442\u0430\u043d\u043e\u0432\u044f\u0441\u044c \u043d\u0435\u043f\u0440\u0438\u0433\u043e\u0434\u043d\u044b\u043c \u0434\u043b\u044f \u0434\u0430\u043b\u044c\u043d\u0435\u0439\u0448\u0435\u0439 \u044d\u043a\u0441\u043f\u043b\u0443\u0430\u0442\u0430\u0446\u0438\u0438. <\/p>\n<p>\u041f\u043e\u043c\u0438\u043c\u043e \u044d\u0442\u043e\u0433\u043e, \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u043d\u0430\u044f \u0441\u0438\u0441\u0442\u0435\u043c\u0430 \u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0432 \u043d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u043e\u043c \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0438, \u043d\u0430 \u043f\u043b\u0430\u0442\u0443 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0438 \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0435 \u0434\u0430\u0442\u0447\u0438\u043a\u0438 \u043f\u043e-\u043f\u0440\u0435\u0436\u043d\u0435\u043c\u0443 \u043f\u043e\u0434\u0430\u0435\u0442\u0441\u044f \u043f\u0438\u0442\u0430\u043d\u0438\u0435, \u0447\u0442\u043e \u043f\u0440\u0438\u0432\u043e\u0434\u0438\u0442 \u043a \u0438\u0437\u0431\u044b\u0442\u043e\u0447\u043d\u043e\u0439 \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0435. \u0412 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u044d\u0442\u043e\u0433\u043e \u0441\u043e\u043a\u0440\u0430\u0449\u0430\u0435\u0442\u0441\u044f \u0440\u0435\u0441\u0443\u0440\u0441 \u044d\u043b\u0435\u043a\u0442\u0440\u043e\u043d\u043d\u044b\u0445 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u043e\u0432 \u0438 \u0441\u043d\u0438\u0436\u0430\u0435\u0442\u0441\u044f \u043d\u0430\u0434\u0435\u0436\u043d\u043e\u0441\u0442\u044c \u0432\u0441\u0435\u0433\u043e \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430.<\/p>\n<p>\u0414\u043b\u044f \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u0434\u0430\u043d\u043d\u043e\u0439 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b \u044f \u043f\u0440\u043e\u0434\u0435\u043c\u043e\u043d\u0441\u0442\u0440\u0438\u0440\u0443\u044e \u043f\u0440\u0438\u043c\u0435\u0440 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044f \u043d\u0430\u043f\u0440\u044f\u0436\u0435\u043d\u0438\u044f \u0431\u043b\u043e\u043a\u0430 \u043f\u0438\u0442\u0430\u043d\u0438\u044f, \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0430 \u0432\u044b\u0431\u0440\u0430\u043d STM32F103\u04218T6, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u0437\u0430\u0434\u0430\u0447\u0438:<\/p>\n<ul>\n<li>\n<p>\u041d\u0435\u043f\u0440\u0435\u0440\u044b\u0432\u043d\u044b\u0439 \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433 \u043d\u0430\u043f\u0440\u044f\u0436\u0435\u043d\u0438\u044f \u0430\u043a\u043a\u0443\u043c\u0443\u043b\u044f\u0442\u043e\u0440\u043d\u043e\u0439 \u0441\u0431\u043e\u0440\u043a\u0438, \u0438\u0437\u043c\u0435\u0440\u0435\u043d\u0438\u0435 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0441\u044f \u0447\u0435\u0440\u0435\u0437 \u0410\u0426\u041f \u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c DMA; <\/p>\n<\/li>\n<li>\n<p>\u041e\u043f\u043e\u0432\u0435\u0449\u0435\u043d\u0438\u0435 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u043e \u043d\u0438\u0437\u043a\u043e\u043c \u0437\u0430\u0440\u044f\u0434\u0435, \u043f\u0440\u0438 \u043f\u0430\u0434\u0435\u043d\u0438\u0438 \u043d\u0430\u043f\u0440\u044f\u0436\u0435\u043d\u0438\u044f \u043d\u0438\u0436\u0435 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043d\u043e\u0433\u043e \u043f\u043e\u0440\u043e\u0433\u0430 (\u0432 \u0434\u0430\u043d\u043d\u043e\u043c \u043f\u0440\u0438\u043c\u0435\u0440\u0435 &#8212; 9.0\u0412) \u0441\u0438\u0441\u0442\u0435\u043c\u0430 \u0430\u043a\u0442\u0438\u0432\u0438\u0437\u0438\u0440\u0443\u0435\u0442 \u0437\u0432\u0443\u043a\u043e\u0432\u043e\u0439 \u0441\u0438\u0433\u043d\u0430\u043b, \u0432\u0440\u0435\u043c\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u043e\u043f\u043e\u0432\u0435\u0449\u0435\u043d\u0438\u044f \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u043e &#8212; \u0437\u0432\u0443\u043a\u043e\u0432\u0430\u044f \u0438\u043d\u0434\u0438\u043a\u0430\u0446\u0438\u044f \u0431\u0443\u0434\u0435\u0442 \u0434\u043b\u0438\u0442\u0441\u044f 5 \u043c\u0438\u043d\u0443\u0442; <\/p>\n<\/li>\n<li>\n<p>\u041f\u0435\u0440\u0435\u0445\u043e\u0434 \u0432 \u044d\u043d\u0435\u0440\u0433\u043e\u0441\u0431\u0435\u0440\u0435\u0433\u0430\u044e\u0449\u0438\u0439 \u0440\u0435\u0436\u0438\u043c, \u0435\u0441\u043b\u0438 \u043d\u0430\u043f\u0440\u044f\u0436\u0435\u043d\u0438\u0435 \u043e\u0441\u0442\u0430\u0435\u0442\u0441\u044f \u043d\u0438\u0436\u0435 \u043f\u043e\u0440\u043e\u0433\u0430 \u0438 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u043d\u0435 \u043f\u0440\u0435\u0434\u043f\u0440\u0438\u043d\u044f\u043b \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0439 \u0432 \u0442\u0435\u0447\u0435\u043d\u0438\u0438 \u0437\u0430\u0434\u0430\u043d\u043d\u043e\u0433\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438, \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440 \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u0438\u0442 \u0441\u0438\u0441\u0442\u0435\u043c\u0443 \u0432 \u0440\u0435\u0436\u0438\u043c \u0441\u043d\u0430, \u044d\u0442\u043e \u0441\u043e\u043f\u0440\u043e\u0432\u043e\u0436\u0434\u0430\u0435\u0442\u0441\u044f \u043e\u0442\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435\u043c \u0442\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0438 \u0432\u0441\u0435\u0439 \u043f\u0435\u0440\u0438\u0444\u0435\u0440\u0438\u0438, \u0447\u0442\u043e \u043c\u0438\u043d\u0438\u043c\u0438\u0437\u0438\u0440\u0443\u0435\u0442 \u0438 \u043f\u0440\u0435\u0434\u043e\u0442\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0433\u043b\u0443\u0431\u043e\u043a\u0438\u0439 \u0440\u0430\u0437\u0440\u044f\u0434 \u0430\u043a\u043a\u0443\u043c\u0443\u043b\u044f\u0442\u043e\u0440\u0430.<\/p>\n<\/li>\n<\/ul>\n<h3>\u0421\u0445\u0435\u043c\u0430 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f NiMH \u0410\u041a\u0411, \u0434\u0435\u043b\u0438\u0442\u0435\u043b\u044f \u043d\u0430\u043f\u0440\u044f\u0436\u0435\u043d\u0438\u044f \u043a \u0410\u0426\u041f \u041c\u041a, \u043a\u043d\u043e\u043f\u043a\u0438 \u0432\u043a\u043b\/\u0432\u044b\u043a\u043b \u0438 \u043f\u044a\u0435\u0437\u043e-\u0438\u0437\u043b\u0443\u0447\u0430\u0442\u0435\u043b\u044f<\/h3>\n<figure class=\"full-width\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/25c\/89e\/bfc\/25c89ebfc951a396b2b7ee3f9079723c.png\" width=\"3841\" height=\"2441\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/25c\/89e\/bfc\/25c89ebfc951a396b2b7ee3f9079723c.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/25c\/89e\/bfc\/25c89ebfc951a396b2b7ee3f9079723c.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<h3>\u041f\u0435\u0440\u0435\u0447\u0435\u043d\u044c \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u043e\u0432 <\/h3>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<td>\n<p align=\"left\"><code><strong>\u0420\u0435\u0437\u0438\u0441\u0442\u043e\u0440\u044b <\/strong><\/code><\/p>\n<\/td>\n<td data-colwidth=\"139\" width=\"139\">\n<p align=\"left\"><code><strong>\u041a\u043e\u043d\u0434\u0435\u043d\u0441\u0430\u0442\u043e\u0440\u044b<\/strong><\/code><\/p>\n<\/td>\n<td data-colwidth=\"146\" width=\"146\">\n<p align=\"left\"><code><strong>\u041f\u0440\u0435\u0434\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u0435\u043b\u0438<\/strong><\/code><\/p>\n<\/td>\n<td data-colwidth=\"131\" width=\"131\">\n<p align=\"left\"><code><strong>\u0422\u0440\u0430\u043d\u0437\u0438\u0441\u0442\u043e\u0440\u044b \u0438 \u0442\u0440\u0430\u043d\u0437\u0438\u0441\u0442\u043e\u0440\u043d\u044b\u0435 \u0441\u0431\u043e\u0440\u043a\u0438, \u0434\u0438\u043e\u0434\u044b<\/strong><\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>\u041f\u0440\u043e\u0447\u0438\u0435<\/code><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">R1, R3, R4, R5, R9- (0805 &#8212; 10\u00a0 \u043a\u041e\u043c \u00b1 5%)<\/p>\n<\/td>\n<td data-colwidth=\"139\" width=\"139\">\n<p align=\"left\">\u04211-0805 &#8212; X7R \u2013 50 \u0412 \u2013 0,1 \u043c\u043a\u0424  <\/p>\n<\/td>\n<td data-colwidth=\"146\" width=\"146\">\n<p align=\"left\">FP1, FP2, FP3- MF-SM100\/33-1.1\u0410  <\/p>\n<\/td>\n<td data-colwidth=\"131\" width=\"131\">\n<p align=\"left\">VT1, VT3-IRF7416, P-\u043a\u0430\u043d\u0430\u043b<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041c\u041a STM32F103C8T6<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">R2- (0805 &#8212; 20 \u043a\u041e\u043c \u00b1 5%)    <\/p>\n<\/td>\n<td data-colwidth=\"139\" width=\"139\">\n<p align=\"left\">\n<\/td>\n<td data-colwidth=\"146\" width=\"146\">\n<p align=\"left\">\n<\/td>\n<td data-colwidth=\"131\" width=\"131\">\n<p align=\"left\">VT2, VT4-BC847C<\/p>\n<\/td>\n<td>\n<p align=\"left\">\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">R6-(0805 \u2013 221\u00a0 \u043a\u041e\u043c \u00b1 5%)<\/p>\n<\/td>\n<td data-colwidth=\"139\" width=\"139\">\n<p align=\"left\">\n<\/td>\n<td data-colwidth=\"146\" width=\"146\">\n<p align=\"left\">\n<\/td>\n<td data-colwidth=\"131\" width=\"131\">\n<p align=\"left\">AD4-BAT54S<\/p>\n<\/td>\n<td>\n<p align=\"left\">BA-1-\u0418\u0437\u043b\u0443\u0447\u0430\u0442\u0435\u043b\u044c \u043f\u044c\u0435\u0437\u043e\u044d\u043b\u0435\u043a\u0442\u0440\u0438\u0447\u0435\u0441\u043a\u0438\u0439 HCM1206X    <\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">R7-(0805 &#8212; 27\u00a0 \u043a\u041e\u043c \u00b1 5%)<\/p>\n<\/td>\n<td data-colwidth=\"139\" width=\"139\">\n<p align=\"left\">\n<\/td>\n<td data-colwidth=\"146\" width=\"146\">\n<p align=\"left\">\n<\/td>\n<td data-colwidth=\"131\" width=\"131\">\n<p align=\"left\">\n<\/td>\n<td>\n<p align=\"left\">\u0410\u043a\u043a\u0443\u043c\u0443\u043b\u044f\u0442\u043e\u0440\u043d\u0430\u044f \u0441\u0431\u043e\u0440\u043a\u0430 NiMh 14.4V<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">R8-\u0420\u0435\u0437\u0438\u0441\u0442\u043e\u0440 \u043f\u043e\u0434\u0441\u0442\u0440\u043e\u0435\u0447\u043d\u044b\u0439 (3314G-1-502E, 5 \u043a\u041e\u043c  <\/p>\n<\/td>\n<td data-colwidth=\"139\" width=\"139\">\n<p align=\"left\">\n<\/td>\n<td data-colwidth=\"146\" width=\"146\">\n<p align=\"left\">\n<\/td>\n<td data-colwidth=\"131\" width=\"131\">\n<p align=\"left\">\n<\/td>\n<td>\n<p align=\"left\">SA2- \u0412\u044b\u043a\u043b\u044e\u0447\u0430\u0442\u0435\u043b\u044c 113-8748 <\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<h4>\u041e\u0431\u044a\u044f\u0441\u043d\u0435\u043d\u0438\u0435 \u0441\u0445\u0435\u043c\u044b<\/h4>\n<p><strong>\u0423\u0437\u0435\u043b[1]<\/strong><\/p>\n<ul>\n<li>\n<p>\u0412\u0445\u043e\u0434\u043d\u043e\u0439 \u0441\u0438\u043b\u043e\u0432\u043e\u0439 \u043a\u043b\u044e\u0447, \u0438\u0441\u0442\u043e\u043a \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d \u043a +12V, \u0441\u0442\u043e\u043a \u0438\u0434\u0435\u0442 \u043a \u0431\u043b\u043e\u043a\u0443 \u043f\u0438\u0442\u0430\u043d\u0438\u044f(+12_\u0410\u041a\u041a)  \u0447\u0435\u0440\u0435\u0437 \u043f\u0440\u0435\u0434\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u0435\u043b\u0438, \u0430 \u0437\u0430\u0442\u0432\u043e\u0440 \u043f\u043e\u0434\u0442\u044f\u043d\u0443\u0442 \u043a \u0437\u0435\u043c\u043b\u0435, \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u0435 (\u0437\u0430\u0449\u0438\u0449\u0435\u043d\u043d\u0430\u044f \u043f\u043e\u0434\u0430\u0447\u0430  \u043d\u0430\u043f\u0440\u044f\u0436\u0435\u043d\u0438\u044f \u043f\u0438\u0442\u0430\u043d\u0438\u044f \u0441 \u0430\u043a\u043a\u0443\u043c\u0443\u043b\u044f\u0442\u043e\u0440\u043d\u043e\u0433\u043e \u0431\u043b\u043e\u043a\u0430);<\/p>\n<\/li>\n<\/ul>\n<p><strong>\u0423\u0437\u0435\u043b[2]<\/strong><\/p>\n<ul>\n<li>\n<p>\u0412\u0442\u043e\u0440\u0438\u0447\u043d\u044b\u0439 \u0441\u0438\u043b\u043e\u0432\u043e\u0439 \u043a\u043b\u044e\u0447, \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0432\u0430\u0435\u0442 \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u043c\u043e\u0435 \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435\/\u043e\u0442\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u043d\u0430\u043f\u0440\u044f\u0436\u0435\u043d\u0438\u044f \u043f\u0438\u0442\u0430\u043d\u0438\u044f \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u0441\u0438\u0441\u0442\u0435\u043c\u044b, \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0447\u0435\u0440\u0435\u0437 \u041c\u041a, \u0441\u0438\u0433\u043d\u0430\u043b PWR_ON, \u043f\u043e\u0441\u043b\u0435 \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u0434\u0430\u043d\u043d\u043e\u0433\u043e \u0443\u0437\u043b\u0430, \u043d\u0430 \u0441\u0442\u043e\u043a\u0435 \u043d\u0430\u043f\u0440\u044f\u0436\u0435\u043d\u0438\u0435 \u043f\u0438\u0442\u0430\u043d\u0438\u044f +12\u0412\u041a \u0430\u043a\u0442\u0438\u0432\u0438\u0437\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u0438 \u043f\u0435\u0440\u0435\u0434\u0430\u0435\u0442 \u043d\u0430\u043f\u0440\u044f\u0436\u0435\u043d\u0438\u0435 \u0434\u0440\u0443\u0433\u0438\u043c \u0447\u0430\u0441\u0442\u044f\u043c \u0441\u0445\u0435\u043c\u044b, \u0432 \u043c\u043e\u0435\u043c \u043f\u0440\u0438\u043c\u0435\u0440\u0435 \u044d\u0442\u043e (\u0443\u0437\u0435\u043b[4]-\u0417\u0432\u0443\u043a\u043e\u0432\u0430\u044f \u0438\u043d\u0434\u0438\u043a\u0430\u0446\u0438\u044f \u0438 \u0443\u0437\u0435\u043b[5]-l\u0434\u0435\u043b\u0438\u0442\u0435\u043b\u044c \u043d\u0430\u043f\u0440\u044f\u0436\u0435\u043d\u0438\u044f), \u043d\u043e \u0442\u0430\u043a\u0436\u0435 \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0439 \u0443\u0437\u0435\u043b \u0438 \u043d\u0430 \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435  \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 \u043d\u0430\u043f\u0440\u044f\u0436\u0435\u043d\u0438\u044f;<\/p>\n<\/li>\n<\/ul>\n<p><strong>\u0423\u0437\u0435\u043b[3]<\/strong><\/p>\n<ul>\n<li>\n<p>\u0414\u0430\u043d\u043d\u044b\u0439 \u0443\u0437\u0435\u043b \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0432\u0430\u0435\u0442 \u043b\u043e\u0433\u0438\u043a\u0443 \u0432\u0437\u0430\u0438\u043c\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f \u0441 \u043a\u043d\u043e\u043f\u043a\u043e\u0439 \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f\/\u0432\u044b\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f, \u043a\u043d\u043e\u043f\u043a\u0430 sa2, \u043f\u0440\u0438 \u043d\u0430\u0436\u0430\u0442\u0438\u0438 \u0444\u043e\u0440\u043c\u0438\u0440\u0443\u0435\u0442 \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u044e\u0449\u0438\u0439 \u0441\u0438\u0433\u043d\u0430\u043b, \u0434\u0438\u043e\u0434 \u0410D4 \u0438 \u043a\u043e\u043d\u0434\u0435\u043d\u0441\u0430\u0442\u043e\u0440 \u04211 \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0432\u0430\u044e\u0442 \u0444\u0438\u043b\u044c\u0442\u0440\u0430\u0446\u0438\u044e \u0438  \u0430\u043d\u0442\u0438\u0434\u0440\u0435\u0431\u0435\u0437\u0433.<\/p>\n<\/li>\n<\/ul>\n<p><strong>\u0423\u0437\u0435\u043b[4]<\/strong><\/p>\n<ul>\n<li>\n<p>\u0414\u0430\u043d\u043d\u044b\u0439 \u0443\u0437\u0435\u043b \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0432\u0430\u0435\u0442 \u0437\u0432\u0443\u043a\u043e\u0432\u0443\u044e \u0438\u043d\u0434\u0438\u043a\u0430\u0446\u0438\u044e, \u0441\u0438\u0433\u043d\u0430\u043b BEEP \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0435\u0442\u0441\u044f \u043a \u041c\u041a;<\/p>\n<\/li>\n<\/ul>\n<p><strong>\u0423\u0437\u0435\u043b[5]<\/strong><\/p>\n<p>\u0414\u0430\u043d\u043d\u044b\u0439 \u0443\u0437\u0435\u043b \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0434\u0435\u043b\u0438\u0442\u0435\u043b\u0435\u043c \u043d\u0430\u043f\u0440\u044f\u0436\u0435\u043d\u0438\u044f, \u0434\u0435\u043b\u0438\u0442 \u043d\u0430\u043f\u0440\u044f\u0436\u0435\u043d\u0438\u0435 \u0434\u043e \u0443\u0440\u043e\u0432\u043d\u044f, \u043f\u043e\u0434\u0445\u043e\u0434\u044f\u0449\u0435\u0433\u043e \u0434\u043b\u044f \u0438\u0437\u043c\u0435\u0440\u0435\u043d\u0438\u044f \u0410\u0426\u041f \u041c\u041a (\u043e\u0431\u044b\u0447\u043d\u043e \u0434\u043e 3.3V), <strong>\u043f\u043e\u0434\u0441\u0442\u0440\u043e\u0435\u0447\u043d\u044b\u0439 \u0440\u0435\u0437\u0438\u0441\u0442\u043e\u0440 R8, \u0432\u044b\u0441\u0442\u0430\u0432\u043b\u0435\u043d \u043d\u0430 1.7\u043a\u041e\u043c.<\/strong><\/p>\n<h4>\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0430 STM32F103 \u0432 CubeIDE<\/h4>\n<figure class=\"\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/bb0\/8f6\/deb\/bb08f6deba16280c279eb71d59aaab0c.png\" width=\"408\" height=\"381\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/bb0\/8f6\/deb\/bb08f6deba16280c279eb71d59aaab0c.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/bb0\/8f6\/deb\/bb08f6deba16280c279eb71d59aaab0c.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<p><strong>\u041a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f TIM1(PA11)<\/strong><\/p>\n<p>\u0422\u0430\u0439\u043c\u0435\u0440 TIM1 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442 \u0440\u043e\u043b\u044c \u0433\u0435\u043d\u0435\u0440\u0430\u0442\u043e\u0440\u0430 \u0434\u043b\u044f \u0437\u0432\u0443\u043a\u043e\u0432\u043e\u0439 \u0438\u043d\u0434\u0438\u043a\u0430\u0446\u0438\u0438.<\/p>\n<p>\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u0442\u0430\u0439\u043c\u0435\u0440\u0430:<\/p>\n<ul>\n<li>\n<p>\u041f\u0440\u0435\u0434\u0434\u0435\u043b\u0438\u0442\u0435\u043b\u044c (Prescaler) \u0438 \u043f\u0435\u0440\u0438\u043e\u0434 (Auto-Reload) \u0432\u044b\u0431\u0440\u0430\u043d\u044b \u0442\u0430\u043a, \u0447\u0442\u043e\u0431\u044b \u043d\u0430 \u0432\u044b\u0445\u043e\u0434\u0435 \u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043b\u0441\u044f \u0441\u0438\u0433\u043d\u0430\u043b \u0441 \u0447\u0430\u0441\u0442\u043e\u0442\u043e\u0439 \u0432 \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d\u0435, \u0432\u043e\u0441\u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u043c\u043e\u043c \u0441\u043b\u0443\u0445\u043e\u043c (\u043e\u0431\u044b\u0447\u043d\u043e 1\u20135 \u043a\u0413\u0446);<\/p>\n<\/li>\n<li>\n<p>\u0420\u0435\u0436\u0438\u043c \u0440\u0430\u0431\u043e\u0442\u044b \u2013 PWM (\u0448\u0438\u0440\u043e\u0442\u043d\u043e-\u0438\u043c\u043f\u0443\u043b\u044c\u0441\u043d\u0430\u044f \u043c\u043e\u0434\u0443\u043b\u044f\u0446\u0438\u044f);<\/p>\n<\/li>\n<li>\n<p>\u041a\u043e\u044d\u0444\u0444\u0438\u0446\u0438\u0435\u043d\u0442 \u0437\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f (Pulse) \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442 \u0433\u0440\u043e\u043c\u043a\u043e\u0441\u0442\u044c \u0438 \u0445\u0430\u0440\u0430\u043a\u0442\u0435\u0440 \u0437\u0432\u0443\u0447\u0430\u043d\u0438\u044f.<\/p>\n<\/li>\n<\/ul>\n<p><strong>\u041f\u0440\u0438\u043d\u0446\u0438\u043f \u0440\u0430\u0431\u043e\u0442\u044b:<\/strong><br \/>\u0422\u0430\u0439\u043c\u0435\u0440 \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u0435\u0442 \u0428\u0418\u041c-\u0441\u0438\u0433\u043d\u0430\u043b, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u043e\u0434\u0430\u0451\u0442\u0441\u044f \u043d\u0430 \u0442\u0440\u0430\u043d\u0437\u0438\u0441\u0442\u043e\u0440\u043d\u044b\u0439 \u043a\u043b\u044e\u0447. \u0422\u0440\u0430\u043d\u0437\u0438\u0441\u0442\u043e\u0440 \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442 \u043f\u044c\u0435\u0437\u043e\u0438\u0437\u043b\u0443\u0447\u0430\u0442\u0435\u043b\u0435\u043c \u0438\u043b\u0438 \u0434\u0438\u043d\u0430\u043c\u0438\u043a\u043e\u043c. \u0412 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0435 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f \u0441\u043b\u044b\u0448\u0438\u043c\u044b\u0439 \u0437\u0432\u0443\u043a.<\/p>\n<p>\u041f\u0440\u0435\u0438\u043c\u0443\u0449\u0435\u0441\u0442\u0432\u0430 \u0442\u0430\u043a\u043e\u0433\u043e \u0440\u0435\u0448\u0435\u043d\u0438\u044f:<\/p>\n<ul>\n<li>\n<p>\u041c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0443 \u043d\u0435 \u043d\u0443\u0436\u043d\u043e \u0432\u0440\u0443\u0447\u043d\u0443\u044e \u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0447\u0430\u0441\u0442\u043e\u0442\u0443 \u2013 \u044d\u0442\u0438\u043c \u0437\u0430\u043d\u0438\u043c\u0430\u0435\u0442\u0441\u044f \u0442\u0430\u0439\u043c\u0435\u0440;<\/p>\n<\/li>\n<li>\n<p>\u041b\u0435\u0433\u043a\u043e \u0438\u0437\u043c\u0435\u043d\u044f\u0442\u044c \u0442\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u044c: \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043f\u0435\u0440\u0435\u043f\u0438\u0441\u0430\u0442\u044c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f ARR\/PSC;<\/p>\n<\/li>\n<li>\n<p>\u041c\u043e\u0436\u043d\u043e \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u0442\u044c \u0440\u0430\u0437\u043d\u044b\u0435 \u0437\u0432\u0443\u043a\u043e\u0432\u044b\u0435 \u044d\u0444\u0444\u0435\u043a\u0442\u044b (\u043a\u043e\u0440\u043e\u0442\u043a\u0438\u0435 \u0441\u0438\u0433\u043d\u0430\u043b\u044b, \u043c\u0435\u043b\u043e\u0434\u0438\u0438) \u043f\u0440\u043e\u0441\u0442\u044b\u043c \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435\u043c \u0442\u0430\u0439\u043c\u0435\u0440\u043e\u043c \u0438\u0437 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b.  <\/p>\n<\/li>\n<\/ul>\n<figure class=\"full-width\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/4a0\/098\/9e6\/4a00989e6336510127e4da59f8b6a1ad.png\" width=\"573\" height=\"680\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/4a0\/098\/9e6\/4a00989e6336510127e4da59f8b6a1ad.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/4a0\/098\/9e6\/4a00989e6336510127e4da59f8b6a1ad.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<p><strong>\u041a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f ADC(PA1) <\/strong><\/p>\n<p>\u0412 \u043f\u0440\u043e\u0435\u043a\u0442\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u043c\u043d\u043e\u0433\u043e\u043a\u0430\u043d\u0430\u043b\u044c\u043d\u044b\u0439 \u0440\u0435\u0436\u0438\u043c \u0440\u0430\u0431\u043e\u0442\u044b \u0410\u0426\u041f \u0441 \u0434\u0432\u0443\u043c\u044f \u043a\u0430\u043d\u0430\u043b\u0430\u043c\u0438 \u0432 \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 (Regular conversion sequence).<\/p>\n<p><em>Rank 1<\/em> \u2013 \u0432\u043d\u0435\u0448\u043d\u0438\u0439 \u043a\u0430\u043d\u0430\u043b (ADC Channel 1).<br \/>\u042d\u0442\u043e\u0442 \u0432\u0445\u043e\u0434 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0451\u043d \u043a \u0434\u0435\u043b\u0438\u0442\u0435\u043b\u044e \u043d\u0430\u043f\u0440\u044f\u0436\u0435\u043d\u0438\u044f \u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0434\u043b\u044f \u0438\u0437\u043c\u0435\u0440\u0435\u043d\u0438\u044f \u043d\u0430\u043f\u0440\u044f\u0436\u0435\u043d\u0438\u044f \u0430\u043a\u043a\u0443\u043c\u0443\u043b\u044f\u0442\u043e\u0440\u0430.<br \/>\u0411\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u044f \u044d\u0442\u043e\u043c\u0443 \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440 \u043c\u043e\u0436\u0435\u0442 \u0432 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u043c \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u043f\u0438\u0442\u0430\u043d\u0438\u044f \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430.<\/p>\n<p><em>Rank 2<\/em> \u2013 \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0438\u0439 \u043a\u0430\u043d\u0430\u043b (Vrefint).<br \/>\u042d\u0442\u043e \u0432\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u044b\u0439 \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a \u043e\u043f\u043e\u0440\u043d\u043e\u0433\u043e \u043d\u0430\u043f\u0440\u044f\u0436\u0435\u043d\u0438\u044f \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0430. \u041e\u043d \u0441\u043b\u0443\u0436\u0438\u0442 \u0434\u043b\u044f \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u043a\u0430\u043b\u0438\u0431\u0440\u043e\u0432\u043a\u0438 \u0438 \u043a\u043e\u043c\u043f\u0435\u043d\u0441\u0430\u0446\u0438\u0438 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u044b\u0445 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439 \u043f\u0438\u0442\u0430\u044e\u0449\u0435\u0433\u043e \u043d\u0430\u043f\u0440\u044f\u0436\u0435\u043d\u0438\u044f. \u0421 \u0435\u0433\u043e \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043c\u043e\u0436\u043d\u043e \u0431\u043e\u043b\u0435\u0435 \u0442\u043e\u0447\u043d\u043e \u0438\u0437\u043c\u0435\u0440\u044f\u0442\u044c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0432\u043d\u0435\u0448\u043d\u0438\u0445 \u0441\u0438\u0433\u043d\u0430\u043b\u043e\u0432, \u0432 \u0442\u043e\u043c \u0447\u0438\u0441\u043b\u0435 \u043d\u0430\u043f\u0440\u044f\u0436\u0435\u043d\u0438\u0435 \u0430\u043a\u043a\u0443\u043c\u0443\u043b\u044f\u0442\u043e\u0440\u0430.<\/p>\n<p>\u0414\u043b\u044f \u043f\u043e\u0432\u044b\u0448\u0435\u043d\u0438\u044f \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u043e\u0441\u0442\u0438 \u0437\u0430\u0434\u0435\u0439\u0441\u0442\u0432\u043e\u0432\u0430\u043d DMA: \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u043e\u0431\u043e\u0438\u0445 \u0438\u0437\u043c\u0435\u0440\u0435\u043d\u0438\u0439 (Rank 1 \u0438 Rank 2) \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u043f\u0435\u0440\u0435\u0434\u0430\u044e\u0442\u0441\u044f \u0432 \u043f\u0430\u043c\u044f\u0442\u044c, \u0430 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u0433\u043e\u0442\u043e\u0432\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435. <\/p>\n<figure class=\"full-width\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/77d\/51c\/22a\/77d51c22abc8dfa4aa196f6da3da55a0.png\" width=\"575\" height=\"1155\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/77d\/51c\/22a\/77d51c22abc8dfa4aa196f6da3da55a0.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/77d\/51c\/22a\/77d51c22abc8dfa4aa196f6da3da55a0.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<p>\u0414\u043b\u044f \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e\u0439 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 ADC \u044f \u0432\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0441\u044f \u0434\u0430\u043d\u043d\u043e\u0439 <a href=\"https:\/\/istarik.ru\/blog\/stm32\/113.html\" rel=\"noopener noreferrer nofollow\">\u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0435\u0439<\/a>, \u0442\u0430\u043c \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e \u0440\u0430\u0441\u043f\u0438\u0441\u0430\u043d\u043e \u043a\u0430\u043a \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441 ADC \u041c\u041a-STM32. <\/p>\n<p><strong>\u041a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f \u043f\u0438\u043d\u0430 \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u043a\u043d\u043e\u043f\u043a\u043e\u0439<\/strong><\/p>\n<p>\u0414\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u043a\u043d\u043e\u043f\u043a\u043e\u0439 \u0432\u044b\u0431\u0440\u0430\u043d \u0432\u044b\u0432\u043e\u0434 PB11, \u0441\u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u0432 \u0440\u0435\u0436\u0438\u043c\u0435:<\/p>\n<ul>\n<li>\n<p>GPIO_EXTI \u2013 \u0432\u043d\u0435\u0448\u043d\u0438\u0439 \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u044e\u0449\u0438\u0439 \u0432\u0445\u043e\u0434. \u042d\u0442\u043e \u0437\u043d\u0430\u0447\u0438\u0442, \u0447\u0442\u043e \u043d\u0430\u0436\u0430\u0442\u0438\u0435 \u043a\u043d\u043e\u043f\u043a\u0438 \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043d\u0435 \u043e\u043f\u0440\u043e\u0441\u043e\u043c \u0432 \u0446\u0438\u043a\u043b\u0435, \u0430 \u0447\u0435\u0440\u0435\u0437 \u0430\u043f\u043f\u0430\u0440\u0430\u0442\u043d\u043e\u0435 \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u0435;<\/p>\n<\/li>\n<li>\n<p>Mode &#8212; External interrupt, Falling edge trigger \u2013 \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u0435 \u0441\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0435\u0442 \u043f\u043e \u0441\u043f\u0430\u0434\u0443 \u0441\u0438\u0433\u043d\u0430\u043b\u0430 (\u043f\u0440\u0438 \u0437\u0430\u043c\u044b\u043a\u0430\u043d\u0438\u0438 \u043a\u043d\u043e\u043f\u043a\u0438 \u043d\u0430 \u0437\u0435\u043c\u043b\u044e);<\/p>\n<\/li>\n<li>\n<p>Pull-up \u2013 \u0432\u043a\u043b\u044e\u0447\u0435\u043d \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0438\u0439 \u043f\u043e\u0434\u0442\u044f\u0433\u0438\u0432\u0430\u044e\u0449\u0438\u0439 \u0440\u0435\u0437\u0438\u0441\u0442\u043e\u0440, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0443\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 \u0432\u0445\u043e\u0434 \u0432 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0438 \u043b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u00ab1\u00bb, \u043f\u043e\u043a\u0430 \u043a\u043d\u043e\u043f\u043a\u0430 \u043d\u0435 \u043d\u0430\u0436\u0430\u0442\u0430.  <\/p>\n<\/li>\n<\/ul>\n<p>\u041a\u043d\u043e\u043f\u043a\u0430 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0430 \u0442\u0430\u043a, \u0447\u0442\u043e \u0432 \u043e\u0431\u044b\u0447\u043d\u043e\u043c \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0438 \u043d\u0430 \u0432\u0445\u043e\u0434\u0435 PB11 \u043f\u0440\u0438\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u043b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u00ab1\u00bb \u0431\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u044f \u0432\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u043e\u043c\u0443 \u043f\u043e\u0434\u0442\u044f\u0433\u0438\u0432\u0430\u044e\u0449\u0435\u043c\u0443 \u0440\u0435\u0437\u0438\u0441\u0442\u043e\u0440\u0443 (Pull-up). \u041f\u0440\u0438 \u043d\u0430\u0436\u0430\u0442\u0438\u0438 \u043a\u043e\u043d\u0442\u0430\u043a\u0442 \u0437\u0430\u043c\u044b\u043a\u0430\u0435\u0442\u0441\u044f \u043d\u0430 \u0437\u0435\u043c\u043b\u044e, \u0444\u043e\u0440\u043c\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u043b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u00ab0\u00bb \u0438 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0441\u043f\u0430\u0434 \u0441\u0438\u0433\u043d\u0430\u043b\u0430. \u042d\u0442\u043e\u0442 \u0441\u043f\u0430\u0434 \u0444\u0438\u043a\u0441\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u043c\u043e\u0434\u0443\u043b\u0435\u043c EXTI, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442 \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u0435.<\/p>\n<figure class=\"full-width\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/03c\/e52\/01c\/03ce5201cf6f53ee4724f826eb2e5af0.png\" width=\"881\" height=\"571\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/03c\/e52\/01c\/03ce5201cf6f53ee4724f826eb2e5af0.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/03c\/e52\/01c\/03ce5201cf6f53ee4724f826eb2e5af0.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<p><strong>\u041a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f \u043f\u0438\u043d\u0430 \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u0441\u0438\u0433\u043d\u0430\u043b\u043e\u043c PWR_ON<\/strong><\/p>\n<p>\u0421\u0438\u0433\u043d\u0430\u043b PWR_ON \u0438\u0433\u0440\u0430\u0435\u0442 \u0440\u043e\u043b\u044c \u044d\u043b\u0435\u043a\u0442\u0440\u043e\u043d\u043d\u043e\u0433\u043e \u00ab\u0432\u044b\u043a\u043b\u044e\u0447\u0430\u0442\u0435\u043b\u044f \u043f\u0438\u0442\u0430\u043d\u0438\u044f\u00bb.<\/p>\n<p>\u0412 \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u043c \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0438 (Low) \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0430 \u043e\u0431\u0435\u0441\u0442\u043e\u0447\u0435\u043d\u0430.<\/p>\n<p>\u041f\u0440\u0438 \u0430\u043a\u0442\u0438\u0432\u0430\u0446\u0438\u0438 (\u043f\u0435\u0440\u0435\u0432\u043e\u0434 \u0432\u044b\u0432\u043e\u0434\u0430 \u0432 High) \u0441\u0438\u043b\u043e\u0432\u043e\u0439 MOSFET \u043e\u0442\u043a\u0440\u044b\u0432\u0430\u0435\u0442\u0441\u044f, \u0438 \u043d\u0430\u043f\u0440\u044f\u0436\u0435\u043d\u0438\u0435 +12\u0412\u041a \u043f\u043e\u0434\u0430\u0451\u0442\u0441\u044f \u043d\u0430 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0435 \u0443\u0437\u043b\u044b \u0441\u0438\u0441\u0442\u0435\u043c\u044b.<\/p>\n<p>\u0412 \u043f\u0440\u0438\u043c\u0435\u0440\u0435 \u0434\u0430\u043d\u043d\u0430\u044f \u043b\u0438\u043d\u0438\u044f \u043f\u0438\u0442\u0430\u0435\u0442:<\/p>\n<p>\u0443\u0437\u0435\u043b [4] \u2013 \u0437\u0432\u0443\u043a\u043e\u0432\u0443\u044e \u0438\u043d\u0434\u0438\u043a\u0430\u0446\u0438\u044e,<\/p>\n<p>\u0443\u0437\u0435\u043b [5] \u2013 \u0434\u0435\u043b\u0438\u0442\u0435\u043b\u044c \u043d\u0430\u043f\u0440\u044f\u0436\u0435\u043d\u0438\u044f \u0434\u043b\u044f \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433\u0430 \u043f\u0438\u0442\u0430\u043d\u0438\u044f.<\/p>\n<p>\u0410\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u043e \u044d\u0442\u043e\u0442 \u0443\u0437\u0435\u043b \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0438 \u0434\u043b\u044f \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f DC\/DC-\u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 \u0438\u043b\u0438 \u0434\u0440\u0443\u0433\u0438\u0445 \u043c\u043e\u0434\u0443\u043b\u0435\u0439, \u0442\u0440\u0435\u0431\u0443\u044e\u0449\u0438\u0445 \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u043c\u043e\u0433\u043e \u043f\u0438\u0442\u0430\u043d\u0438\u044f.<\/p>\n<figure class=\"full-width\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/aa0\/47b\/a7d\/aa047ba7d82e982a2cfdc062024a92c1.png\" width=\"897\" height=\"495\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/aa0\/47b\/a7d\/aa047ba7d82e982a2cfdc062024a92c1.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/aa0\/47b\/a7d\/aa047ba7d82e982a2cfdc062024a92c1.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<p><strong>\u041a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f Clock<\/strong> <\/p>\n<figure class=\"full-width\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/99a\/de4\/01d\/99ade401d15461bb607801485c026ac3.png\" width=\"895\" height=\"595\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/99a\/de4\/01d\/99ade401d15461bb607801485c026ac3.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/99a\/de4\/01d\/99ade401d15461bb607801485c026ac3.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<h4>\u0420\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u043e\u0433\u043e \u043a\u043e\u0434\u0430 <\/h4>\n<p><em>\u0421\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u0441\u043a\u0430\u0447\u0438\u0432\u0430\u043d\u0438\u0435 \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u0433\u043e \u043a\u043e\u0434\u0430 [\u00a0<\/em><a href=\"https:\/\/t.me\/ChipCraft\" rel=\"noopener noreferrer nofollow\"><em>https:\/\/t.me\/ChipCraft<\/em><\/a><em>\u00a0\u0412 \u0437\u0430\u043a\u0440\u0435\u043f\u043b\u0435\u043d\u043d\u043e\u043c \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0438 [ #\u0438\u0441\u0441\u043a\u0443\u0441\u0442\u0432\u043e\u043c\u043a_\u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0439_\u043a\u043e\u0434 &#8212;<\/em>\u0418\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u043a\u043e\u0434 \u0434\u043b\u044f Adc_VoltageControl_STM32F103C8T6<em>]<\/em>  <\/p>\n<blockquote>\n<p>\u0417\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u0447\u043d\u044b\u0439 \u0444\u0430\u0439\u043b keys.h (\u0440\u0430\u0431\u043e\u0442\u0430 \u0441 \u043a\u043d\u043e\u043f\u043a\u0430\u043c\u0438)<\/p>\n<\/blockquote>\n<p>\u0412 \u0434\u0430\u043d\u043d\u043e\u043c \u0444\u0430\u0439\u043b\u0435 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u044b:<\/p>\n<ul>\n<li>\n<p>\u0424\u0443\u043d\u043a\u0446\u0438\u0438 \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u043a\u043d\u043e\u043f\u043a\u0430\u043c\u0438;<\/p>\n<\/li>\n<li>\n<p>\u0411\u0438\u0442\u043e\u0432\u044b\u0435 \u043c\u0430\u0441\u043a\u0438 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0439;<\/p>\n<\/li>\n<li>\n<p>\u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u044b \u0434\u043b\u044f \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0445 \u0441\u0446\u0435\u043d\u0430\u0440\u0438\u0435\u0432 \u043d\u0430\u0436\u0430\u0442\u0438\u0439.<\/p>\n<\/li>\n<\/ul>\n<details class=\"spoiler\">\n<summary>keys.h<\/summary>\n<div class=\"spoiler__content\">\n<pre><code class=\"objectivec\">#ifndef INC_PROJECT_BU_KEYS_H_ #define INC_PROJECT_BU_KEYS_H_  unsigned short getKeyState(void); \/\/\u0432\u044b\u0434\u0430\u0451\u0442 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u043f\u0438\u043d\u043e\u0432 \u043a\u043d\u043e\u043f\u043e\u043a \u0432 \u0434\u0430\u043d\u043d\u044b\u0439 \u043c\u043e\u043c\u0435\u043d\u0442 \u0431\u0435\u0437 \u0443\u0447\u0451\u0442\u0430 \u0437\u0430\u0434\u0435\u0440\u0436\u0435\u043a \u0434\u043b\u044f \u0434\u0440\u0435\u0431\u0435\u0437\u0433\u0430 unsigned short getKeyPinState_AtNow(void); void keysDrv_Handler(void);\/\/\u044d\u0442\u0443 \u0444\u0443\u043d\u043a\u0446\u0438\u044e \u043d\u0443\u0436\u043d\u043e \u0432\u044b\u0437\u044b\u0432\u0430\u0442\u044c \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u043e  #ifndef KEY1_Drv #define KEY1_Drv1u \/\/\u043a\u043d\u043e\u043f\u043a\u0430 \u043d\u0430\u0436\u0430\u0442\u0430 #endif #ifndef KEY1Double_Click_Drv #define KEY1Double_Click_Drv #endif #ifndef KEY3_Drv #define KEY3_Drv4u #endif #ifndef KEY4_Drv #define KEY4_Drv8u #endif  #ifndef KEY1Hold_Drv #define KEY1Hold_Drv16u \/\/ \u043a\u043d\u043e\u043f\u043a\u0430 \u0443\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442\u0441\u044f #endif #ifndef KEY2Hold_Drv #define KEY2Hold_Drv32u #endif #ifndef KEY3Hold_Drv #define KEY3Hold_Drv64u #endif #ifndef KEY4Hold_Drv #define KEY4Hold_Drv128u #endif  #ifndef KEY1Release_Drv #define KEY1Release_Drv256u \/\/\u0411\u0438\u0442 \u043e\u0442\u043f\u0443\u0441\u043a\u0430\u043d\u0438\u044f \u043a\u043d\u043e\u043f\u043a\u0438 #endif #ifndef KEY2Release_Drv #define KEY2Release_Drv512u #endif #ifndef KEY3Release_Drv #define KEY3Release_Drv1024u #endif #ifndef KEY4Release_Drv #define KEY4Release_Drv2048u #endif  #endif \/* INC_PROJECT_BU_KEYS_H_ *\/<\/code><\/pre>\n<\/div>\n<\/details>\n<blockquote>\n<p>\u0420\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u043c\u043e\u0434\u0443\u043b\u044f keys.c (\u0440\u0430\u0431\u043e\u0442\u0430 \u0441 \u043a\u043d\u043e\u043f\u043a\u0430\u043c\u0438)<\/p>\n<\/blockquote>\n<p>\u0414\u0430\u043d\u043d\u044b\u0439 \u043c\u043e\u0434\u0443\u043b\u044c \u0432\u043a\u043b\u044e\u0447\u0430\u0435\u0442 \u0432 \u0441\u0435\u0431\u044f \u0437\u0430\u0434\u0430\u0447\u0438: <\/p>\n<ul>\n<li>\n<p>\u0423\u0441\u0442\u0440\u0430\u043d\u0435\u043d\u0438\u0435 \u0434\u0440\u0435\u0431\u0435\u0437\u0433\u0430 \u043a\u043e\u043d\u0442\u0430\u043a\u0442\u043e\u0432;    <\/p>\n<\/li>\n<li>\n<p>\u0420\u0430\u0437\u043b\u0438\u0447\u0438\u0435 \u043c\u0435\u0436\u0434\u0443 \u043a\u043e\u0440\u043e\u0442\u043a\u0438\u043c \u0438 \u0434\u043e\u043b\u0433\u0438\u043c \u043d\u0430\u0436\u0430\u0442\u0438\u0435\u043c;<\/p>\n<\/li>\n<li>\n<p>\u041e\u0442\u0441\u043b\u0435\u0436\u0438\u0432\u0430\u043d\u0438\u0435 \u0441\u043e\u0431\u044b\u0442\u0438\u0439 \u043d\u0430\u0436\u0430\u0442\u0438\u044f, \u0443\u0434\u0435\u0440\u0436\u0430\u043d\u0438\u044f \u0438 \u043e\u0442\u043f\u0443\u0441\u043a\u0430\u043d\u0438\u044f.<\/p>\n<\/li>\n<\/ul>\n<p><strong>keysDrv_Handler()<\/strong><\/p>\n<p>\u0412\u044b\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f <strong>\u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u043e<\/strong> \u0432 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u043c \u0446\u0438\u043a\u043b\u0435 \u0438\u043b\u0438 \u0438\u0437 \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u043e\u0433\u043e \u0442\u0430\u0439\u043c\u0435\u0440\u0430.<\/p>\n<p><strong>\u041d\u0430\u0436\u0430\u0442\u0438\u0435  \u043a\u043d\u043e\u043f\u043a\u0438 (\u043f\u0435\u0440\u0432\u0438\u0447\u043d\u043e\u0435 \u0441\u043e\u0431\u044b\u0442\u0438\u0435)<\/strong><\/p>\n<pre><code class=\"objectivec\">2.if(gl_kDrv_key1_blockEvent == 0 &amp;&amp; ON_OFFB_state == KEY_PRESS) { 3.    gl_kDrv_key1_blockEvent = 1; 4.    gl_kDrv_time_key1_press = ms; 5.}<\/code><\/pre>\n<p>\u0421\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u0442\u0441\u044f \u0432\u0440\u0435\u043c\u044f \u043d\u0430\u0436\u0430\u0442\u0438\u044f, \u0434\u0430\u043b\u044c\u043d\u0435\u0439\u0448\u0438\u0435 \u0441\u043e\u0431\u044b\u0442\u0438\u044f \u0431\u043b\u043e\u043a\u0438\u0440\u0443\u044e\u0442\u0441\u044f \u0434\u043e \u043e\u0442\u043f\u0443\u0441\u043a\u0430\u043d\u0438\u044f<\/p>\n<p><strong>\u0424\u0438\u043b\u044c\u0442\u0440 \u0434\u0440\u0435\u0431\u0435\u0437\u0433\u0430<\/strong><\/p>\n<pre><code class=\"objectivec\">else if(gl_kDrv_key1_blockEvent == 1 &amp;&amp;          ON_OFFB_state==KEY_PRESS &amp;&amp;          gl_kDrv_key1_short_state==0 &amp;&amp;          (ms - gl_kDrv_time_key1_press) &gt; DELAY4TIMER){ \/\/\u043f\u0440\u043e\u0448\u043b\u043e \u0432\u0440\u0435\u043c\u044f \u0437\u0430\u0449\u0438\u0442\u044b \u043e\u0442 \u0434\u0440\u0435\u0431\u0435\u0437\u0433\u0430, \u043a\u043d\u043e\u043f\u043a\u0430 \u043d\u0430\u0436\u0430\u0442\u0430 gl_kDrv_key1_short_state=1; keyState &amp;= ~KEY1Release_Drv;\/\/\u0441\u043d\u0438\u043c\u0430\u0435\u043c \u0431\u0438\u0442 \u043e\u0442\u043f\u0443\u0441\u043a\u0430\u043d\u0438\u044f \u043a\u043d\u043e\u043f\u043a\u0438 keyState |= KEY1_Drv; }<\/code><\/pre>\n<p>\u0415\u0441\u043b\u0438 \u043f\u0440\u043e\u0448\u043b\u043e \u0431\u043e\u043b\u044c\u0448\u0435 DELAY4TIMER, \u0441\u0447\u0438\u0442\u0430\u0435\u043c \u043a\u043d\u043e\u043f\u043a\u0443 \u0440\u0435\u0430\u043b\u044c\u043d\u043e \u043d\u0430\u0436\u0430\u0442\u043e\u0439.<\/p>\n<p><strong>\u041e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435 \u0443\u0434\u0435\u0440\u0436\u0430\u043d\u0438\u044f<\/strong><\/p>\n<pre><code class=\"objectivec\">else if(gl_kDrv_key1_blockEvent == 1 &amp;&amp;          ON_OFFB_state==KEY_PRESS &amp;&amp;          gl_kDrv_key1_short_state==1 &amp;&amp;          (ms - gl_kDrv_time_key1_press) &gt; DELAY_HOLD_TIMER){ keyState |= KEY1Hold_Drv; }<\/code><\/pre>\n<p>\u0415\u0441\u043b\u0438 \u043f\u0440\u043e\u0448\u043b\u043e \u0431\u043e\u043b\u044c\u0448\u0435 DELAY_HOLD_TIMER, \u0432\u044b\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u043c \u0431\u0438\u0442 \u0443\u0434\u0435\u0440\u0436\u0430\u043d\u0438\u044f.<\/p>\n<p><strong>\u041e\u0442\u043f\u0443\u0441\u043a\u0430\u043d\u0438\u0435 \u043a\u043d\u043e\u043f\u043a\u0438<\/strong><\/p>\n<pre><code class=\"objectivec\">else if(gl_kDrv_key1_blockEvent == 1 &amp;&amp; ON_OFFB_state==KEY_UNPRESS &amp;&amp; gl_kDrv_key1_short_state==1){ gl_kDrv_key1_blockEvent=0; gl_kDrv_key1_short_state=0; keyState |= KEY1Release_Drv; keyState &amp;= ~KEY1_Drv;\/\/\u0441\u043d\u0438\u043c\u0430\u0435\u043c \u0431\u0438\u0442 \u043d\u0430\u0436\u0430\u0442\u0438\u044f \u043a\u043d\u043e\u043f\u043a\u0438 keyState &amp;= ~KEY1Hold_Drv;\/\/\u0441\u043d\u0438\u043c\u0430\u0435\u043c \u0431\u0438\u0442 \u0443\u0434\u0435\u0440\u0436\u0430\u043d\u0438\u044f \u043a\u043d\u043e\u043f\u043a\u0438 }<\/code><\/pre>\n<p>\u041f\u0440\u0438 \u043e\u0442\u043f\u0443\u0441\u043a\u0430\u043d\u0438\u0438 \u043a\u043d\u043e\u043f\u043a\u0438 \u0441\u0431\u0440\u0430\u0441\u044b\u0432\u0430\u044e\u0442\u0441\u044f \u0444\u043b\u0430\u0433\u0438 \u0443\u0434\u0435\u0440\u0436\u0430\u043d\u0438\u044f \u0438 \u043d\u0430\u0436\u0430\u0442\u0438\u044f, \u0432\u044b\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0431\u0438\u0442 \u043e\u0442\u043f\u0443\u0441\u043a\u0430\u043d\u0438\u044f.<\/p>\n<p><strong>getKeyState()<\/strong><\/p>\n<p>\u0412\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0442\u0435\u043a\u0443\u0449\u0435\u0435 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u043a\u043d\u043e\u043f\u043e\u043a \u0432 \u0432\u0438\u0434\u0435 \u0431\u0438\u0442\u043e\u0432\u043e\u0439 \u043c\u0430\u0441\u043a\u0438<\/p>\n<ul>\n<li>\n<p>\u041f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c, \u0431\u044b\u043b\u0430 \u043b\u0438 \u043a\u043d\u043e\u043f\u043a\u0430 \u043d\u0430\u0436\u0430\u0442\u0430, \u0443\u0434\u0435\u0440\u0436\u0430\u043d\u0430 \u0438\u043b\u0438 \u043e\u0442\u043f\u0443\u0449\u0435\u043d\u0430;<\/p>\n<\/li>\n<li>\n<p>\u041f\u043e\u0441\u043b\u0435 \u0441\u0447\u0438\u0442\u044b\u0432\u0430\u043d\u0438\u044f \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0444\u043b\u0430\u0433\u0438 (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043e\u0442\u043f\u0443\u0441\u043a\u0430\u043d\u0438\u0435) \u0441\u0431\u0440\u0430\u0441\u044b\u0432\u0430\u044e\u0442\u0441\u044f ,\u0447\u0442\u043e\u0431\u044b \u0441\u043e\u0431\u044b\u0442\u0438\u0435 \u043d\u0435 \u043f\u043e\u0432\u0442\u043e\u0440\u044f\u043b\u043e\u0441\u044c. <\/p>\n<\/li>\n<\/ul>\n<p><strong>getKeyPinState_AtNow()<\/strong><\/p>\n<p>\u0412\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u043c\u043e\u043c\u0435\u043d\u0442\u0430\u043b\u044c\u043d\u043e\u0435 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u043d\u043e\u0436\u0435\u043a GPIO, \u0431\u0435\u0437 \u0443\u0447\u0435\u0442\u0430 \u0434\u0440\u0435\u0431\u0435\u0437\u0433\u0430<\/p>\n<ul>\n<li>\n<p>\u041f\u043e\u043b\u0435\u0437\u043d\u043e \u0434\u043b\u044f \u043e\u0442\u043b\u0430\u0434\u043a\u0438 \u0438\u043b\u0438 \u043a\u043e\u0433\u0434\u0430 \u043d\u0443\u0436\u043d\u043e \u043c\u0433\u043d\u043e\u0432\u0435\u043d\u043d\u043e \u0443\u0437\u043d\u0430\u0442\u044c, \u043d\u0430\u0436\u0430\u0442\u0430 \u043b\u0438 \u043a\u043d\u043e\u043f\u043a\u0430 \u043f\u0440\u044f\u043c\u043e \u0441\u0435\u0439\u0447\u0430\u0441<\/p>\n<\/li>\n<\/ul>\n<details class=\"spoiler\">\n<summary>keys.c<\/summary>\n<div class=\"spoiler__content\">\n<pre><code class=\"objectivec\">#include \".\/Project\/BU\/keys.h\" #include \".\/Project\/shared.h\" #include \"main.h\" #include &lt;stdlib.h&gt;\/\/abs #include &lt;string.h&gt;\/\/memset #include &lt;stdio.h&gt;  \/\/\u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 #define DELAY4TIMER20\/\/\u0437\u0430\u0434\u0435\u0440\u0436\u043a\u0430 \u0434\u043b\u044f \u0442\u0430\u0439\u043c\u0435\u0440\u0430 \u0432 \u043c\u0438\u043b\u043b\u0438\u0441\u0435\u043a\u0443\u043d\u0434\u0430\u0445 (\u043d\u0430 \u0434\u0440\u0435\u0431\u0435\u0437\u0433) \/\/25u\/\/\u0431\u043e\u043b\u044c\u0448\u0435 \u0447\u0435\u043c COUNT_HOLD_PERIODS, \u0442\u043e \u0441\u0447\u0438\u0442\u0430\u0435\u0442\u0441\u044f, \u0447\u0442\u043e \u043a\u043d\u043e\u043f\u043a\u0430 \u0437\u0430\u0436\u0430\u0442\u0430 (\u0434\u043e\u043b\u0433\u043e\u0435 \u043d\u0430\u0436\u0430\u0442\u0438\u0435) #define COUNT_HOLD_PERIODS40 #define DELAY_HOLD_TIMER400\/\/\u0437\u0430\u0434\u0435\u0440\u0436\u043a\u0430 \u0434\u043b\u044f \u043e\u0442\u0441\u043b\u0435\u0436\u0438\u0432\u0430\u043d\u0438\u044f \u0443\u0434\u0435\u0440\u0436\u0430\u043d\u0438\u044f \u0432 \u043c\u0438\u043b\u043b\u0438\u0441\u0435\u043a\u0443\u043d\u0434\u0430\u0445 \/\/E N D \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438  \/\/\u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 #define KEY1_GPIO_Port GPIOB \/\/\u0431\u0443\u043a\u0432\u0430 \u043f\u043e\u0440\u0442\u0430 \u0434\u043b\u044f \u043a\u043d\u043e\u043f\u043a\u0438  (GPIOA, GPIOB, GPIOC, ...) #define KEY1_Pin GPIO_PIN_11 \/\/\u043d\u043e\u043c\u0435\u0440 \u043f\u0438\u043d\u0430 \u043d\u0430 \u043f\u043e\u0440\u0442\u0443 \u0434\u043b\u044f \u043a\u043d\u043e\u043f\u043a\u0438 \/\/E N D \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438  volatile unsigned short keyState=0x0;\/\/\u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u0431\u0438\u0442\u043e\u0432 \u0447\u0442\u043e \u043a\u043d\u043e\u043f\u043a\u0438 \u043e\u0442\u043f\u0443\u0449\u0435\u043d\u044b  #define KEY_PRESS 1 \/\/1=\u043d\u0430\u0436\u0430\u0442\u0430\u044f \u043a\u043d\u043e\u043f\u043a\u0430 \u044d\u0442\u043e \u043b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u0435\u0434\u0438\u043d\u0438\u0446\u0430, \u0438\u043d\u0430\u0447\u0435 0 #define KEY_UNPRESS 0\/\/0=\u043e\u0442\u043f\u0443\u0449\u0435\u043d\u043d\u0430\u044f \u043a\u043d\u043e\u043f\u043a\u0430 \u044d\u0442\u043e \u043b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u043d\u043e\u043b\u044c, \u0438\u043d\u0430\u0447\u0435 1  uint8_t gl_kDrv_key1_blockEvent = 0;\/\/\u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0442\u044c \u043b\u0438 \u0441\u043e\u0431\u044b\u0442\u0438\u0435 \u043d\u0430\u0436\u0430\u0442\u0438\u044f \u043a\u043d\u043e\u043f\u043a\u0438 1 uint32_t gl_kDrv_time_key1_press = 0;\/\/\u0432\u0440\u0435\u043c\u044f, \u043a\u043e\u0433\u0434\u0430 \u0431\u044b\u043b\u0430 \u043d\u0430\u0436\u0430\u0442\u0430 \u043a\u043d\u043e\u043f\u043a\u0430 uint8_t gl_kDrv_key1_short_state = 0;\/\/\u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0430\u043b\u0438 \u043b\u0438 \u043a\u043e\u0440\u043e\u0442\u043a\u043e\u0435 \u043d\u0430\u0436\u0430\u0442\u0438\u0435   void keysDrv_Handler(){  uint32_t ms = HAL_GetTick(); uint8_t ON_OFFB_state = HAL_GPIO_ReadPin(KEY1_GPIO_Port, KEY1_Pin);  \/\/\u043a\u043d\u043e\u043f\u043a\u0430 1 \/\/\u0435\u0441\u043b\u0438 \u043d\u0435 \u0437\u0430\u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u0430\u043d\u043e \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u0441\u043e\u0431\u044b\u0442\u0438\u044f \u0438 \u043a\u043d\u043e\u043f\u043a\u0430 \u043d\u0430\u0436\u0430\u0442\u0430 if(gl_kDrv_key1_blockEvent == 0 &amp;&amp; ON_OFFB_state==KEY_PRESS){ gl_kDrv_key1_blockEvent=1; gl_kDrv_time_key1_press = ms; }else if(gl_kDrv_key1_blockEvent == 1 &amp;&amp; ON_OFFB_state==KEY_PRESS &amp;&amp; gl_kDrv_key1_short_state==0 &amp;&amp; (ms - gl_kDrv_time_key1_press) &gt; DELAY4TIMER){ \/\/\u043f\u0440\u043e\u0448\u043b\u043e \u0432\u0440\u0435\u043c\u044f \u0437\u0430\u0449\u0438\u0442\u044b \u043e\u0442 \u0434\u0440\u0435\u0431\u0435\u0437\u0433\u0430, \u043a\u043d\u043e\u043f\u043a\u0430 \u043d\u0430\u0436\u0430\u0442\u0430 gl_kDrv_key1_short_state=1; keyState &amp;= ~KEY1Release_Drv;\/\/\u0441\u043d\u0438\u043c\u0430\u0435\u043c \u0431\u0438\u0442 \u043e\u0442\u043f\u0443\u0441\u043a\u0430\u043d\u0438\u044f \u043a\u043d\u043e\u043f\u043a\u0438 keyState |= KEY1_Drv; \/\/\u043a\u043d\u043e\u043f\u043a\u0430 \u0443\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442\u0441\u044f }else if(gl_kDrv_key1_blockEvent == 1 &amp;&amp; ON_OFFB_state==KEY_PRESS &amp;&amp; gl_kDrv_key1_short_state==1 &amp;&amp; (ms - gl_kDrv_time_key1_press) &gt; DELAY_HOLD_TIMER){ keyState |= KEY1Hold_Drv; \/\/\u043a\u043d\u043e\u043f\u043a\u0430 \u043e\u0442\u043f\u0443\u0449\u0435\u043d\u0430 }else if(gl_kDrv_key1_blockEvent == 1 &amp;&amp; ON_OFFB_state==KEY_UNPRESS &amp;&amp; gl_kDrv_key1_short_state==1){ gl_kDrv_key1_blockEvent=0; gl_kDrv_key1_short_state=0; keyState |= KEY1Release_Drv; keyState &amp;= ~KEY1_Drv;\/\/\u0441\u043d\u0438\u043c\u0430\u0435\u043c \u0431\u0438\u0442 \u043d\u0430\u0436\u0430\u0442\u0438\u044f \u043a\u043d\u043e\u043f\u043a\u0438 keyState &amp;= ~KEY1Hold_Drv;\/\/\u0441\u043d\u0438\u043c\u0430\u0435\u043c \u0431\u0438\u0442 \u0443\u0434\u0435\u0440\u0436\u0430\u043d\u0438\u044f \u043a\u043d\u043e\u043f\u043a\u0438 \/\/\u0435\u0441\u043b\u0438 \u0441\u0440\u0430\u0431\u043e\u0442\u0430\u043b\u043e \u043f\u0435\u0440\u0432\u043e\u0435 \u0443\u0441\u043b\u043e\u0432\u0438\u0435 \u043d\u043e \u043d\u0435 \u0441\u0440\u0430\u0431\u043e\u0442\u0430\u043b\u0438 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0435 }else if(gl_kDrv_key1_blockEvent == 1 &amp;&amp; ON_OFFB_state==KEY_UNPRESS &amp;&amp; (ms - gl_kDrv_time_key1_press) &gt; COUNT_HOLD_PERIODS*2){ gl_kDrv_key1_blockEvent=0; gl_kDrv_key1_short_state=0; } } unsigned short getKeyState(void){ \/\/ \u0434\u0430\u043d\u043d\u044b\u0439 \u0431\u043b\u043e\u043a \u0441\u043b\u0443\u0436\u0438\u0442 \u0434\u043b\u044f \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u0441\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0435\u0442 \u043b\u0438 keyState \u043d\u0438\u043a\u0443\u0434\u0430 \u0434\u0430\u043b\u044c\u0448\u0435 \u043d\u0435 \u0438\u0434\u0435\u0442. if(keyState){\/\/-\u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u0442 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043b\u0438 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u043d\u0435 \u043d\u0443\u043b\u0435\u0432\u044b\u043c int i=0; i++; }  unsigned short ret=keyState;\/\/\u0437\u0434\u0435\u0441\u044c \u044f \u043f\u043e\u043b\u0443\u0447\u0430\u044e \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u043a\u043d\u043e\u043f\u043a\u0438  keyState &amp;= 0xF0FF;\/\/\u0441\u043d\u0438\u043c\u0430\u0435\u043c \u0431\u0438\u0442 \u043e\u0442\u043f\u0443\u0441\u043a\u0430\u043d\u0438\u044f \u043a\u043d\u043e\u043f\u043a\u0438  return ret; } \/\/\u0432\u044b\u0434\u0430\u0451\u0442 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u043f\u0438\u043d\u043e\u0432 \u043a\u043d\u043e\u043f\u043e\u043a \u0432 \u0434\u0430\u043d\u043d\u044b\u0439 \u043c\u043e\u043c\u0435\u043d\u0442 \u0431\u0435\u0437 \u0443\u0447\u0451\u0442\u0430 \u0437\u0430\u0434\u0435\u0440\u0436\u0435\u043a \u0434\u043b\u044f \u0434\u0440\u0435\u0431\u0435\u0437\u0433\u0430 unsigned short getKeyPinState_AtNow(void) { unsigned short ret=0;  uint8_t key1_state = HAL_GPIO_ReadPin(KEY1_GPIO_Port, KEY1_Pin);  if(key1_state==KEY_PRESS){\/\/\u0435\u0441\u043b\u0438 \u043a\u043d\u043e\u043f\u043a\u0430 \u043d\u0430\u0436\u0430\u0442\u0430 ret |= KEY1_Drv; } return ret; }<\/code><\/pre>\n<\/div>\n<\/details>\n<blockquote>\n<p>\u0420\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u043c\u043e\u0434\u0443\u043b\u044f ADC_Calc.c (\u0440\u0430\u0431\u043e\u0442\u0430 \u0441 \u0410\u0426\u041f)<\/p>\n<\/blockquote>\n<p>\u0414\u0430\u043d\u043d\u044b\u0439 \u043c\u043e\u0434\u0443\u043b\u044c \u0440\u0435\u0430\u043b\u0438\u0437\u0443\u0435\u0442 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044c \u043d\u0430\u043f\u0440\u044f\u0436\u0435\u043d\u0438\u044f \u043f\u0438\u0442\u0430\u043d\u0438\u044f \u0447\u0435\u0440\u0435\u0437 \u0410\u0426\u041f \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0430 STM32F103C8T6, \u0438\u0437\u043c\u0435\u0440\u0435\u043d\u0438\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u044e\u0442\u0441\u044f \u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c:<\/p>\n<ul>\n<li>\n<p>DMA (\u0446\u0438\u043a\u043b\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u0437\u0430\u043f\u0438\u0441\u044c \u0434\u0430\u043d\u043d\u044b\u0445 \u0432 \u0431\u0443\u0444\u0435\u0440);<\/p>\n<\/li>\n<li>\n<p>\u0412\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u043e\u0433\u043e \u043e\u043f\u043e\u0440\u043d\u043e\u0433\u043e \u043d\u0430\u043f\u0440\u044f\u0436\u0435\u043d\u0438\u044f Vrefint;<\/p>\n<\/li>\n<li>\n<p>\u0421\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0433\u043e \u0434\u0435\u043b\u0438\u0442\u0435\u043b\u044f \u043d\u0430\u043f\u0440\u044f\u0436\u0435\u043d\u0438\u044f \u043d\u0430 \u0432\u0445\u043e\u0434\u0435.<\/p>\n<\/li>\n<\/ul>\n<p><strong>ADC_Calc_Handler() &#8212; \u0433\u043b\u0430\u0432\u043d\u044b\u0439 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u0439<\/strong><\/p>\n<ul>\n<li>\n<p>\u041f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u0442, \u0437\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u0430 \u043b\u0438 \u043f\u0435\u0440\u0432\u0430\u044f \u0438\u043b\u0438 \u0432\u0442\u043e\u0440\u0430\u044f \u043f\u043e\u043b\u043e\u0432\u0438\u043d\u0430 DMA-\u0431\u0443\u0444\u0435\u0440\u0430;<\/p>\n<\/li>\n<li>\n<p>\u0423\u0441\u0440\u0435\u0434\u043d\u044f\u0435\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0434\u043b\u044f \u043a\u0430\u043d\u0430\u043b\u0430 \u0438\u0437\u043c\u0435\u0440\u0435\u043d\u0438\u044f \u0438 Vrefint;<\/p>\n<\/li>\n<li>\n<p>\u041a\u043e\u043d\u0432\u0435\u0440\u0442\u0438\u0440\u0443\u0435\u0442 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0432 \u043d\u0430\u043f\u0440\u044f\u0436\u0435\u043d\u0438\u0435 \u0432\u044b\u0437\u043e\u0432\u043e\u043c adc_calcVoltage();<\/p>\n<\/li>\n<li>\n<p>\u0415\u0441\u043b\u0438 \u043d\u0430\u043f\u0440\u044f\u0436\u0435\u043d\u0438\u0435 \u043d\u0438\u0436\u0435 \u043f\u043e\u0440\u043e\u0433\u0430 critical_stress \u2192 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u043a\u043e\u043c\u0430\u043d\u0434\u0443 \u043e\u0442\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u043f\u0438\u0442\u0430\u043d\u0438\u044f (FORCE_POWER_OFF); <\/p>\n<\/li>\n<li>\n<p>\u041f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442 \u0444\u0438\u043b\u044c\u0442\u0440\u0430\u0446\u0438\u044e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u043f\u043e \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d\u0443 750 &lt; val_input &lt; 2800 (\u0437\u0430\u0449\u0438\u0442\u0430 \u043e\u0442 \u0448\u0443\u043c\u043e\u0432 \u0438 \u0432\u044b\u0431\u0440\u043e\u0441\u043e\u0432).             <\/p>\n<\/li>\n<\/ul>\n<p><strong>HAL_ADC_ConvCpltCallback()<\/strong><\/p>\n<p>\u0412\u044b\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043f\u043e \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u044e DMA Transfer Complete \u2192 \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u0442 \u0444\u043b\u0430\u0433 adcIRFullDone<\/p>\n<p><strong>HAL_ADC_ConvHalfCpltCallback()<\/strong><\/p>\n<p>\u0412\u044b\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043f\u043e \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u044e DMA Half Transfer Complete \u2192 \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u0442 \u0444\u043b\u0430\u0433 adcIRHalfDone<\/p>\n<p><strong>adc_init()<\/strong><\/p>\n<ul>\n<li>\n<p>\u0421\u0431\u0440\u043e\u0441 \u0444\u043b\u0430\u0433\u043e\u0432 \u0438 \u0431\u0443\u0444\u0435\u0440\u0430.<\/p>\n<\/li>\n<\/ul>\n<p><strong>adc_start()<\/strong><\/p>\n<p>\u0417\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u0442 \u0410\u0426\u041f \u0432 \u0440\u0435\u0436\u0438\u043c\u0435 DMA, \u0434\u0430\u043b\u0435\u0435 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0446\u0438\u043a\u043b\u0438\u0447\u0435\u0441\u043a\u043e\u0435  \u0437\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 adcDMAbuf \u0431\u0435\u0437 \u0443\u0447\u0430\u0441\u0442\u0438\u044f \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u0430<\/p>\n<p><strong>adc_stop()<\/strong><\/p>\n<ul>\n<li>\n<p>\u041e\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u0442 \u0410\u0426\u041f \u0438 DMA;<\/p>\n<\/li>\n<li>\n<p>\u0421\u0431\u0440\u0430\u0441\u044b\u0432\u0430\u0435\u0442 \u0444\u043b\u0430\u0433\u0438 \u0433\u043e\u0442\u043e\u0432\u043d\u043e\u0441\u0442\u0438<\/p>\n<\/li>\n<\/ul>\n<p><strong>adc_calcVoltage()<\/strong><\/p>\n<p>\u041a\u043b\u044e\u0447\u0435\u0432\u0430\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u2014 \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u0438\u0442 \u00ab\u0441\u044b\u0440\u044b\u0435\u00bb \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0410\u0426\u041f \u0432 \u043d\u0430\u043f\u0440\u044f\u0436\u0435\u043d\u0438\u0435 <\/p>\n<p><strong>adc_GetVoltage()<\/strong><\/p>\n<p>\u0413\u0435\u0442\u0442\u0435\u0440 \u0434\u043b\u044f \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0433\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0440\u0430\u0441\u0441\u0447\u0438\u0442\u0430\u043d\u043d\u043e\u0433\u043e \u043d\u0430\u043f\u0440\u044f\u0436\u0435\u043d\u0438\u044f <\/p>\n<p>\u041e\u0431\u0449\u0438\u0439 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u0440\u0430\u0431\u043e\u0442\u044b:<\/p>\n<ul>\n<li>\n<p>DMA \u0437\u0430\u043f\u043e\u043b\u043d\u044f\u0435\u0442 \u0431\u0443\u0444\u0435\u0440 \u043f\u0430\u0440\u0430\u043c\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 (input, Vrefint);<\/p>\n<\/li>\n<li>\n<p>\u041f\u0440\u0438 \u0437\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0438 \u043f\u043e\u043b\u043e\u0432\u0438\u043d\u044b \u0431\u0443\u0444\u0435\u0440\u0430 \u2192 \u0441\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0435\u0442 \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u0435, \u0441\u0442\u0430\u0432\u0438\u0442\u0441\u044f \u0444\u043b\u0430\u0433;<\/p>\n<\/li>\n<li>\n<p>ADC_Calc_Handler \u0441\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u0442 \u0434\u0430\u043d\u043d\u044b\u0435, \u0444\u0438\u043b\u044c\u0442\u0440\u0443\u0435\u0442 \u0438 \u0443\u0441\u0440\u0435\u0434\u043d\u044f\u0435\u0442;<\/p>\n<\/li>\n<li>\n<p>\u0412\u044b\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f adc_calcVoltage, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u0438\u0442 \u0432\u043e\u043b\u044c\u0442\u044b;<\/p>\n<\/li>\n<li>\n<p>\u0417\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e \u0447\u0435\u0440\u0435\u0437 adc_GetVoltage();<\/p>\n<\/li>\n<li>\n<p>\u0415\u0441\u043b\u0438 \u043d\u0430\u043f\u0440\u044f\u0436\u0435\u043d\u0438\u0435 \u043c\u0435\u043d\u044c\u0448\u0435 9 \u0412 (\u043f\u043e critical_stress) \u2192 \u043e\u0442\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0435\u0442 \u0430\u0432\u0430\u0440\u0438\u0439\u043d\u043e\u0435 \u0432\u044b\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435. <\/p>\n<\/li>\n<\/ul>\n<details class=\"spoiler\">\n<summary>ADC_Calc.c<\/summary>\n<div class=\"spoiler__content\">\n<pre><code class=\"objectivec\">#include \".\/Project\/shared.h\" #include \".\/Project\/BU\/keys.h\" #include \".\/Project\/BU\/ADC_Calc.h\" #include \"main.h\" #include &lt;stdlib.h&gt;\/\/abs #include &lt;string.h&gt;\/\/memset #include &lt;stdio.h&gt; \/\/\u0443 F103 \u043d\u0435\u0442 \u043a\u0430\u043b\u0438\u0431\u0440.\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f, \u0432\u0437\u044f\u0442\u043e \u0438\u0437 datasheet #define VREFINT_TYP 1.20  #define SIZE_DMABUF400  volatile uint16_t adcDMAbuf[SIZE_DMABUF] = {0,}; volatile uint8_t adcIRFullDone=0; \/\/\u0441\u0440\u0430\u0431\u043e\u0442\u0430\u043b\u043e \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u0435 volatile uint8_t adcIRHalfDone=0; \/\/\u0441\u0440\u0430\u0431\u043e\u0442\u0430\u043b\u043e \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u0435  float gl_voltage=0;  void adc_calcVoltage(uint16_t avg_input, uint16_t avg_vref);  float vadc_ = 0.0f; float vin = 0.0f; float vdda = 0.0f; float critical_stress =9.0f; unsigned char ret = 0;  uint16_t avg_input = 0; uint16_t avg_vref = 0;  uint16_t vrefint_cal_adr = 0;  unsigned char ADC_Calc_Handler() { uint32_t sum_input = 0; uint32_t sum_vrefint = 0; int count = 0;  if(adcIRHalfDone){\/\/\u0433\u043e\u0442\u043e\u0432\u0430 \u043f\u0435\u0440\u0432\u0430\u044f \u043f\u043e\u043b\u043e\u0432\u0438\u043d\u0430 \u0431\u0443\u0444\u0435\u0440\u0430 adcIRHalfDone = 0;  for (int i = 0; i &lt; SIZE_DMABUF \/ 2; i += 2) { uint16_t val_input = adcDMAbuf[i]; uint16_t val_vref = adcDMAbuf[i + 1];  if (val_input &gt; 750 &amp;&amp; val_input &lt; 2800) { sum_input += val_input; sum_vrefint += val_vref; count++; } } }  if(adcIRFullDone){\/\/\u0433\u043e\u0442\u043e\u0432\u0430 \u0432\u0442\u043e\u0440\u0430\u044f \u043f\u043e\u043b\u043e\u0432\u0438\u043d\u0430 \u0431\u0443\u0444\u0435\u0440\u0430 adcIRFullDone = 0;  for (int i = SIZE_DMABUF \/ 2; i &lt; SIZE_DMABUF; i += 2) { uint16_t val_input = adcDMAbuf[i]; uint16_t val_vref = adcDMAbuf[i + 1];  if (val_input &gt; 750 &amp;&amp; val_input &lt; 2800) { sum_input += val_input; sum_vrefint += val_vref; count++; } } } if (count &gt; 0) {  avg_input = sum_input \/ count; \/\/uint16_t  avg_vref = sum_vrefint \/ count; adc_calcVoltage(avg_input, avg_vref); } if(gl_voltage &amp;&amp; gl_voltage&lt;=critical_stress &amp;&amp; HAL_GetTick()&gt;2000){ ret=FORCE_POWER_OFF; } return ret; }  void HAL_ADC_ConvCpltCallback(ADC_HandleTypeDef *hadc) { if(hadc-&gt;Instance == ADC1){ adcIRFullDone=1; } }  void HAL_ADC_ConvHalfCpltCallback(ADC_HandleTypeDef *hadc) { if(hadc-&gt;Instance == ADC1){ adcIRHalfDone=1; } }  void adc_init(void) { adcIRFullDone = 0; adcIRHalfDone = 0; adcDMAbuf[0] = 0;  #if defined(S_T_M_32F1XX) HAL_ADCEx_Calibration_Start(&amp;hadc1); #endif }  void adc_start(void) { adcDMAbuf[0] = 0;  HAL_ADC_Start_DMA(&amp;hadc1, (uint32_t*)&amp;adcDMAbuf, SIZE_DMABUF); } void adc_stop() { HAL_ADC_Stop_DMA(&amp;hadc1); adcIRFullDone = 0; adcIRHalfDone = 0; }  void adc_calcVoltage(uint16_t avg_input,uint16_t avg_vref)\/\/\u043f\u0435\u0440\u0435\u0432\u043e\u0434\u0438\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0410\u0426\u041f \u0432 \u043d\u0430\u043f\u0440\u044f\u0436\u0435\u043d\u0438\u0435 { const float R1 = 221000.0f; const float R2 = 27000.0f; \/\/ \u0441\u0447\u0438\u0442\u0430\u0435\u043c VDDA \u0447\u0435\u0440\u0435\u0437 Vrefint float vdda = VREFINT_TYP * 4095.0f \/ (float)avg_vref;  \/\/ \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u0438\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043a\u0430\u043d\u0430\u043b\u0430 \u0432 \u043d\u0430\u043f\u0440\u044f\u0436\u0435\u043d\u0438\u0435 float vadc = ((float)avg_input \/ 4095.0f) * vdda;  \/\/ \u043d\u0430\u043f\u0440\u044f\u0436\u0435\u043d\u0438\u0435 \u043d\u0430 \u0432\u0445\u043e\u0434\u0435 \u0447\u0435\u0440\u0435\u0437 \u0434\u0435\u043b\u0438\u0442\u0435\u043b\u044c  vin = vadc * (R1 + R2) \/ R2 - 0.5f;  gl_voltage = vin; \/\/ \u0432\u044b\u0432\u043e\u0434 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0434\u043b\u044f \u043e\u0442\u043b\u0430\u0434\u043a\u0438 vadc_ = vadc; } float adc_GetVoltage(void) { return gl_voltage; }<\/code><\/pre>\n<\/div>\n<\/details>\n<p><strong>\u041f\u043e\u044f\u0441\u043d\u0435\u043d\u0438\u0435 \u043a \u0444\u0443\u043d\u043a\u0446\u0438\u0438 adc_calcVoltage()<\/strong><\/p>\n<p><em>\u0420\u0430\u0441\u0447\u0435\u0442 VDDA<\/em>, \u0433\u0434\u0435:<\/p>\n<p>VREFINT_TYP &#8212; \u043a\u0430\u043b\u0438\u0431\u0440\u043e\u0432\u043e\u0447\u043d\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 1.20, \u0432\u0437\u044f\u0442\u043e \u0438\u0437 datasheet, \u0443 \u0434\u0440\u0443\u0433\u0438\u0445 \u041c\u041a \u043d\u0430 \u0437\u0430\u0432\u043e\u0434\u0435 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c \u043f\u0440\u043e\u0448\u0438\u0432\u0430\u0435\u0442 \u043a\u0430\u043b\u0438\u0431\u0440\u043e\u0432\u043e\u0447\u043d\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0432 \u041f\u0417\u0423 \u043f\u0440\u0438 \u0438\u0437\u0433\u043e\u0442\u043e\u0432\u043b\u0435\u043d\u0438\u0438, \u043f\u0440\u0438\u043c\u0435\u0440 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0441 \u041c\u041a STM32F030CCTx [0x1FFFF7BA];<\/p>\n<p>4095 &#8212; \u043a\u043e\u0433\u0434\u0430 \u0438\u0437\u043c\u0435\u0440\u044f\u0435\u0442\u0441\u044f \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a \u0432\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u044b\u043c \u0410\u0426\u041f, \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0432\u044b\u0440\u0430\u0436\u0430\u0435\u0442\u0441\u044f \u0432 \u0435\u0434\u0438\u043d\u0438\u0446\u0430\u0445 \u043a\u0432\u0430\u043d\u0442\u043e\u0432\u0430\u043d\u0438\u044f, \u043c\u0430\u043a\u0441\u0438\u043c\u0443\u043c \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0440\u0430\u0432\u0435\u043d 4095, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0432 \u0444\u043e\u0440\u043c\u0443\u043b\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u043c\u043d\u043e\u0436\u0438\u0442\u0435\u043b\u044c 4095 &#8212; \u044d\u0442\u043e \u043d\u043e\u0440\u043c\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f, \u0447\u0442\u043e\u0431\u044b \u0441\u0432\u044f\u0437\u0430\u0442\u044c \u0438\u0437\u043c\u0435\u0440\u0435\u043d\u043d\u044b\u0439 \u0410\u0426\u041f \u0441 \u043d\u0430\u043f\u0440\u044f\u0436\u0435\u043d\u0438\u0435\u043c VDDA.<\/p>\n<p>ADC_vref &#8212; \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0432\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u043e\u0433\u043e \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u0430 \u043e\u043f\u043e\u0440\u043d\u043e\u0433\u043e \u043d\u0430\u043f\u0440\u044f\u0436\u0435\u043d\u0438\u044f<\/p>\n<figure class=\"\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/b87\/523\/d63\/b87523d6348e13dad8a3ca8e0a5887eb.png\" width=\"260\" height=\"53\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/b87\/523\/d63\/b87523d6348e13dad8a3ca8e0a5887eb.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/b87\/523\/d63\/b87523d6348e13dad8a3ca8e0a5887eb.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<p><em>\u041f\u0435\u0440\u0435\u0432\u043e\u0434 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043a\u0430\u043d\u0430\u043b\u0430 \u0432 \u043d\u0430\u043f\u0440\u044f\u0436\u0435\u043d\u0438\u0435 <\/em><\/p>\n<p><em>ADC_in &#8212; \u043d\u0430\u043f\u0440\u044f\u0436\u0435\u043d\u0438\u0435 \u0438\u0437\u043c\u0435\u0440\u0435\u043d\u043d\u043e\u0435 \u0441 \u0434\u0435\u043b\u0438\u0442\u0435\u043b\u044f \u043d\u0430\u043f\u0440\u044f\u0436\u0435\u043d\u0438\u044f (\u0443\u0437\u0435\u043b[5])<\/em><\/p>\n<figure class=\"\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/0f4\/275\/4fc\/0f42754fc8680b5e5907fa4b845c2084.png\" width=\"180\" height=\"50\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/0f4\/275\/4fc\/0f42754fc8680b5e5907fa4b845c2084.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/0f4\/275\/4fc\/0f42754fc8680b5e5907fa4b845c2084.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<p>\u041a\u043e\u0440\u0440\u0435\u043a\u0446\u0438\u044f \u0447\u0435\u0440\u0435\u0437 \u0434\u0435\u043b\u0438\u0442\u0435\u043b\u044c \u043d\u0430\u043f\u0440\u044f\u0436\u0435\u043d\u0438\u044f <\/p>\n<p>\u0412\u0445\u043e\u0434 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d \u0447\u0435\u0440\u0435\u0437 \u0434\u0435\u043b\u0438\u0442\u0435\u043b\u044c R1=221\u043a\u041e\u043c \u0438 R2 = 27\u043a\u041e\u043c, \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u0438\u043c \u0432 \u041e\u043c,<\/p>\n<p>\u0434\u043e\u0431\u0430\u0432\u0438\u043b \u0441\u043c\u0435\u0449\u0435\u043d\u0438\u0435 (-0.5) \u0434\u043b\u044f \u043f\u043e\u0434\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0438\u0437\u043c\u0435\u0440\u0435\u043d\u0438\u0439.<\/p>\n<figure class=\"\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/a03\/aca\/99c\/a03aca99ce5e0bf513b9454bc84ae134.png\" width=\"200\" height=\"48\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/a03\/aca\/99c\/a03aca99ce5e0bf513b9454bc84ae134.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/a03\/aca\/99c\/a03aca99ce5e0bf513b9454bc84ae134.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<p><strong>\u0422\u0430\u0431\u043b\u0438\u0446\u0430 \u0437\u0430\u043c\u0435\u0440\u043e\u0432 \u043d\u0430\u043f\u0440\u044f\u0436\u0435\u043d\u0438\u044f \u043e\u0442 14.5 \u0432\u043e\u043b\u044c\u0442 \u0434\u043e 7 \u0432\u043e\u043b\u044c\u0442. <\/strong><\/p>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<td data-colwidth=\"346\" width=\"346\">\n<p align=\"left\">\u041d\u0430\u043f\u0440\u044f\u0436\u0435\u043d\u0438\u0435 \u043e\u0442 \u0441\u0442\u0430\u0446\u0438\u043e\u043d\u0430\u0440\u043d\u043e\u0433\u043e \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u0430 \u043f\u0438\u0442\u0430\u043d\u0438\u044f<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0420\u0430\u0441\u0441\u0447\u0438\u0442\u0430\u043d\u043d\u043e\u0435 \u043d\u0430\u043f\u0440\u044f\u0436\u0435\u043d\u0438\u0435 \u0447\u0435\u0440\u0435\u0437 \u0410\u0426\u041f \u041c\u041a<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"346\" width=\"346\">\n<p align=\"left\">14,5<\/p>\n<\/td>\n<td>\n<p align=\"left\">14.5474768<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"346\" width=\"346\">\n<p align=\"left\">14<\/p>\n<\/td>\n<td>\n<p align=\"left\">14.1426601<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"346\" width=\"346\">\n<p align=\"left\">13,5<\/p>\n<\/td>\n<td>\n<p align=\"left\">13.5746422<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"346\" width=\"346\">\n<p align=\"left\">13<\/p>\n<\/td>\n<td>\n<p align=\"left\">13.0305777<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"346\" width=\"346\">\n<p align=\"left\">12,5<\/p>\n<\/td>\n<td>\n<p align=\"left\">12.5156803<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"346\" width=\"346\">\n<p align=\"left\">12<\/p>\n<\/td>\n<td>\n<p align=\"left\">12.0447893<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"346\" width=\"346\">\n<p align=\"left\">11,5<\/p>\n<\/td>\n<td>\n<p align=\"left\">11.5500879<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"346\" width=\"346\">\n<p align=\"left\">11<\/p>\n<\/td>\n<td>\n<p align=\"left\">11.0325108<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"346\" width=\"346\">\n<p align=\"left\">10,5<\/p>\n<\/td>\n<td>\n<p align=\"left\">10.5149326<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"346\" width=\"346\">\n<p align=\"left\">10<\/p>\n<\/td>\n<td>\n<p align=\"left\">10.0049877<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"346\" width=\"346\">\n<p align=\"left\">9,5<\/p>\n<\/td>\n<td>\n<p align=\"left\">9.49503613<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"346\" width=\"346\">\n<p align=\"left\">9<\/p>\n<\/td>\n<td>\n<p align=\"left\">8.97779942<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"346\" width=\"346\">\n<p align=\"left\">8,5<\/p>\n<\/td>\n<td>\n<p align=\"left\">8.46920681<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"346\" width=\"346\">\n<p align=\"left\">8<\/p>\n<\/td>\n<td>\n<p align=\"left\">7.95231247<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"346\" width=\"346\">\n<p align=\"left\">7,5<\/p>\n<\/td>\n<td>\n<p align=\"left\">7.442698<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"346\" width=\"346\">\n<p align=\"left\">7<\/p>\n<\/td>\n<td>\n<p align=\"left\">6.93308401<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p><em>\u041f\u0440\u0438\u043a\u043b\u0430\u0434\u044b\u0432\u0430\u044e \u0432\u0438\u0434\u0435\u043e-\u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043f\u0440\u043e\u0445\u043e\u0434\u0430 \u043f\u043e \u0441\u043f\u0430\u0434\u0443 \u043d\u0430\u043f\u0440\u044f\u0436\u0435\u043d\u0438\u044f, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0432\u0438\u0434\u0435\u043e-\u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f, \u0441\u0431\u0440\u043e\u0441 \u043d\u0430\u043f\u0440\u044f\u0436\u0435\u043d\u0438\u044f \u0438 \u0443\u0445\u043e\u0434 \u0432 \u0441\u043e\u043d \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0430 \u043f\u0440\u0438 \u043d\u0438\u0437\u043a\u043e\u043c \u043d\u0430\u043f\u0440\u044f\u0436\u0435\u043d\u0438\u0438 \u0441\u0441\u044b\u043b\u043a\u0430  [\u00a0<\/em><a href=\"https:\/\/t.me\/ChipCraft\" rel=\"noopener noreferrer nofollow\"><em>https:\/\/t.me\/ChipCraft<\/em><\/a><em>\u00a0\u0412 \u0437\u0430\u043a\u0440\u0435\u043f\u043b\u0435\u043d\u043d\u043e\u043c \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0438 [ <\/em>#\u0438\u0441\u0441\u043a\u0443\u0441\u0442\u0432\u043e\u043c\u043a_\u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435_ Adc_VoltageControl<em>]<\/em>  <em> <\/em><\/p>\n<blockquote>\n<p>\u0420\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u043c\u043e\u0434\u0443\u043b\u044f proj_main.c (\u0413\u043b\u0430\u0432\u043d\u044b\u0439 \u043c\u0435\u0442\u043e\u0434)<\/p>\n<\/blockquote>\n<p>\u0414\u0430\u043d\u043d\u044b\u0439 \u043c\u043e\u0434\u0443\u043b\u044c \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u044f\u0435\u0442 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043f\u043e\u0434\u0441\u0438\u0441\u0442\u0435\u043c:<\/p>\n<ul>\n<li>\n<p>\u041a\u043d\u043e\u043f\u043a\u0430 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f (\u043e\u0434\u0438\u043d\u043e\u0447\u043d\u043e\u0435 \u0438 \u0434\u0432\u043e\u0439\u043d\u043e\u0435 \u043d\u0430\u0436\u0430\u0442\u0438\u0435);<\/p>\n<\/li>\n<li>\n<p>\u041a\u043e\u043d\u0442\u0440\u043e\u043b\u044c \u043d\u0430\u043f\u0440\u044f\u0436\u0435\u043d\u0438\u044f \u043f\u0438\u0442\u0430\u043d\u0438\u044f \u0447\u0435\u0440\u0435\u0437 \u0410\u0426\u041f;<\/p>\n<\/li>\n<li>\n<p>\u0417\u0432\u0443\u043a\u043e\u0432\u0430\u044f \u0438\u043d\u0434\u0438\u043a\u0430\u0446\u0438\u044f \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f;<\/p>\n<\/li>\n<li>\n<p>\u0410\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u043f\u0435\u0440\u0435\u0445\u043e\u0434 \u0432 \u0441\u043e\u043d \u043f\u0440\u0438 \u043d\u0438\u0437\u043a\u043e\u043c \u043d\u0430\u043f\u0440\u044f\u0436\u0435\u043d\u0438\u0438.<\/p>\n<\/li>\n<\/ul>\n<details class=\"spoiler\">\n<summary>proj_main.c<\/summary>\n<div class=\"spoiler__content\">\n<pre><code class=\"objectivec\">#include \".\/Project\/shared.h\" #include \".\/Project\/proj_main.h\" #include \".\/Project\/BU\/ADC_Calc.h\" #include \".\/Project\/BU\/keys.h\" #include \"main.h\"  char gl_main_stateKey = 0; \/\/\u043e\u0442\u0440\u0430\u0431\u043e\u0442\u0430\u043b\u0438 \u043b\u0438 \u043a\u043e\u0434 \u043f\u043e \u043d\u0430\u0436\u0430\u0442\u0438\u044e \u043d\u0430 \u043a\u043d\u043e\u043f\u043a\u0443 char count = 0;\/\/\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0434\u043b\u044f \u0442\u043e\u0433\u043e \u0447\u0442\u043e\u0431\u044b \u043f\u044a\u0435\u0437\u043e \u043d\u0435 \u0432\u043a\u043b\u044e\u0447\u0430\u043b\u0441\u044f \u043d\u0430 \u043f\u043e\u0432\u0442\u043e\u0440\u043d\u043e\u0435 \u043d\u0430\u0436\u0430\u0442\u0438\u0435 \u043a\u043d\u043e\u043f\u043a\u0438 \/\/ \u0413\u043b\u043e\u0431\u0430\u043b\u044c\u043d\u044b\u0439 \u0444\u043b\u0430\u0433, \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043d\u044b\u0439 \u043f\u0440\u0438 \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u0438 volatile uint8_t button_pressed = 0; float adc_GetVoltage_ = 0; typedef enum {     BUZZER_NONE = 0,     BUZZER_BEEP_1,     BUZZER_BEEP_2,     BUZZER_BEEP_3, BUZZER_BEEP_4, } buzzer_state_t;  volatile buzzer_state_t buzzer_state = BUZZER_NONE; volatile uint32_t buzzer_timer = 0;  volatile uint8_t test_stop = 0; volatile uint8_t test_stop_1 = 0;  uint8_t adc_ret=0;  #define START_DELAY 250  \/\/\u0434\u043b\u044f \u0434\u0432\u043e\u0439\u043d\u043e\u0433\u043e \u043d\u0430\u0436\u0430\u0442\u0438\u044f uint32_t btnPress_time_start = 0;\/\/\u0432\u0440\u0435\u043c\u044f, \u043a\u043e\u0433\u0434\u0430 \u043d\u0430\u0436\u0430\u043b\u0438 \u043a\u043d\u043e\u043f\u043a\u0443 #define MIN_DelayDblClck100 \/\/100 \u0431\u044b\u043b\u043e -50 #define MAX_DelayDblClck600 \/\/600  \u0431\u044b\u043b\u043e-700 \/\/E N D \u0434\u043b\u044f \u0434\u0432\u043e\u0439\u043d\u043e\u0433\u043e \u043d\u0430\u0436\u0430\u0442\u0438\u044f  \/\/\u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435 \u0434\u043b\u044f \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u043b\u043e\u0433\u0438\u043a\u0438 \u043f\u0440\u0438 \u043d\u0438\u0437\u043a\u043e\u043c \u043d\u0430\u043f\u0440\u044f\u0436\u0435\u043d\u0438\u0438 uint32_t lowVoltageStart = 0;\/\/\u0432\u0440\u0435\u043c\u044f \u043d\u0430\u0447\u0430\u043b\u0430 \u043d\u0438\u0437\u043a\u043e\u0433\u043e \u0443\u0440\u043e\u0432\u043d\u044f \u043d\u0430\u043f\u0440\u044f\u0436\u0435\u043d\u0438\u044f uint8_t lowVoltageActive = 0;\/\/\u0444\u043b\u0430\u0433 \u0447\u0442\u043e \u0441\u0438\u0441\u0442\u0435\u043c\u0430 \u0432 \u0440\u0435\u0436\u0438\u043c\u0435 \u043e\u0442\u0441\u0447\u0435\u0442\u0430 #define SHUTDOWN_DELAY 15000 \/\/E N D \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435 \u0434\u043b\u044f \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u043b\u043e\u0433\u0438\u043a\u0438 \u043f\u0440\u0438 \u043d\u0438\u0437\u043a\u043e\u043c \u043d\u0430\u043f\u0440\u044f\u0436\u0435\u043d\u0438\u0438  \/\/\u0434\u043b\u044f \u0437\u0432\u0443\u043a\u043e\u0432\u043e\u0439 \u0438\u043d\u0434\u0438\u043a\u0430\u0446\u0438\u0438 \u0432 \u0440\u0435\u0436\u0438\u043c\u0435 \u043d\u0438\u0437\u043a\u043e\u0433\u043e \u043d\u0430\u043f\u0440. uint32_t lowVoltageBeepTimer = 0;  \/\/ \u0432\u0440\u0435\u043c\u044f \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0433\u043e \u043f\u0438\u0441\u043a\u0430 #define LOW_VOLTAGE_BEEP_PERIOD 2000 \/\/ \u043a\u0430\u0436\u0434\u044b\u0435 2 \u0441\u0435\u043a\u0443\u043d\u0434\u044b \/\/E N D \u0434\u043b\u044f \u0437\u0432\u0443\u043a\u043e\u0432\u043e\u0439 \u0438\u043d\u0434\u0438\u043a\u0430\u0446\u0438\u0438 \u0432 \u0440\u0435\u0436\u0438\u043c\u0435 \u043d\u0438\u0437\u043a\u043e\u0433\u043e \u043d\u0430\u043f\u0440.  void SystemClock_Config(void); void shutdownAndSleep();   void proj_main() { volatile const char *ch = \";V-F-BIN;ver: \"VER_PROG(VER_a,VER_b,VER_c);(void)ch;\/\/0x8008b00 unsigned short keysState=0;\/\/\u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u043a\u043d\u043e\u043f\u043a\u0438  HAL_Delay(1);\/\/\u0447\u0442\u043e\u0431\u044b HAL_GetTick() \u043d\u0435 \u0432\u044b\u0434\u0430\u0432\u0430\u043b \u043d\u043e\u043b\u044c while (HAL_GetTick()&lt;START_DELAY){;}\/\/\u0437\u0430\u0434\u0435\u0440\u0436\u043a\u0430, \u0438\u043d\u0430\u0447\u0435 \u0438\u043d\u043e\u0433\u0434\u0430 \u0441\u0440\u0430\u0437\u0443 \u0443\u0445\u043e\u0434\u0438\u0442 \u0432 \u0441\u043e\u043d  keysState=getKeyPinState_AtNow();  \/\/ if((keysState &amp; KEY1_Drv)==0){\/\/\u0437\u0430\u0449\u0438\u0442\u0430 \u043e\u0442 \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u043e\u0433\u043e \u043d\u0430\u0436\u0430\u0442\u0438\u044f shutdownAndSleep(); }  uint32_t ms = 0; ms = HAL_GetTick();  adc_init(); adc_start();  while (1){ \/\/\u0445\u044d\u043d\u0434\u043b\u0435\u0440\u044b keysDrv_Handler();\/\/\u0440\u0430\u0431\u043e\u0442\u0430 \u0441 \u043a\u043d\u043e\u043f\u043a\u043e\u0439 \/\/ \u0420\u0430\u0431\u043e\u0442\u0430 \u0441 ADC adc_ret = ADC_Calc_Handler(); \/\/ \u0420\u0430\u0431\u043e\u0442\u0430 \u0441\u043e \u0437\u0432\u0443\u043a\u043e\u0432\u043e\u0439 \u0438\u043d\u0434\u0438\u043a\u0430\u0446\u0438\u0435\u0439 buzzer_handler(); \/\/E N D \u0445\u044d\u043d\u0434\u043b\u0435\u0440\u044b  ms = HAL_GetTick();  keysState=getKeyState();\/\/\u043f\u043e\u043b\u0443\u0447\u0430\u044e \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u043a\u043d\u043e\u043f\u043a\u0438 adc_GetVoltage_ = adc_GetVoltage();\/\/\u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0435 \u0438\u0437\u043c\u0435\u0440.\u043d\u0430\u043f\u0440\u044f\u0436.  \/\/ --- \u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u043d\u0430\u043f\u0440\u044f\u0436\u0435\u043d\u0438\u044f --- if(adc_ret == FORCE_POWER_OFF) { if(!lowVoltageActive) { lowVoltageActive = 1; lowVoltageStart = HAL_GetTick(); \/\/\u0432\u043d\u0435\u0441\u0442\u0438 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0443 \u043f\u0438\u0449\u0430\u043b\u043a\u0438. \/\/ \u043f\u0435\u0440\u0432\u044b\u0439 \u043f\u0438\u0441\u043a \u0441\u0440\u0430\u0437\u0443 buzzer_tripleBeep(); lowVoltageBeepTimer = HAL_GetTick(); } \/\/ \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u0442\u0430\u0439\u043c-\u0430\u0443\u0442\u0430 \/\/ if(lowVoltageActive &amp;&amp; (HAL_GetTick() - lowVoltageStart &gt;= SHUTDOWN_DELAY)) { adc_ret = 0; count = 0; shutdownAndSleep(); }  \/\/ \u043f\u0435\u0440\u0438\u043e\u0434\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u0437\u0432\u0443\u043a\u043e\u0432\u0430\u044f \u0438\u043d\u0434\u0438\u043a\u0430\u0446\u0438\u044f if (HAL_GetTick() - lowVoltageBeepTimer &gt;= LOW_VOLTAGE_BEEP_PERIOD) { buzzer_tripleBeep(); lowVoltageBeepTimer = HAL_GetTick(); } if(adc_GetVoltage_ &gt; 9.0f ){ \/\/ \u043d\u0430\u043f\u0440\u044f\u0436\u0435\u043d\u0438\u0435 \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u043b\u043e\u0441\u044c \u2192 \u0441\u0431\u0440\u043e\u0441 lowVoltageStart = 0; lowVoltageActive = 0; lowVoltageBeepTimer = 0;  buzzer_state = BUZZER_NONE; buzzer_off(); } } if(keysState &amp; KEY1Release_Drv){\/\/\u0435\u0441\u043b\u0438 \u043f\u0440\u043e\u0438\u0437\u043e\u0448\u043b\u043e \u043a\u043e\u0440\u043e\u0442\u043a\u043e\u0435 \u043d\u0430\u0436\u0430\u0442\u0438\u0435 \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \/\/button_pressed =0; if(test_stop == 1){ test_stop = 0; adc_init(); adc_start(); }  if(gl_main_stateKey == 0){ gl_main_stateKey=1; count ++; if(count &lt;= 1){ \/\/\u0437\u0430\u043f\u0443\u0441\u043a \u0434\u0432\u043e\u0439\u043d\u043e\u0439 \u0437\u0432\u0443\u043a\u043e\u0432\u043e\u0439 \u0438\u043d\u0434\u0438\u043a\u0430\u0446\u0438\u0438 buzzer_doubleBeep(); } \/\/ \u2014 \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u0442 \u043f\u0438\u043d \u0432 \u0415\u0414\u0418\u041d\u0418\u0426\u0423, \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 3.3\u0432 \u0438 12\u0432 HAL_GPIO_WritePin(GPIOB, GPIO_PIN_10, GPIO_PIN_SET);  \/\/\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435 \u0434\u043b\u044f \u0434\u0432\u043e\u0439\u043d\u043e\u0433\u043e \u043d\u0430\u0436\u0430\u0442\u0438\u044f \u043a\u043d\u043e\u043f\u043a\u0438 if(btnPress_time_start &amp;&amp; (ms - btnPress_time_start) &gt; MIN_DelayDblClck){ if(btnPress_time_start &amp;&amp; (ms - btnPress_time_start) &lt; MAX_DelayDblClck){ count = 0; shutdownAndSleep(); } } btnPress_time_start=ms; } } else{ if(gl_main_stateKey==1){ gl_main_stateKey=0; } } \/\/ss }\/\/while (1) }  \/\/\u0412\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u043f\u044a\u0435\u0437\u043e_\u0438\u0437\u043b\u0443\u0447\u0430\u0442\u0435\u043b\u044f void buzzer_on() { HAL_TIM_PWM_Start(&amp;htim1, TIM_CHANNEL_4); } \/\/\u0412\u044b\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u043f\u044a\u0435\u0437\u043e_\u0438\u0437\u043b\u0443\u0447\u0430\u0442\u0435\u043b\u044f void buzzer_off() { HAL_TIM_PWM_Stop(&amp;htim1, TIM_CHANNEL_4); HAL_GPIO_WritePin(GPIOA, GPIO_PIN_11, GPIO_PIN_RESET); } \/\/ E N D  void buzzer_doubleBeep(void) { buzzer_state = BUZZER_BEEP_1; buzzer_timer = HAL_GetTick(); buzzer_on(); }  \/\/ \u0417\u0430\u043f\u0443\u0441\u043a \u0442\u0440\u043e\u0439\u043d\u043e\u0433\u043e \u043f\u0438\u0441\u043a\u0430 void buzzer_tripleBeep(void) { buzzer_state = BUZZER_BEEP_1; buzzer_timer = HAL_GetTick(); buzzer_on(); }  void buzzer_handler(void) { switch (buzzer_state) { case BUZZER_NONE: break;  case BUZZER_BEEP_1: if (HAL_GetTick() - buzzer_timer &gt; 100) { buzzer_off(); buzzer_timer = HAL_GetTick(); buzzer_state = BUZZER_BEEP_2; } break;  case BUZZER_BEEP_2: if (HAL_GetTick() - buzzer_timer &gt; 100) { buzzer_on(); buzzer_timer = HAL_GetTick(); buzzer_state = BUZZER_BEEP_3; } break;  case BUZZER_BEEP_3: if (HAL_GetTick() - buzzer_timer &gt; 100) { buzzer_off(); buzzer_state = BUZZER_NONE; } break;  case BUZZER_BEEP_4: if (HAL_GetTick() - buzzer_timer &gt; 100) { buzzer_on(); buzzer_timer = HAL_GetTick(); buzzer_state = BUZZER_NONE; \/\/ \u0437\u0430\u0432\u0435\u0440\u0448\u0430\u0435\u043c \u043d\u0430 \u0442\u0440\u0435\u0442\u044c\u0435\u043c \u043f\u0438\u0441\u043a\u0435 } break; } }  void shutdownAndSleep(){ adc_stop(); HAL_GPIO_WritePin(GPIOB, GPIO_PIN_10, GPIO_PIN_RESET); test_stop =1;  \/\/\u0421\u0431\u0440\u043e\u0441 \u0444\u043b\u0430\u0433\u0430 \u043f\u0440\u043e\u0431\u0443\u0436\u0434\u0435\u043d\u0438\u044f \/\/__HAL_GPIO_EXTI_CLEAR_IT(GPIO_PIN_11); __HAL_PWR_CLEAR_FLAG(PWR_FLAG_WU);  \/\/\u041e\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c SysTick, \u0447\u0442\u043e\u0431\u044b \u043e\u043d \u043d\u0435 \u0431\u0443\u0434\u0438\u043b HAL_SuspendTick();  \/\/\u041f\u0435\u0440\u0435\u0445\u043e\u0434 \u0432 \u0440\u0435\u0436\u0438\u043c STOP HAL_PWR_EnterSTOPMode(PWR_LOWPOWERREGULATOR_ON, PWR_STOPENTRY_WFI);  \/* Configure the system clock *\/ \/\/\u0412\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0442\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043f\u043e\u0441\u043b\u0435 \u043f\u0440\u043e\u0431\u0443\u0436\u0434\u0435\u043d\u0438\u044f SystemClock_Config();  \/\/\u0412\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u043e\u0431\u0440\u0430\u0442\u043d\u043e HAL_ResumeTick(); }  \/\/ \u041e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u044f \u043e\u0442 \u043a\u043d\u043e\u043f\u043a\u0438 (PB11 \u2192 EXTI11) void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin) { if (GPIO_Pin == GPIO_PIN_11) { button_pressed = 1; } }<\/code><\/pre>\n<\/div>\n<\/details>\n<h3>\u0412\u044b\u0432\u043e\u0434<\/h3>\n<p>\u0414\u0430\u043d\u043d\u0430\u044f \u0441\u0438\u0441\u0442\u0435\u043c\u0430 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044f \u043d\u0430\u0434 \u0431\u043b\u043e\u043a\u043e\u043c \u043f\u0438\u0442\u0430\u043d\u0438\u044f \u0440\u0435\u0430\u043b\u0438\u0437\u0443\u0435\u0442: <\/p>\n<ul>\n<li>\n<p><em>\u041e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0443 \u043a\u043d\u043e\u043f\u043e\u043a<\/em> \u0441 \u0444\u0438\u043b\u044c\u0442\u0440\u0430\u0446\u0438\u0435\u0439 \u0434\u0440\u0435\u0431\u0435\u0437\u0433\u0430, \u0441 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u043e\u0439 \u043a\u043e\u0440\u043e\u0442\u043a\u043e\u0433\u043e\/\u0434\u043e\u043b\u0433\u043e\u0433\u043e\/\u0434\u0432\u043e\u0439\u043d\u043e\u0433\u043e \u043d\u0430\u0436\u0430\u0442\u0438\u044f  \u0438 \u043e\u0442\u043f\u0443\u0441\u043a\u0430\u043d\u0438\u044f;<\/p>\n<\/li>\n<li>\n<p><em>\u041c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433 \u043d\u0430\u043f\u0440\u044f\u0436\u0435\u043d\u0438\u044f<\/em> \u0447\u0435\u0440\u0435\u0437 \u0410\u0426\u041f \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 \u043f\u0440\u043e\u0441\u0430\u0434\u043e\u043a \u0438 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u043c \u043e\u0442\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435\u043c \u043f\u0440\u0438 \u043a\u0440\u0438\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u043c \u043d\u0438\u0437\u043a\u043e\u043c \u0443\u0440\u043e\u0432\u043d\u0435;<\/p>\n<\/li>\n<li>\n<p><em>\u0417\u0432\u0443\u043a\u043e\u0432\u0430\u044f \u0438\u043d\u0434\u0438\u043a\u0430\u0446\u0438\u044f <\/em>(\u043a\u043e\u0440\u043e\u0442\u043a\u0438\u0435, \u0434\u0432\u043e\u0439\u043d\u044b\u0435 \u0441\u0438\u0433\u043d\u0430\u043b\u044b) \u0434\u043b\u044f \u0438\u043d\u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u043e \u0441\u043e\u0431\u044b\u0442\u0438\u044f\u0445;<\/p>\n<\/li>\n<li>\n<p><em>\u042d\u043d\u0435\u0440\u0433\u043e\u0441\u0431\u0435\u0440\u0435\u0436\u0435\u043d\u0438\u0435<\/em> \u043f\u0435\u0440\u0435\u0445\u043e\u0434 \u0432 \u0440\u0435\u0436\u0438\u043c STOP \u0438 \u043f\u0440\u043e\u0431\u0443\u0436\u0434\u0435\u043d\u0438\u0435 \u043f\u043e \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u044e.<\/p>\n<\/li>\n<\/ul>\n<blockquote>\n<p>\u0421\u0438\u0441\u0442\u0435\u043c\u0443 \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043a\u0430\u043a \u043e\u0441\u043d\u043e\u0432\u0443 \u0434\u043b\u044f \u043f\u043e\u0440\u0442\u0430\u0442\u0438\u0432\u043d\u044b\u0445 \u043f\u0440\u0438\u0431\u043e\u0440\u043e\u0432, \u0430\u0432\u0442\u043e\u043d\u043e\u043c\u043d\u044b\u0445 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432 \u0438 \u0432\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u043c\u044b\u0445 \u0441\u0438\u0441\u0442\u0435\u043c, \u0433\u0434\u0435 \u0432\u0430\u0436\u043d\u043e \u043e\u0434\u043d\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e \u0443\u0434\u043e\u0431\u043d\u043e\u0435 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0438 \u0437\u0430\u0449\u0438\u0442\u0430 \u044d\u043b\u0435\u043a\u0442\u0440\u043e\u043d\u0438\u043a\u0438. <\/p>\n<\/blockquote>\n<hr\/>\n<p>\u0415\u0441\u043b\u0438 \u0441\u0442\u0430\u0442\u044c\u044f \u043f\u043e\u043a\u0430\u0437\u0430\u043b\u0430\u0441\u044c \u0412\u0430\u043c \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e\u0439, \u0431\u0443\u0434\u0443 \u0440\u0430\u0434 \u0432\u044b\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u0434\u043b\u044f \u0412\u0430\u0441 \u0435\u0449\u0435 \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e \u0441\u0442\u0430\u0442\u0435\u0439 \u0438\u0441\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u0439 \u043f\u043e \u0432\u0441\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u044b\u043c \u0432\u0438\u0434\u0430\u043c \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432, \u0442\u0430\u043a \u0447\u0442\u043e, \u0435\u0441\u043b\u0438 \u043d\u0435 \u0445\u043e\u0442\u0438\u0442\u0435 \u0438\u0445 \u043f\u0440\u043e\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u2013 \u0431\u0443\u0434\u0443 \u0431\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u0435\u043d \u0437\u0430 \u043f\u043e\u0434\u043f\u0438\u0441\u043a\u0443 \u043d\u0430 \u043c\u043e\u0439 \u0422\u0413-\u043a\u0430\u043d\u0430\u043b:\u00a0<a href=\"https:\/\/t.me\/ChipCraft\" rel=\"noopener noreferrer nofollow\">https:\/\/t.me\/ChipCraft<\/a>.  <\/p>\n<\/div>\n<\/div>\n<\/div>\n<p><!----><!----><\/div>\n<p><!----><!----><br \/> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"https:\/\/habr.com\/ru\/articles\/937596\/\"> https:\/\/habr.com\/ru\/articles\/937596\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<div><!--[--><!--]--><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body article-formatted-body_version-2\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<figure class=\"full-width\"><\/figure>\n<p>\u041f\u0440\u0438\u0432\u0435\u0442, \u0425\u0430\u0431\u0440! <\/p>\n<p>\u0410\u0432\u0442\u043e\u043d\u043e\u043c\u043d\u044b\u0435 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0441\u0442\u0430\u043d\u043e\u0432\u044f\u0442\u0441\u044f \u0432\u0441\u0435 \u0431\u043e\u043b\u0435\u0435 \u0432\u043e\u0441\u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043d\u043d\u044b\u043c\u0438 &#8212; \u043e\u0442 \u043f\u043e\u0440\u0442\u0430\u0442\u0438\u0432\u043d\u044b\u0445 \u043f\u0440\u0438\u0431\u043e\u0440\u043e\u0432 \u0434\u043e \u0441\u043b\u043e\u0436\u043d\u044b\u0445 \u043f\u0440\u043e\u043c\u044b\u0448\u043b\u0435\u043d\u043d\u044b\u0445 \u043a\u043e\u043c\u043f\u043b\u0435\u043a\u0441\u043e\u0432 &#8212; \u043d\u0430\u0434\u0435\u0436\u043d\u043e\u0435 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043d\u0430\u043f\u0440\u044f\u0436\u0435\u043d\u0438\u0435\u043c \u043f\u0438\u0442\u0430\u043d\u0438\u044f \u043f\u0440\u0435\u0432\u0440\u0430\u0449\u0430\u0435\u0442\u0441\u044f \u0432 \u043a\u043b\u044e\u0447\u0435\u0432\u043e\u0439 \u0444\u0430\u043a\u0442\u043e\u0440 \u0438\u0445 \u0434\u043e\u043b\u0433\u043e\u0432\u0435\u0447\u043d\u043e\u0441\u0442\u0438 \u0438 \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u043e\u0441\u0442\u0438. \u0421\u0435\u0440\u0434\u0446\u0435 \u043b\u044e\u0431\u043e\u0439 \u0442\u0430\u043a\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b &#8212; \u0430\u043a\u043a\u0443\u043c\u0443\u043b\u044f\u0442\u043e\u0440, \u0430 \u0435\u0433\u043e \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u044c \u0438 \u0441\u0440\u043e\u043a \u0441\u043b\u0443\u0436\u0431\u044b, \u043d\u0430\u043f\u0440\u044f\u043c\u0443\u044e \u0437\u0430\u0432\u0438\u0441\u0438\u0442 \u043e\u0442 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044f \u043d\u0430\u043f\u0440\u044f\u0436\u0435\u043d\u0438\u044f. <\/p>\n<p>\u0412 \u0434\u0430\u043d\u043d\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d \u043f\u0440\u0438\u043c\u0435\u0440 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044f \u043d\u0430\u043f\u0440\u044f\u0436\u0435\u043d\u0438\u044f, \u043d\u0430\u0434 \u0431\u043b\u043e\u043a\u043e\u043c \u043f\u0438\u0442\u0430\u043d\u0438\u044f &#8212; \u0432\u043d\u0443\u0442\u0440\u0438 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e (\u043d\u0438\u043a\u0435\u043b\u044c-\u043c\u0435\u0442\u0430\u043b\u043b\u0433\u0438\u0434\u0440\u0438\u0434\u043d\u0430\u044f \u0430\u043a\u043a\u0443\u043c\u0443\u043b\u044f\u0442\u043e\u0440\u043d\u0430\u044f \u0441\u0431\u043e\u0440\u043a\u0430 NiMH 14.4\u0412\/12 \u0431\u0430\u043d\u043e\u043a \u043f\u043e 1.2\u0412(1.4\u0412- \u043f\u0440\u0438 \u043f\u043e\u043b\u043d\u043e\u0439 \u0437\u0430\u0440\u044f\u0434\u043a\u0435)). <\/p>\n<p>\u0412 \u0431\u043b\u043e\u043a\u0435 \u043f\u0438\u0442\u0430\u043d\u0438\u044f \u0443\u0436\u0435 \u0435\u0441\u0442\u044c \u043f\u0430\u043b\u0430\u0442\u0430 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043d\u0430\u0434 \u0430\u043a\u043a\u0443\u043c\u0443\u043b\u044f\u0442\u043e\u0440\u043e\u043c, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442 \u0437\u0430\u0434\u0430\u0447\u0438:<\/p>\n<ul>\n<li>\n<p>\u0420\u0430\u0431\u043e\u0442\u0430 \u0441 \u043a\u043d\u043e\u043f\u043a\u043e\u0439;<\/p>\n<\/li>\n<li>\n<p>\u0420\u0430\u0431\u043e\u0442\u0430 \u0441\u043e \u0441\u0432\u0435\u0442\u043e\u0434\u0438\u043e\u0434\u043e\u043c;<\/p>\n<\/li>\n<li>\n<p>\u0420\u0430\u0431\u043e\u0442\u0430 \u0441 \u043f\u044a\u0435\u0437\u043e\u044d\u043b\u0435\u043a\u0442\u0440\u0438\u0447\u0435\u0441\u043a\u0438\u043c \u0438\u0437\u043b\u0443\u0447\u0430\u0442\u0435\u043b\u0435\u043c(\u0437\u0432\u0443\u043a\u043e\u0432\u0430\u044f \u0438\u043d\u0434\u0438\u043a\u0430\u0446\u0438\u044f); <\/p>\n<\/li>\n<li>\n<p>\u041a\u043e\u043d\u0442\u0440\u043e\u043b\u044c \u0437\u0430\u0440\u044f\u0434\u0430\/\u0440\u0430\u0437\u0440\u044f\u0434\u0430 \u0430\u043a\u043a\u0443\u043c\u0443\u043b\u044f\u0442\u043e\u0440\u0430(\u0434\u0430\u0435\u0442 \u0437\u0432\u0443\u043a\u043e\u0432\u043e\u0439 \u0441\u0438\u0433\u043d\u0430\u043b \u043f\u0440\u0438 \u043d\u0430\u043f\u0440\u044f\u0436\u0435\u043d\u0438\u0438 \u043c\u0435\u043d\u0435\u0435 9 \u0432\u043e\u043b\u044c\u0442 \u0438 \u0431\u043e\u043b\u0435\u0435 14).<\/p>\n<\/li>\n<\/ul>\n<p>\u0412 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0435 \u0430\u043d\u0430\u043b\u0438\u0437\u0430 \u0438 \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u043e\u0431\u043e\u0440\u0443\u0434\u043e\u0432\u0430\u043d\u0438\u044f \u0441\u0442\u0430\u043b\u043e \u043e\u0447\u0435\u0432\u0438\u0434\u043d\u043e, \u0447\u0442\u043e \u043c\u043d\u043e\u0433\u0438\u0435 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0438 \u0447\u0430\u0441\u0442\u043e \u0437\u0430\u0431\u044b\u0432\u0430\u044e\u0442 \u0441\u0432\u043e\u0435\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e \u043e\u0442\u043a\u043b\u044e\u0447\u0430\u0442\u044c \u0431\u043b\u043e\u043a\u0438 \u043f\u0438\u0442\u0430\u043d\u0438\u044f. \u0412 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0435 \u0430\u043a\u043a\u0443\u043c\u0443\u043b\u044f\u0442\u043e\u0440\u043d\u044b\u0435 \u0441\u0431\u043e\u0440\u043a\u0438 \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0430\u044e\u0442 \u0440\u0430\u0437\u0440\u044f\u0436\u0430\u0442\u044c\u0441\u044f \u0434\u0430\u0436\u0435 \u043f\u0440\u0438 \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0438\u0438 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u0438, \u043d\u0430\u043f\u0440\u044f\u0436\u0435\u043d\u0438\u0435 \u043f\u0430\u0434\u0430\u0435\u0442 \u0434\u043e \u043a\u0440\u0438\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439, \u0438 \u0430\u043a\u043a\u0443\u043c\u0443\u043b\u044f\u0442\u043e\u0440 \u0431\u044b\u0441\u0442\u0440\u043e \u0442\u0435\u0440\u044f\u0435\u0442 \u0441\u0432\u043e\u044e \u0435\u043c\u043a\u043e\u0441\u0442\u044c, \u0441\u0442\u0430\u043d\u043e\u0432\u044f\u0441\u044c \u043d\u0435\u043f\u0440\u0438\u0433\u043e\u0434\u043d\u044b\u043c \u0434\u043b\u044f \u0434\u0430\u043b\u044c\u043d\u0435\u0439\u0448\u0435\u0439 \u044d\u043a\u0441\u043f\u043b\u0443\u0430\u0442\u0430\u0446\u0438\u0438. <\/p>\n<p>\u041f\u043e\u043c\u0438\u043c\u043e \u044d\u0442\u043e\u0433\u043e, \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u043d\u0430\u044f \u0441\u0438\u0441\u0442\u0435\u043c\u0430 \u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0432 \u043d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u043e\u043c \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0438, \u043d\u0430 \u043f\u043b\u0430\u0442\u0443 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0438 \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0435 \u0434\u0430\u0442\u0447\u0438\u043a\u0438 \u043f\u043e-\u043f\u0440\u0435\u0436\u043d\u0435\u043c\u0443 \u043f\u043e\u0434\u0430\u0435\u0442\u0441\u044f \u043f\u0438\u0442\u0430\u043d\u0438\u0435, \u0447\u0442\u043e \u043f\u0440\u0438\u0432\u043e\u0434\u0438\u0442 \u043a \u0438\u0437\u0431\u044b\u0442\u043e\u0447\u043d\u043e\u0439 \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0435. \u0412 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u044d\u0442\u043e\u0433\u043e \u0441\u043e\u043a\u0440\u0430\u0449\u0430\u0435\u0442\u0441\u044f \u0440\u0435\u0441\u0443\u0440\u0441 \u044d\u043b\u0435\u043a\u0442\u0440\u043e\u043d\u043d\u044b\u0445 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u043e\u0432 \u0438 \u0441\u043d\u0438\u0436\u0430\u0435\u0442\u0441\u044f \u043d\u0430\u0434\u0435\u0436\u043d\u043e\u0441\u0442\u044c \u0432\u0441\u0435\u0433\u043e \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430.<\/p>\n<p>\u0414\u043b\u044f \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u0434\u0430\u043d\u043d\u043e\u0439 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b \u044f \u043f\u0440\u043e\u0434\u0435\u043c\u043e\u043d\u0441\u0442\u0440\u0438\u0440\u0443\u044e \u043f\u0440\u0438\u043c\u0435\u0440 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044f \u043d\u0430\u043f\u0440\u044f\u0436\u0435\u043d\u0438\u044f \u0431\u043b\u043e\u043a\u0430 \u043f\u0438\u0442\u0430\u043d\u0438\u044f, \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0430 \u0432\u044b\u0431\u0440\u0430\u043d STM32F103\u04218T6, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u0437\u0430\u0434\u0430\u0447\u0438:<\/p>\n<ul>\n<li>\n<p>\u041d\u0435\u043f\u0440\u0435\u0440\u044b\u0432\u043d\u044b\u0439 \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433 \u043d\u0430\u043f\u0440\u044f\u0436\u0435\u043d\u0438\u044f \u0430\u043a\u043a\u0443\u043c\u0443\u043b\u044f\u0442\u043e\u0440\u043d\u043e\u0439 \u0441\u0431\u043e\u0440\u043a\u0438, \u0438\u0437\u043c\u0435\u0440\u0435\u043d\u0438\u0435 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0441\u044f \u0447\u0435\u0440\u0435\u0437 \u0410\u0426\u041f \u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c DMA; <\/p>\n<\/li>\n<li>\n<p>\u041e\u043f\u043e\u0432\u0435\u0449\u0435\u043d\u0438\u0435 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u043e \u043d\u0438\u0437\u043a\u043e\u043c \u0437\u0430\u0440\u044f\u0434\u0435, \u043f\u0440\u0438 \u043f\u0430\u0434\u0435\u043d\u0438\u0438 \u043d\u0430\u043f\u0440\u044f\u0436\u0435\u043d\u0438\u044f \u043d\u0438\u0436\u0435 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043d\u043e\u0433\u043e \u043f\u043e\u0440\u043e\u0433\u0430 (\u0432 \u0434\u0430\u043d\u043d\u043e\u043c \u043f\u0440\u0438\u043c\u0435\u0440\u0435 &#8212; 9.0\u0412) \u0441\u0438\u0441\u0442\u0435\u043c\u0430 \u0430\u043a\u0442\u0438\u0432\u0438\u0437\u0438\u0440\u0443\u0435\u0442 \u0437\u0432\u0443\u043a\u043e\u0432\u043e\u0439 \u0441\u0438\u0433\u043d\u0430\u043b, \u0432\u0440\u0435\u043c\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u043e\u043f\u043e\u0432\u0435\u0449\u0435\u043d\u0438\u044f \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u043e &#8212; \u0437\u0432\u0443\u043a\u043e\u0432\u0430\u044f \u0438\u043d\u0434\u0438\u043a\u0430\u0446\u0438\u044f \u0431\u0443\u0434\u0435\u0442 \u0434\u043b\u0438\u0442\u0441\u044f 5 \u043c\u0438\u043d\u0443\u0442; <\/p>\n<\/li>\n<li>\n<p>\u041f\u0435\u0440\u0435\u0445\u043e\u0434 \u0432 \u044d\u043d\u0435\u0440\u0433\u043e\u0441\u0431\u0435\u0440\u0435\u0433\u0430\u044e\u0449\u0438\u0439 \u0440\u0435\u0436\u0438\u043c, \u0435\u0441\u043b\u0438 \u043d\u0430\u043f\u0440\u044f\u0436\u0435\u043d\u0438\u0435 \u043e\u0441\u0442\u0430\u0435\u0442\u0441\u044f \u043d\u0438\u0436\u0435 \u043f\u043e\u0440\u043e\u0433\u0430 \u0438 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u043d\u0435 \u043f\u0440\u0435\u0434\u043f\u0440\u0438\u043d\u044f\u043b \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0439 \u0432 \u0442\u0435\u0447\u0435\u043d\u0438\u0438 \u0437\u0430\u0434\u0430\u043d\u043d\u043e\u0433\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438, \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440 \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u0438\u0442 \u0441\u0438\u0441\u0442\u0435\u043c\u0443 \u0432 \u0440\u0435\u0436\u0438\u043c \u0441\u043d\u0430, \u044d\u0442\u043e \u0441\u043e\u043f\u0440\u043e\u0432\u043e\u0436\u0434\u0430\u0435\u0442\u0441\u044f \u043e\u0442\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435\u043c \u0442\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0438 \u0432\u0441\u0435\u0439 \u043f\u0435\u0440\u0438\u0444\u0435\u0440\u0438\u0438, \u0447\u0442\u043e \u043c\u0438\u043d\u0438\u043c\u0438\u0437\u0438\u0440\u0443\u0435\u0442 \u0438 \u043f\u0440\u0435\u0434\u043e\u0442\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0433\u043b\u0443\u0431\u043e\u043a\u0438\u0439 \u0440\u0430\u0437\u0440\u044f\u0434 \u0430\u043a\u043a\u0443\u043c\u0443\u043b\u044f\u0442\u043e\u0440\u0430.<\/p>\n<\/li>\n<\/ul>\n<h3>\u0421\u0445\u0435\u043c\u0430 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f NiMH \u0410\u041a\u0411, \u0434\u0435\u043b\u0438\u0442\u0435\u043b\u044f \u043d\u0430\u043f\u0440\u044f\u0436\u0435\u043d\u0438\u044f \u043a \u0410\u0426\u041f \u041c\u041a, \u043a\u043d\u043e\u043f\u043a\u0438 \u0432\u043a\u043b\/\u0432\u044b\u043a\u043b \u0438 \u043f\u044a\u0435\u0437\u043e-\u0438\u0437\u043b\u0443\u0447\u0430\u0442\u0435\u043b\u044f<\/h3>\n<figure class=\"full-width\"><\/figure>\n<h3>\u041f\u0435\u0440\u0435\u0447\u0435\u043d\u044c \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u043e\u0432 <\/h3>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<td>\n<p align=\"left\"><code><strong>\u0420\u0435\u0437\u0438\u0441\u0442\u043e\u0440\u044b <\/strong><\/code><\/p>\n<\/td>\n<td data-colwidth=\"139\" width=\"139\">\n<p align=\"left\"><code><strong>\u041a\u043e\u043d\u0434\u0435\u043d\u0441\u0430\u0442\u043e\u0440\u044b<\/strong><\/code><\/p>\n<\/td>\n<td data-colwidth=\"146\" width=\"146\">\n<p align=\"left\"><code><strong>\u041f\u0440\u0435\u0434\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u0435\u043b\u0438<\/strong><\/code><\/p>\n<\/td>\n<td data-colwidth=\"131\" width=\"131\">\n<p align=\"left\"><code><strong>\u0422\u0440\u0430\u043d\u0437\u0438\u0441\u0442\u043e\u0440\u044b \u0438 \u0442\u0440\u0430\u043d\u0437\u0438\u0441\u0442\u043e\u0440\u043d\u044b\u0435 \u0441\u0431\u043e\u0440\u043a\u0438, \u0434\u0438\u043e\u0434\u044b<\/strong><\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>\u041f\u0440\u043e\u0447\u0438\u0435<\/code><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">R1, R3, R4, R5, R9- (0805 &#8212; 10\u00a0 \u043a\u041e\u043c \u00b1 5%)<\/p>\n<\/td>\n<td data-colwidth=\"139\" width=\"139\">\n<p align=\"left\">\u04211-0805 &#8212; X7R \u2013 50 \u0412 \u2013 0,1 \u043c\u043a\u0424  <\/p>\n<\/td>\n<td data-colwidth=\"146\" width=\"146\">\n<p align=\"left\">FP1, FP2, FP3- MF-SM100\/33-1.1\u0410  <\/p>\n<\/td>\n<td data-colwidth=\"131\" width=\"131\">\n<p align=\"left\">VT1, VT3-IRF7416, P-\u043a\u0430\u043d\u0430\u043b<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041c\u041a STM32F103C8T6<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">R2- (0805 &#8212; 20 \u043a\u041e\u043c \u00b1 5%)    <\/p>\n<\/td>\n<td data-colwidth=\"139\" width=\"139\">\n<p align=\"left\">\n<\/td>\n<td data-colwidth=\"146\" width=\"146\">\n<p align=\"left\">\n<\/td>\n<td data-colwidth=\"131\" width=\"131\">\n<p align=\"left\">VT2, VT4-BC847C<\/p>\n<\/td>\n<td>\n<p align=\"left\">\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">R6-(0805 \u2013 221\u00a0 \u043a\u041e\u043c \u00b1 5%)<\/p>\n<\/td>\n<td data-colwidth=\"139\" width=\"139\">\n<p align=\"left\">\n<\/td>\n<td data-colwidth=\"146\" width=\"146\">\n<p align=\"left\">\n<\/td>\n<td data-colwidth=\"131\" width=\"131\">\n<p align=\"left\">AD4-BAT54S<\/p>\n<\/td>\n<td>\n<p align=\"left\">BA-1-\u0418\u0437\u043b\u0443\u0447\u0430\u0442\u0435\u043b\u044c \u043f\u044c\u0435\u0437\u043e\u044d\u043b\u0435\u043a\u0442\u0440\u0438\u0447\u0435\u0441\u043a\u0438\u0439 HCM1206X    <\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">R7-(0805 &#8212; 27\u00a0 \u043a\u041e\u043c \u00b1 5%)<\/p>\n<\/td>\n<td data-colwidth=\"139\" width=\"139\">\n<p align=\"left\">\n<\/td>\n<td data-colwidth=\"146\" width=\"146\">\n<p align=\"left\">\n<\/td>\n<td data-colwidth=\"131\" width=\"131\">\n<p align=\"left\">\n<\/td>\n<td>\n<p align=\"left\">\u0410\u043a\u043a\u0443\u043c\u0443\u043b\u044f\u0442\u043e\u0440\u043d\u0430\u044f \u0441\u0431\u043e\u0440\u043a\u0430 NiMh 14.4V<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">R8-\u0420\u0435\u0437\u0438\u0441\u0442\u043e\u0440 \u043f\u043e\u0434\u0441\u0442\u0440\u043e\u0435\u0447\u043d\u044b\u0439 (3314G-1-502E, 5 \u043a\u041e\u043c  <\/p>\n<\/td>\n<td data-colwidth=\"139\" width=\"139\">\n<p align=\"left\">\n<\/td>\n<td data-colwidth=\"146\" width=\"146\">\n<p align=\"left\">\n<\/td>\n<td data-colwidth=\"131\" width=\"131\">\n<p align=\"left\">\n<\/td>\n<td>\n<p align=\"left\">SA2- \u0412\u044b\u043a\u043b\u044e\u0447\u0430\u0442\u0435\u043b\u044c 113-8748 <\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<h4>\u041e\u0431\u044a\u044f\u0441\u043d\u0435\u043d\u0438\u0435 \u0441\u0445\u0435\u043c\u044b<\/h4>\n<p><strong>\u0423\u0437\u0435\u043b[1]<\/strong><\/p>\n<ul>\n<li>\n<p>\u0412\u0445\u043e\u0434\u043d\u043e\u0439 \u0441\u0438\u043b\u043e\u0432\u043e\u0439 \u043a\u043b\u044e\u0447, \u0438\u0441\u0442\u043e\u043a \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d \u043a +12V, \u0441\u0442\u043e\u043a \u0438\u0434\u0435\u0442 \u043a \u0431\u043b\u043e\u043a\u0443 \u043f\u0438\u0442\u0430\u043d\u0438\u044f(+12_\u0410\u041a\u041a)  \u0447\u0435\u0440\u0435\u0437 \u043f\u0440\u0435\u0434\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u0435\u043b\u0438, \u0430 \u0437\u0430\u0442\u0432\u043e\u0440 \u043f\u043e\u0434\u0442\u044f\u043d\u0443\u0442 \u043a \u0437\u0435\u043c\u043b\u0435, \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u0435 (\u0437\u0430\u0449\u0438\u0449\u0435\u043d\u043d\u0430\u044f \u043f\u043e\u0434\u0430\u0447\u0430  \u043d\u0430\u043f\u0440\u044f\u0436\u0435\u043d\u0438\u044f \u043f\u0438\u0442\u0430\u043d\u0438\u044f \u0441 \u0430\u043a\u043a\u0443\u043c\u0443\u043b\u044f\u0442\u043e\u0440\u043d\u043e\u0433\u043e \u0431\u043b\u043e\u043a\u0430);<\/p>\n<\/li>\n<\/ul>\n<p><strong>\u0423\u0437\u0435\u043b[2]<\/strong><\/p>\n<ul>\n<li>\n<p>\u0412\u0442\u043e\u0440\u0438\u0447\u043d\u044b\u0439 \u0441\u0438\u043b\u043e\u0432\u043e\u0439 \u043a\u043b\u044e\u0447, \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0432\u0430\u0435\u0442 \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u043c\u043e\u0435 \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435\/\u043e\u0442\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u043d\u0430\u043f\u0440\u044f\u0436\u0435\u043d\u0438\u044f \u043f\u0438\u0442\u0430\u043d\u0438\u044f \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u0441\u0438\u0441\u0442\u0435\u043c\u044b, \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0447\u0435\u0440\u0435\u0437 \u041c\u041a, \u0441\u0438\u0433\u043d\u0430\u043b PWR_ON, \u043f\u043e\u0441\u043b\u0435 \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u0434\u0430\u043d\u043d\u043e\u0433\u043e \u0443\u0437\u043b\u0430, \u043d\u0430 \u0441\u0442\u043e\u043a\u0435 \u043d\u0430\u043f\u0440\u044f\u0436\u0435\u043d\u0438\u0435 \u043f\u0438\u0442\u0430\u043d\u0438\u044f +12\u0412\u041a \u0430\u043a\u0442\u0438\u0432\u0438\u0437\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u0438 \u043f\u0435\u0440\u0435\u0434\u0430\u0435\u0442 \u043d\u0430\u043f\u0440\u044f\u0436\u0435\u043d\u0438\u0435 \u0434\u0440\u0443\u0433\u0438\u043c \u0447\u0430\u0441\u0442\u044f\u043c \u0441\u0445\u0435\u043c\u044b, \u0432 \u043c\u043e\u0435\u043c \u043f\u0440\u0438\u043c\u0435\u0440\u0435 \u044d\u0442\u043e (\u0443\u0437\u0435\u043b[4]-\u0417\u0432\u0443\u043a\u043e\u0432\u0430\u044f \u0438\u043d\u0434\u0438\u043a\u0430\u0446\u0438\u044f \u0438 \u0443\u0437\u0435\u043b[5]-l\u0434\u0435\u043b\u0438\u0442\u0435\u043b\u044c \u043d\u0430\u043f\u0440\u044f\u0436\u0435\u043d\u0438\u044f), \u043d\u043e \u0442\u0430\u043a\u0436\u0435 \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0439 \u0443\u0437\u0435\u043b \u0438 \u043d\u0430 \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435  \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 \u043d\u0430\u043f\u0440\u044f\u0436\u0435\u043d\u0438\u044f;<\/p>\n<\/li>\n<\/ul>\n<p><strong>\u0423\u0437\u0435\u043b[3]<\/strong><\/p>\n<ul>\n<li>\n<p>\u0414\u0430\u043d\u043d\u044b\u0439 \u0443\u0437\u0435\u043b \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0432\u0430\u0435\u0442 \u043b\u043e\u0433\u0438\u043a\u0443 \u0432\u0437\u0430\u0438\u043c\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f \u0441 \u043a\u043d\u043e\u043f\u043a\u043e\u0439 \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f\/\u0432\u044b\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f, \u043a\u043d\u043e\u043f\u043a\u0430 sa2, \u043f\u0440\u0438 \u043d\u0430\u0436\u0430\u0442\u0438\u0438 \u0444\u043e\u0440\u043c\u0438\u0440\u0443\u0435\u0442 \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u044e\u0449\u0438\u0439 \u0441\u0438\u0433\u043d\u0430\u043b, \u0434\u0438\u043e\u0434 \u0410D4 \u0438 \u043a\u043e\u043d\u0434\u0435\u043d\u0441\u0430\u0442\u043e\u0440 \u04211 \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0432\u0430\u044e\u0442 \u0444\u0438\u043b\u044c\u0442\u0440\u0430\u0446\u0438\u044e \u0438  \u0430\u043d\u0442\u0438\u0434\u0440\u0435\u0431\u0435\u0437\u0433.<\/p>\n<\/li>\n<\/ul>\n<p><strong>\u0423\u0437\u0435\u043b[4]<\/strong><\/p>\n<ul>\n<li>\n<p>\u0414\u0430\u043d\u043d\u044b\u0439 \u0443\u0437\u0435\u043b \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0432\u0430\u0435\u0442 \u0437\u0432\u0443\u043a\u043e\u0432\u0443\u044e \u0438\u043d\u0434\u0438\u043a\u0430\u0446\u0438\u044e, \u0441\u0438\u0433\u043d\u0430\u043b BEEP \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0435\u0442\u0441\u044f \u043a \u041c\u041a;<\/p>\n<\/li>\n<\/ul>\n<p><strong>\u0423\u0437\u0435\u043b[5]<\/strong><\/p>\n<p>\u0414\u0430\u043d\u043d\u044b\u0439 \u0443\u0437\u0435\u043b \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0434\u0435\u043b\u0438\u0442\u0435\u043b\u0435\u043c \u043d\u0430\u043f\u0440\u044f\u0436\u0435\u043d\u0438\u044f, \u0434\u0435\u043b\u0438\u0442 \u043d\u0430\u043f\u0440\u044f\u0436\u0435\u043d\u0438\u0435 \u0434\u043e \u0443\u0440\u043e\u0432\u043d\u044f, \u043f\u043e\u0434\u0445\u043e\u0434\u044f\u0449\u0435\u0433\u043e \u0434\u043b\u044f \u0438\u0437\u043c\u0435\u0440\u0435\u043d\u0438\u044f \u0410\u0426\u041f \u041c\u041a (\u043e\u0431\u044b\u0447\u043d\u043e \u0434\u043e 3.3V), <strong>\u043f\u043e\u0434\u0441\u0442\u0440\u043e\u0435\u0447\u043d\u044b\u0439 \u0440\u0435\u0437\u0438\u0441\u0442\u043e\u0440 R8, \u0432\u044b\u0441\u0442\u0430\u0432\u043b\u0435\u043d \u043d\u0430 1.7\u043a\u041e\u043c.<\/strong><\/p>\n<h4>\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0430 STM32F103 \u0432 CubeIDE<\/h4>\n<figure class=\"\"><\/figure>\n<p><strong>\u041a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f TIM1(PA11)<\/strong><\/p>\n<p>\u0422\u0430\u0439\u043c\u0435\u0440 TIM1 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442 \u0440\u043e\u043b\u044c \u0433\u0435\u043d\u0435\u0440\u0430\u0442\u043e\u0440\u0430 \u0434\u043b\u044f \u0437\u0432\u0443\u043a\u043e\u0432\u043e\u0439 \u0438\u043d\u0434\u0438\u043a\u0430\u0446\u0438\u0438.<\/p>\n<p>\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u0442\u0430\u0439\u043c\u0435\u0440\u0430:<\/p>\n<ul>\n<li>\n<p>\u041f\u0440\u0435\u0434\u0434\u0435\u043b\u0438\u0442\u0435\u043b\u044c (Prescaler) \u0438 \u043f\u0435\u0440\u0438\u043e\u0434 (Auto-Reload) \u0432\u044b\u0431\u0440\u0430\u043d\u044b \u0442\u0430\u043a, \u0447\u0442\u043e\u0431\u044b \u043d\u0430 \u0432\u044b\u0445\u043e\u0434\u0435 \u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043b\u0441\u044f \u0441\u0438\u0433\u043d\u0430\u043b \u0441 \u0447\u0430\u0441\u0442\u043e\u0442\u043e\u0439 \u0432 \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d\u0435, \u0432\u043e\u0441\u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u043c\u043e\u043c \u0441\u043b\u0443\u0445\u043e\u043c (\u043e\u0431\u044b\u0447\u043d\u043e 1\u20135 \u043a\u0413\u0446);<\/p>\n<\/li>\n<li>\n<p>\u0420\u0435\u0436\u0438\u043c \u0440\u0430\u0431\u043e\u0442\u044b \u2013 PWM (\u0448\u0438\u0440\u043e\u0442\u043d\u043e-\u0438\u043c\u043f\u0443\u043b\u044c\u0441\u043d\u0430\u044f \u043c\u043e\u0434\u0443\u043b\u044f\u0446\u0438\u044f);<\/p>\n<\/li>\n<li>\n<p>\u041a\u043e\u044d\u0444\u0444\u0438\u0446\u0438\u0435\u043d\u0442 \u0437\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f (Pulse) \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442 \u0433\u0440\u043e\u043c\u043a\u043e\u0441\u0442\u044c \u0438 \u0445\u0430\u0440\u0430\u043a\u0442\u0435\u0440 \u0437\u0432\u0443\u0447\u0430\u043d\u0438\u044f.<\/p>\n<\/li>\n<\/ul>\n<p><strong>\u041f\u0440\u0438\u043d\u0446\u0438\u043f \u0440\u0430\u0431\u043e\u0442\u044b:<\/strong><br \/>\u0422\u0430\u0439\u043c\u0435\u0440 \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u0435\u0442 \u0428\u0418\u041c-\u0441\u0438\u0433\u043d\u0430\u043b, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u043e\u0434\u0430\u0451\u0442\u0441\u044f \u043d\u0430 \u0442\u0440\u0430\u043d\u0437\u0438\u0441\u0442\u043e\u0440\u043d\u044b\u0439 \u043a\u043b\u044e\u0447. \u0422\u0440\u0430\u043d\u0437\u0438\u0441\u0442\u043e\u0440 \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442 \u043f\u044c\u0435\u0437\u043e\u0438\u0437\u043b\u0443\u0447\u0430\u0442\u0435\u043b\u0435\u043c \u0438\u043b\u0438 \u0434\u0438\u043d\u0430\u043c\u0438\u043a\u043e\u043c. \u0412 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0435 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f \u0441\u043b\u044b\u0448\u0438\u043c\u044b\u0439 \u0437\u0432\u0443\u043a.<\/p>\n<p>\u041f\u0440\u0435\u0438\u043c\u0443\u0449\u0435\u0441\u0442\u0432\u0430 \u0442\u0430\u043a\u043e\u0433\u043e \u0440\u0435\u0448\u0435\u043d\u0438\u044f:<\/p>\n<ul>\n<li>\n<p>\u041c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0443 \u043d\u0435 \u043d\u0443\u0436\u043d\u043e \u0432\u0440\u0443\u0447\u043d\u0443\u044e \u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0447\u0430\u0441\u0442\u043e\u0442\u0443 \u2013 \u044d\u0442\u0438\u043c \u0437\u0430\u043d\u0438\u043c\u0430\u0435\u0442\u0441\u044f \u0442\u0430\u0439\u043c\u0435\u0440;<\/p>\n<\/li>\n<li>\n<p>\u041b\u0435\u0433\u043a\u043e \u0438\u0437\u043c\u0435\u043d\u044f\u0442\u044c \u0442\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u044c: \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043f\u0435\u0440\u0435\u043f\u0438\u0441\u0430\u0442\u044c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f ARR\/PSC;<\/p>\n<\/li>\n<li>\n<p>\u041c\u043e\u0436\u043d\u043e \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u0442\u044c \u0440\u0430\u0437\u043d\u044b\u0435 \u0437\u0432\u0443\u043a\u043e\u0432\u044b\u0435 \u044d\u0444\u0444\u0435\u043a\u0442\u044b (\u043a\u043e\u0440\u043e\u0442\u043a\u0438\u0435 \u0441\u0438\u0433\u043d\u0430\u043b\u044b, \u043c\u0435\u043b\u043e\u0434\u0438\u0438) \u043f\u0440\u043e\u0441\u0442\u044b\u043c \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435\u043c \u0442\u0430\u0439\u043c\u0435\u0440\u043e\u043c \u0438\u0437 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b.  <\/p>\n<\/li>\n<\/ul>\n<figure class=\"full-width\"><\/figure>\n<p><strong>\u041a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f ADC(PA1) <\/strong><\/p>\n<p>\u0412 \u043f\u0440\u043e\u0435\u043a\u0442\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u043c\u043d\u043e\u0433\u043e\u043a\u0430\u043d\u0430\u043b\u044c\u043d\u044b\u0439 \u0440\u0435\u0436\u0438\u043c \u0440\u0430\u0431\u043e\u0442\u044b \u0410\u0426\u041f \u0441 \u0434\u0432\u0443\u043c\u044f \u043a\u0430\u043d\u0430\u043b\u0430\u043c\u0438 \u0432 \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 (Regular conversion sequence).<\/p>\n<p><em>Rank 1<\/em> \u2013 \u0432\u043d\u0435\u0448\u043d\u0438\u0439 \u043a\u0430\u043d\u0430\u043b (ADC Channel 1).<br \/>\u042d\u0442\u043e\u0442 \u0432\u0445\u043e\u0434 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0451\u043d \u043a \u0434\u0435\u043b\u0438\u0442\u0435\u043b\u044e \u043d\u0430\u043f\u0440\u044f\u0436\u0435\u043d\u0438\u044f \u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0434\u043b\u044f \u0438\u0437\u043c\u0435\u0440\u0435\u043d\u0438\u044f \u043d\u0430\u043f\u0440\u044f\u0436\u0435\u043d\u0438\u044f \u0430\u043a\u043a\u0443\u043c\u0443\u043b\u044f\u0442\u043e\u0440\u0430.<br \/>\u0411\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u044f \u044d\u0442\u043e\u043c\u0443 \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440 \u043c\u043e\u0436\u0435\u0442 \u0432 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u043c \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u043f\u0438\u0442\u0430\u043d\u0438\u044f \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430.<\/p>\n<p><em>Rank 2<\/em> \u2013 \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0438\u0439 \u043a\u0430\u043d\u0430\u043b (Vrefint).<br \/>\u042d\u0442\u043e \u0432\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u044b\u0439 \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a \u043e\u043f\u043e\u0440\u043d\u043e\u0433\u043e \u043d\u0430\u043f\u0440\u044f\u0436\u0435\u043d\u0438\u044f \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0430. \u041e\u043d \u0441\u043b\u0443\u0436\u0438\u0442 \u0434\u043b\u044f \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u043a\u0430\u043b\u0438\u0431\u0440\u043e\u0432\u043a\u0438 \u0438 \u043a\u043e\u043c\u043f\u0435\u043d\u0441\u0430\u0446\u0438\u0438 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u044b\u0445 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439 \u043f\u0438\u0442\u0430\u044e\u0449\u0435\u0433\u043e \u043d\u0430\u043f\u0440\u044f\u0436\u0435\u043d\u0438\u044f. \u0421 \u0435\u0433\u043e \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043c\u043e\u0436\u043d\u043e \u0431\u043e\u043b\u0435\u0435 \u0442\u043e\u0447\u043d\u043e \u0438\u0437\u043c\u0435\u0440\u044f\u0442\u044c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0432\u043d\u0435\u0448\u043d\u0438\u0445 \u0441\u0438\u0433\u043d\u0430\u043b\u043e\u0432, \u0432 \u0442\u043e\u043c \u0447\u0438\u0441\u043b\u0435 \u043d\u0430\u043f\u0440\u044f\u0436\u0435\u043d\u0438\u0435 \u0430\u043a\u043a\u0443\u043c\u0443\u043b\u044f\u0442\u043e\u0440\u0430.<\/p>\n<p>\u0414\u043b\u044f \u043f\u043e\u0432\u044b\u0448\u0435\u043d\u0438\u044f \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u043e\u0441\u0442\u0438 \u0437\u0430\u0434\u0435\u0439\u0441\u0442\u0432\u043e\u0432\u0430\u043d DMA: \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u043e\u0431\u043e\u0438\u0445 \u0438\u0437\u043c\u0435\u0440\u0435\u043d\u0438\u0439 (Rank 1 \u0438 Rank 2) \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u043f\u0435\u0440\u0435\u0434\u0430\u044e\u0442\u0441\u044f \u0432 \u043f\u0430\u043c\u044f\u0442\u044c, \u0430 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u0433\u043e\u0442\u043e\u0432\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435. <\/p>\n<figure class=\"full-width\"><\/figure>\n<p>\u0414\u043b\u044f \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e\u0439 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 ADC \u044f \u0432\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0441\u044f \u0434\u0430\u043d\u043d\u043e\u0439 <a href=\"https:\/\/istarik.ru\/blog\/stm32\/113.html\" rel=\"noopener noreferrer nofollow\">\u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0435\u0439<\/a>, \u0442\u0430\u043c \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e \u0440\u0430\u0441\u043f\u0438\u0441\u0430\u043d\u043e \u043a\u0430\u043a \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441 ADC \u041c\u041a-STM32. <\/p>\n<p><strong>\u041a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f \u043f\u0438\u043d\u0430 \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u043a\u043d\u043e\u043f\u043a\u043e\u0439<\/strong><\/p>\n<p>\u0414\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u043a\u043d\u043e\u043f\u043a\u043e\u0439 \u0432\u044b\u0431\u0440\u0430\u043d \u0432\u044b\u0432\u043e\u0434 PB11, \u0441\u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u0432 \u0440\u0435\u0436\u0438\u043c\u0435:<\/p>\n<ul>\n<li>\n<p>GPIO_EXTI \u2013 \u0432\u043d\u0435\u0448\u043d\u0438\u0439 \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u044e\u0449\u0438\u0439 \u0432\u0445\u043e\u0434. \u042d\u0442\u043e \u0437\u043d\u0430\u0447\u0438\u0442, \u0447\u0442\u043e \u043d\u0430\u0436\u0430\u0442\u0438\u0435 \u043a\u043d\u043e\u043f\u043a\u0438 \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043d\u0435 \u043e\u043f\u0440\u043e\u0441\u043e\u043c \u0432 \u0446\u0438\u043a\u043b\u0435, \u0430 \u0447\u0435\u0440\u0435\u0437 \u0430\u043f\u043f\u0430\u0440\u0430\u0442\u043d\u043e\u0435 \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u0435;<\/p>\n<\/li>\n<li>\n<p>Mode &#8212; External interrupt, Falling edge trigger \u2013 \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u0435 \u0441\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0435\u0442 \u043f\u043e \u0441\u043f\u0430\u0434\u0443 \u0441\u0438\u0433\u043d\u0430\u043b\u0430 (\u043f\u0440\u0438 \u0437\u0430\u043c\u044b\u043a\u0430\u043d\u0438\u0438 \u043a\u043d\u043e\u043f\u043a\u0438 \u043d\u0430 \u0437\u0435\u043c\u043b\u044e);<\/p>\n<\/li>\n<li>\n<p>Pull-up \u2013 \u0432\u043a\u043b\u044e\u0447\u0435\u043d \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0438\u0439 \u043f\u043e\u0434\u0442\u044f\u0433\u0438\u0432\u0430\u044e\u0449\u0438\u0439 \u0440\u0435\u0437\u0438\u0441\u0442\u043e\u0440, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0443\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 \u0432\u0445\u043e\u0434 \u0432 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0438 \u043b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u00ab1\u00bb, \u043f\u043e\u043a\u0430 \u043a\u043d\u043e\u043f\u043a\u0430 \u043d\u0435 \u043d\u0430\u0436\u0430\u0442\u0430.  <\/p>\n<\/li>\n<\/ul>\n<p>\u041a\u043d\u043e\u043f\u043a\u0430 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0430 \u0442\u0430\u043a, \u0447\u0442\u043e \u0432 \u043e\u0431\u044b\u0447\u043d\u043e\u043c \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0438 \u043d\u0430 \u0432\u0445\u043e\u0434\u0435 PB11 \u043f\u0440\u0438\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u043b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u00ab1\u00bb \u0431\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u044f \u0432\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u043e\u043c\u0443 \u043f\u043e\u0434\u0442\u044f\u0433\u0438\u0432\u0430\u044e\u0449\u0435\u043c\u0443 \u0440\u0435\u0437\u0438\u0441\u0442\u043e\u0440\u0443 (Pull-up). \u041f\u0440\u0438 \u043d\u0430\u0436\u0430\u0442\u0438\u0438 \u043a\u043e\u043d\u0442\u0430\u043a\u0442 \u0437\u0430\u043c\u044b\u043a\u0430\u0435\u0442\u0441\u044f \u043d\u0430 \u0437\u0435\u043c\u043b\u044e, \u0444\u043e\u0440\u043c\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u043b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u00ab0\u00bb \u0438 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0441\u043f\u0430\u0434 \u0441\u0438\u0433\u043d\u0430\u043b\u0430. \u042d\u0442\u043e\u0442 \u0441\u043f\u0430\u0434 \u0444\u0438\u043a\u0441\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u043c\u043e\u0434\u0443\u043b\u0435\u043c EXTI, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442 \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u0435.<\/p>\n<figure class=\"full-width\"><\/figure>\n<p><strong>\u041a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f \u043f\u0438\u043d\u0430 \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u0441\u0438\u0433\u043d\u0430\u043b\u043e\u043c PWR_ON<\/strong><\/p>\n<p>\u0421\u0438\u0433\u043d\u0430\u043b PWR_ON \u0438\u0433\u0440\u0430\u0435\u0442 \u0440\u043e\u043b\u044c \u044d\u043b\u0435\u043a\u0442\u0440\u043e\u043d\u043d\u043e\u0433\u043e \u00ab\u0432\u044b\u043a\u043b\u044e\u0447\u0430\u0442\u0435\u043b\u044f \u043f\u0438\u0442\u0430\u043d\u0438\u044f\u00bb.<\/p>\n<p>\u0412 \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u043c \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0438 (Low) \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0430 \u043e\u0431\u0435\u0441\u0442\u043e\u0447\u0435\u043d\u0430.<\/p>\n<p>\u041f\u0440\u0438 \u0430\u043a\u0442\u0438\u0432\u0430\u0446\u0438\u0438 (\u043f\u0435\u0440\u0435\u0432\u043e\u0434 \u0432\u044b\u0432\u043e\u0434\u0430 \u0432 High) \u0441\u0438\u043b\u043e\u0432\u043e\u0439 MOSFET \u043e\u0442\u043a\u0440\u044b\u0432\u0430\u0435\u0442\u0441\u044f, \u0438 \u043d\u0430\u043f\u0440\u044f\u0436\u0435\u043d\u0438\u0435 +12\u0412\u041a \u043f\u043e\u0434\u0430\u0451\u0442\u0441\u044f \u043d\u0430 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0435 \u0443\u0437\u043b\u044b \u0441\u0438\u0441\u0442\u0435\u043c\u044b.<\/p>\n<p>\u0412 \u043f\u0440\u0438\u043c\u0435\u0440\u0435 \u0434\u0430\u043d\u043d\u0430\u044f \u043b\u0438\u043d\u0438\u044f \u043f\u0438\u0442\u0430\u0435\u0442:<\/p>\n<p>\u0443\u0437\u0435\u043b [4] \u2013 \u0437\u0432\u0443\u043a\u043e\u0432\u0443\u044e \u0438\u043d\u0434\u0438\u043a\u0430\u0446\u0438\u044e,<\/p>\n<p>\u0443\u0437\u0435\u043b [5] \u2013 \u0434\u0435\u043b\u0438\u0442\u0435\u043b\u044c \u043d\u0430\u043f\u0440\u044f\u0436\u0435\u043d\u0438\u044f \u0434\u043b\u044f \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433\u0430 \u043f\u0438\u0442\u0430\u043d\u0438\u044f.<\/p>\n<p>\u0410\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u043e \u044d\u0442\u043e\u0442 \u0443\u0437\u0435\u043b \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0438 \u0434\u043b\u044f \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f DC\/DC-\u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 \u0438\u043b\u0438 \u0434\u0440\u0443\u0433\u0438\u0445 \u043c\u043e\u0434\u0443\u043b\u0435\u0439, \u0442\u0440\u0435\u0431\u0443\u044e\u0449\u0438\u0445 \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u043c\u043e\u0433\u043e \u043f\u0438\u0442\u0430\u043d\u0438\u044f.<\/p>\n<figure class=\"full-width\"><\/figure>\n<p><strong>\u041a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f Clock<\/strong> <\/p>\n<figure class=\"full-width\"><\/figure>\n<h4>\u0420\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u043e\u0433\u043e \u043a\u043e\u0434\u0430 <\/h4>\n<p><em>\u0421\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u0441\u043a\u0430\u0447\u0438\u0432\u0430\u043d\u0438\u0435 \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u0433\u043e \u043a\u043e\u0434\u0430 [\u00a0<\/em><a href=\"https:\/\/t.me\/ChipCraft\" rel=\"noopener noreferrer nofollow\"><em>https:\/\/t.me\/ChipCraft<\/em><\/a><em>\u00a0\u0412 \u0437\u0430\u043a\u0440\u0435\u043f\u043b\u0435\u043d\u043d\u043e\u043c \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0438 [ #\u0438\u0441\u0441\u043a\u0443\u0441\u0442\u0432\u043e\u043c\u043a_\u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0439_\u043a\u043e\u0434 &#8212;<\/em>\u0418\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u043a\u043e\u0434 \u0434\u043b\u044f Adc_VoltageControl_STM32F103C8T6<em>]<\/em>  <\/p>\n<blockquote>\n<p>\u0417\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u0447\u043d\u044b\u0439 \u0444\u0430\u0439\u043b keys.h (\u0440\u0430\u0431\u043e\u0442\u0430 \u0441 \u043a\u043d\u043e\u043f\u043a\u0430\u043c\u0438)<\/p>\n<\/blockquote>\n<p>\u0412 \u0434\u0430\u043d\u043d\u043e\u043c \u0444\u0430\u0439\u043b\u0435 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u044b:<\/p>\n<ul>\n<li>\n<p>\u0424\u0443\u043d\u043a\u0446\u0438\u0438 \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u043a\u043d\u043e\u043f\u043a\u0430\u043c\u0438;<\/p>\n<\/li>\n<li>\n<p>\u0411\u0438\u0442\u043e\u0432\u044b\u0435 \u043c\u0430\u0441\u043a\u0438 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0439;<\/p>\n<\/li>\n<li>\n<p>\u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u044b \u0434\u043b\u044f \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0445 \u0441\u0446\u0435\u043d\u0430\u0440\u0438\u0435\u0432 \u043d\u0430\u0436\u0430\u0442\u0438\u0439.<\/p>\n<\/li>\n<\/ul>\n<details class=\"spoiler\">\n<summary>keys.h<\/summary>\n<div class=\"spoiler__content\">\n<pre><code class=\"objectivec\">#ifndef INC_PROJECT_BU_KEYS_H_ #define INC_PROJECT_BU_KEYS_H_  unsigned short getKeyState(void); \/\/\u0432\u044b\u0434\u0430\u0451\u0442 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u043f\u0438\u043d\u043e\u0432 \u043a\u043d\u043e\u043f\u043e\u043a \u0432 \u0434\u0430\u043d\u043d\u044b\u0439 \u043c\u043e\u043c\u0435\u043d\u0442 \u0431\u0435\u0437 \u0443\u0447\u0451\u0442\u0430 \u0437\u0430\u0434\u0435\u0440\u0436\u0435\u043a \u0434\u043b\u044f \u0434\u0440\u0435\u0431\u0435\u0437\u0433\u0430 unsigned short getKeyPinState_AtNow(void); void keysDrv_Handler(void);\/\/\u044d\u0442\u0443 \u0444\u0443\u043d\u043a\u0446\u0438\u044e \u043d\u0443\u0436\u043d\u043e \u0432\u044b\u0437\u044b\u0432\u0430\u0442\u044c \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u043e  #ifndef KEY1_Drv #define KEY1_Drv1u \/\/\u043a\u043d\u043e\u043f\u043a\u0430 \u043d\u0430\u0436\u0430\u0442\u0430 #endif #ifndef KEY1Double_Click_Drv #define KEY1Double_Click_Drv #endif #ifndef KEY3_Drv #define KEY3_Drv4u #endif #ifndef KEY4_Drv #define KEY4_Drv8u #endif  #ifndef KEY1Hold_Drv #define KEY1Hold_Drv16u \/\/ \u043a\u043d\u043e\u043f\u043a\u0430 \u0443\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442\u0441\u044f #endif #ifndef KEY2Hold_Drv #define KEY2Hold_Drv32u #endif #ifndef KEY3Hold_Drv #define KEY3Hold_Drv64u #endif #ifndef KEY4Hold_Drv #define KEY4Hold_Drv128u #endif  #ifndef KEY1Release_Drv #define KEY1Release_Drv256u \/\/\u0411\u0438\u0442 \u043e\u0442\u043f\u0443\u0441\u043a\u0430\u043d\u0438\u044f \u043a\u043d\u043e\u043f\u043a\u0438 #endif #ifndef KEY2Release_Drv #define KEY2Release_Drv512u #endif #ifndef KEY3Release_Drv #define KEY3Release_Drv1024u #endif #ifndef KEY4Release_Drv #define KEY4Release_Drv2048u #endif  #endif \/* INC_PROJECT_BU_KEYS_H_ *\/<\/code><\/pre>\n<\/div>\n<\/details>\n<blockquote>\n<p>\u0420\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u043c\u043e\u0434\u0443\u043b\u044f keys.c (\u0440\u0430\u0431\u043e\u0442\u0430 \u0441 \u043a\u043d\u043e\u043f\u043a\u0430\u043c\u0438)<\/p>\n<\/blockquote>\n<p>\u0414\u0430\u043d\u043d\u044b\u0439 \u043c\u043e\u0434\u0443\u043b\u044c \u0432\u043a\u043b\u044e\u0447\u0430\u0435\u0442 \u0432 \u0441\u0435\u0431\u044f \u0437\u0430\u0434\u0430\u0447\u0438: <\/p>\n<ul>\n<li>\n<p>\u0423\u0441\u0442\u0440\u0430\u043d\u0435\u043d\u0438\u0435 \u0434\u0440\u0435\u0431\u0435\u0437\u0433\u0430 \u043a\u043e\u043d\u0442\u0430\u043a\u0442\u043e\u0432;    <\/p>\n<\/li>\n<li>\n<p>\u0420\u0430\u0437\u043b\u0438\u0447\u0438\u0435 \u043c\u0435\u0436\u0434\u0443 \u043a\u043e\u0440\u043e\u0442\u043a\u0438\u043c \u0438 \u0434\u043e\u043b\u0433\u0438\u043c \u043d\u0430\u0436\u0430\u0442\u0438\u0435\u043c;<\/p>\n<\/li>\n<li>\n<p>\u041e\u0442\u0441\u043b\u0435\u0436\u0438\u0432\u0430\u043d\u0438\u0435 \u0441\u043e\u0431\u044b\u0442\u0438\u0439 \u043d\u0430\u0436\u0430\u0442\u0438\u044f, \u0443\u0434\u0435\u0440\u0436\u0430\u043d\u0438\u044f \u0438 \u043e\u0442\u043f\u0443\u0441\u043a\u0430\u043d\u0438\u044f.<\/p>\n<\/li>\n<\/ul>\n<p><strong>keysDrv_Handler()<\/strong><\/p>\n<p>\u0412\u044b\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f <strong>\u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u043e<\/strong> \u0432 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u043c \u0446\u0438\u043a\u043b\u0435 \u0438\u043b\u0438 \u0438\u0437 \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u043e\u0433\u043e \u0442\u0430\u0439\u043c\u0435\u0440\u0430.<\/p>\n<p><strong>\u041d\u0430\u0436\u0430\u0442\u0438\u0435  \u043a\u043d\u043e\u043f\u043a\u0438 (\u043f\u0435\u0440\u0432\u0438\u0447\u043d\u043e\u0435 \u0441\u043e\u0431\u044b\u0442\u0438\u0435)<\/strong><\/p>\n<pre><code class=\"objectivec\">2.if(gl_kDrv_key1_blockEvent == 0 &amp;&amp; ON_OFFB_state == KEY_PRESS) { 3.    gl_kDrv_key1_blockEvent = 1; 4.    gl_kDrv_time_key1_press = ms; 5.}<\/code><\/pre>\n<p>\u0421\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u0442\u0441\u044f \u0432\u0440\u0435\u043c\u044f \u043d\u0430\u0436\u0430\u0442\u0438\u044f, \u0434\u0430\u043b\u044c\u043d\u0435\u0439\u0448\u0438\u0435 \u0441\u043e\u0431\u044b\u0442\u0438\u044f \u0431\u043b\u043e\u043a\u0438\u0440\u0443\u044e\u0442\u0441\u044f \u0434\u043e \u043e\u0442\u043f\u0443\u0441\u043a\u0430\u043d\u0438\u044f<\/p>\n<p><strong>\u0424\u0438\u043b\u044c\u0442\u0440 \u0434\u0440\u0435\u0431\u0435\u0437\u0433\u0430<\/strong><\/p>\n<pre><code class=\"objectivec\">else if(gl_kDrv_key1_blockEvent == 1 &amp;&amp;          ON_OFFB_state==KEY_PRESS &amp;&amp;          gl_kDrv_key1_short_state==0 &amp;&amp;          (ms - gl_kDrv_time_key1_press) &gt; DELAY4TIMER){ \/\/\u043f\u0440\u043e\u0448\u043b\u043e \u0432\u0440\u0435\u043c\u044f \u0437\u0430\u0449\u0438\u0442\u044b \u043e\u0442 \u0434\u0440\u0435\u0431\u0435\u0437\u0433\u0430, \u043a\u043d\u043e\u043f\u043a\u0430 \u043d\u0430\u0436\u0430\u0442\u0430 gl_kDrv_key1_short_state=1; keyState &amp;= ~KEY1Release_Drv;\/\/\u0441\u043d\u0438\u043c\u0430\u0435\u043c \u0431\u0438\u0442 \u043e\u0442\u043f\u0443\u0441\u043a\u0430\u043d\u0438\u044f \u043a\u043d\u043e\u043f\u043a\u0438 keyState |= KEY1_Drv; }<\/code><\/pre>\n<p>\u0415\u0441\u043b\u0438 \u043f\u0440\u043e\u0448\u043b\u043e \u0431\u043e\u043b\u044c\u0448\u0435 DELAY4TIMER, \u0441\u0447\u0438\u0442\u0430\u0435\u043c \u043a\u043d\u043e\u043f\u043a\u0443 \u0440\u0435\u0430\u043b\u044c\u043d\u043e \u043d\u0430\u0436\u0430\u0442\u043e\u0439.<\/p>\n<p><strong>\u041e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435 \u0443\u0434\u0435\u0440\u0436\u0430\u043d\u0438\u044f<\/strong><\/p>\n<pre><code class=\"objectivec\">else if(gl_kDrv_key1_blockEvent == 1 &amp;&amp;          ON_OFFB_state==KEY_PRESS &amp;&amp;          gl_kDrv_key1_short_state==1 &amp;&amp;          (ms - gl_kDrv_time_key1_press) &gt; DELAY_HOLD_TIMER){ keyState |= KEY1Hold_Drv; }<\/code><\/pre>\n<p>\u0415\u0441\u043b\u0438 \u043f\u0440\u043e\u0448\u043b\u043e \u0431\u043e\u043b\u044c\u0448\u0435 DELAY_HOLD_TIMER, \u0432\u044b\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u043c \u0431\u0438\u0442 \u0443\u0434\u0435\u0440\u0436\u0430\u043d\u0438\u044f.<\/p>\n<p><strong>\u041e\u0442\u043f\u0443\u0441\u043a\u0430\u043d\u0438\u0435 \u043a\u043d\u043e\u043f\u043a\u0438<\/strong><\/p>\n<pre><code class=\"objectivec\">else if(gl_kDrv_key1_blockEvent == 1 &amp;&amp;<\/code><\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-473629","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/473629","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=473629"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/473629\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=473629"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=473629"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=473629"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}