{"id":256475,"date":"2015-05-02T01:04:02","date_gmt":"2015-05-01T21:04:02","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=256475"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=256475","title":{"rendered":"\u041f\u0440\u043e\u0442\u043e\u043a\u043e\u043b WS2812B \u043d\u0430 STM32 \u0431\u0435\u0437 \u043f\u0443\u0441\u0442\u044b\u0445 \u0446\u0438\u043a\u043b\u043e\u0432 \u0438 \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u0439. \u0418 \u043a\u0430\u043a \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u0443\u044e \u0440\u0430\u0434\u0443\u0433\u0443"},"content":{"rendered":"<p>     \t<img decoding=\"async\" src=\"\/\/habrastorage.org\/files\/86e\/965\/79b\/86e96579bd1c45638e85b564015cb2fa.JPG\"\/><\/p>\n<p>  \u041d\u0430 \u0445\u0430\u0431\u0440\u0435 \u0443\u0436\u0435 \u0435\u0441\u0442\u044c \u043f\u0430\u0440\u0430 \u0441\u0442\u0430\u0442\u0435\u0439 \u043e \u0440\u0430\u0431\u043e\u0442\u0435 \u0441 RGB \u0441\u0432\u0435\u0442\u043e\u0434\u0438\u043e\u0434\u0430\u043c\u0438 WS2112B, \u043d\u043e \u043f\u043e\u0447\u0435\u043c\u0443-\u0442\u043e \u043e\u043d\u0438 \u0432\u0441\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442 \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u0430\u0440\u0445\u0430\u0438\u0447\u043d\u044b\u0439 \u0441\u043f\u043e\u0441\u043e\u0431 \u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0431\u0438\u0442\u043e\u0432\u043e\u0439 \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438. \u0421\u043f\u043e\u0441\u043e\u0431 \u0437\u0430\u043a\u043b\u044e\u0447\u0430\u0435\u0442\u0441\u044f \u0432 \u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0438 \u0442\u043e\u0447\u043d\u044b\u0445 \u0438\u043d\u0442\u0435\u0440\u0432\u0430\u043b\u043e\u0432 \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043f\u0443\u0441\u0442\u044b\u0445 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u044b\u0445 \u0446\u0438\u043a\u043b\u043e\u0432. \u0412\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u044d\u0442\u043e \u0438\u0437\u0434\u0435\u0440\u0436\u043a\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f Arduino, \u043d\u043e \u043c\u044b, \u043a\u043e\u043d\u0435\u0447\u043d\u043e, \u0443\u0436\u0435 \u0434\u0430\u0432\u043d\u043e \u043f\u0435\u0440\u0435\u0448\u043b\u0438 \u043d\u0430 ARM-Cortex-M4 \u0432 \u043b\u0438\u0446\u0435 STM32 \u0438 \u043c\u043e\u0436\u0435\u043c \u0441\u0435\u0431\u0435 \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u0442\u044c \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u043a\u0440\u0430\u0441\u0438\u0432\u0435\u0435. <br \/>  <a name=\"habracut\"><\/a><br \/>  \u0418\u0442\u0430\u043a, \u043d\u0430\u043f\u043e\u043c\u043d\u044e \u201c\u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u201d WS2112B.<br \/>  <img decoding=\"async\" src=\"\/\/habrastorage.org\/files\/d91\/3c8\/0f8\/d913c80f86cb47749480070f5eb4b897.png\"\/><br \/>  \u0421\u0432\u0435\u0442\u043e\u0434\u0438\u043e\u0434\u043d\u0430\u044f \u043f\u043e\u043b\u043e\u0441\u0430 \u043d\u0430 WS2112B \u0438\u043c\u0435\u0435\u0442 \u0432\u0441\u0435\u0433\u043e \u043e\u0434\u0438\u043d \u0446\u0438\u0444\u0440\u043e\u0432\u043e\u0439 \u0432\u0445\u043e\u0434 \u2013 DIN, \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u043d\u044b\u0439 \u043a \u043f\u0435\u0440\u0432\u043e\u043c\u0443 \u0441\u0432\u0435\u0442\u043e\u0434\u0438\u043e\u0434\u0443 \u043d\u0430 \u043f\u043e\u043b\u043e\u0441\u0435. \u041d\u0430 \u043d\u0435\u0433\u043e \u043f\u043e\u0434\u0430\u0435\u0442\u0441\u044f \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u0430\u044f \u0438\u043c\u043f\u0443\u043b\u044c\u0441\u043d\u0430\u044f \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c, \u043a\u043e\u0434\u0438\u0440\u0443\u044e\u0449\u0430\u044f \u0431\u0438\u0442\u044b, \u043a\u0430\u043a \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u043e \u043d\u0430 \u0440\u0438\u0441\u0443\u043d\u043a\u0435. \u0423 \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0441\u0432\u0435\u0442\u043e\u0434\u0438\u043e\u0434\u0430 \u0435\u0441\u0442\u044c \u043e\u0434\u0438\u043d \u0446\u0438\u0444\u0440\u043e\u0432\u043e\u0439 \u0432\u044b\u0445\u043e\u0434 \u2013 DOUT \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u043d\u044b\u0439 \u0441 \u0432\u0445\u043e\u0434\u043e\u043c DIN \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0433\u043e \u0441\u0432\u0435\u0442\u043e\u0434\u0438\u043e\u0434\u0430 \u043d\u0430 \u043f\u043e\u043b\u043e\u0441\u0435. \u041a\u0430\u0436\u0434\u043e\u043c\u0443 \u0441\u0432\u0435\u0442\u043e\u0434\u0438\u043e\u0434\u0443 \u043d\u0443\u0436\u043d\u043e \u043f\u0435\u0440\u0435\u0434\u0430\u0442\u044c 24-\u0435 \u0431\u0438\u0442\u0430 (\u043f\u043e 8-\u043c\u044c \u0431\u0438\u0442 \u043d\u0430 \u043a\u0430\u0436\u0434\u044b\u0439 \u0446\u0432\u0435\u0442: \u043a\u0440\u0430\u0441\u043d\u044b\u0439 R, \u0437\u0435\u043b\u0435\u043d\u044b\u0439 G \u0438 \u0441\u0438\u043d\u0438\u0439 B). \u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c, \u0447\u0442\u043e\u0431\u044b \u0437\u0430\u0436\u0435\u0447\u044c \u0432\u0441\u0435 \u0441\u0432\u0435\u0442\u043e\u0434\u0438\u043e\u0434\u044b \u043d\u0430\u0434\u043e \u043f\u0435\u0440\u0435\u0434\u0430\u0432\u0430\u0442\u044c 24*N \u0431\u0438\u0442, \u0433\u0434\u0435 N \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0441\u0432\u0435\u0442\u043e\u0434\u0438\u043e\u0434\u043e\u0432 \u043d\u0430 \u043f\u043e\u043b\u043e\u0441\u0435. \u041f\u0440\u0438\u043d\u044f\u0432 \u0431\u0438\u0442\u044b \u0441\u0432\u0435\u0442\u043e\u0434\u0438\u043e\u0434\u044b \u0437\u0430\u0433\u043e\u0440\u0430\u044e\u0442\u0441\u044f \u0438 \u0441\u0442\u0430\u0442\u0438\u0447\u043d\u043e \u0433\u043e\u0440\u044f\u0442 \u043f\u043e\u043a\u0430 \u043d\u0435 \u043f\u043e\u043b\u0443\u0447\u0430\u0442 \u043d\u043e\u0432\u0443\u044e \u0431\u0438\u0442\u043e\u0432\u0443\u044e \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c. \u041a\u0430\u0436\u0434\u0430\u044f \u0431\u0438\u0442\u043e\u0432\u0430\u044f \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442\u0441\u044f \u0441 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 DIN \u0432 \u043b\u043e\u0433. \u043d\u043e\u043b\u044c \u043d\u0430 \u0432\u0440\u0435\u043c\u044f \u043d\u0435 \u043c\u0435\u043d\u0435\u0435 50 \u043c\u043a\u0441. <\/p>\n<p>  \u041a\u0430\u043a \u0432\u0438\u0434\u043d\u043e \u0431\u0438\u0442\u044b \u043a\u043e\u0434\u0438\u0440\u0443\u044e\u0442\u0441\u044f \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043a\u043e\u0440\u043e\u0442\u043a\u0438\u043c\u0438 \u0438\u043c\u043f\u0443\u043b\u044c\u0441\u0430\u043c\u0438 \u0441 \u0436\u0435\u0441\u0442\u043a\u0438\u043c\u0438 \u0434\u043e\u043f\u0443\u0441\u043a\u0430\u043c\u0438. \u041e\u0442 \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0430, \u043f\u044b\u0442\u0430\u044e\u0449\u0435\u0433\u043e\u0441\u044f \u0441\u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0438\u0445 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u044b\u043c\u0438 \u0437\u0430\u0434\u0435\u0440\u0436\u043a\u0430\u043c\u0438 \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u043a\u0430\u043a \u043c\u0438\u043d\u0438\u043c\u0443\u043c \u0437\u0430\u043f\u0440\u0435\u0442\u0438\u0442\u044c \u0432\u0441\u0435 \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u044f \u0447\u0442\u043e\u0431\u044b \u043d\u0435\u0432\u0437\u043d\u0430\u0447\u0430\u0439 \u043d\u0435 \u0441\u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043b\u0441\u044f \u0441\u0431\u0440\u043e\u0441 \u0438\u043b\u0438 \u0441\u0431\u043e\u0439\u043d\u044b\u0439 \u0431\u0438\u0442. \u0420\u0435\u0441\u0443\u0440\u0441\u044b \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u043d\u043e\u0433\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0437\u0434\u0435\u0441\u044c \u0442\u0430\u043a\u0436\u0435 \u0440\u0430\u0441\u0445\u043e\u0434\u0443\u044e\u0442\u0441\u044f \u043d\u0435\u0440\u0430\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e, \u0447\u0442\u043e\u0431\u044b \u0437\u0430\u0436\u0435\u0447\u044c 100 \u0441\u0432\u0435\u0442\u043e\u0434\u0438\u043e\u0434\u043e\u0432 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u0443 \u043d\u0443\u0436\u043d\u043e \u043e\u0442\u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c 3 \u043c\u0441. \u0415\u0441\u043b\u0438 \u043e\u0431\u043d\u043e\u0432\u043b\u044f\u0442\u044c \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u0441\u0432\u0435\u0442\u043e\u0434\u0438\u043e\u0434\u043e\u0432 \u0441 \u0447\u0430\u0441\u0442\u043e\u0442\u043e\u0439 100 \u0413\u0446, \u0442\u043e \u0442\u0430\u043a\u043e\u0439\u201d \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u201d \u0437\u0430\u0431\u0435\u0440\u0435\u0442 30% \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u043d\u043e\u0433\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438. <\/p>\n<p>  \u0421\u043b\u044b\u0448\u0430\u0442\u0441\u044f \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 SPI \u0434\u043b\u044f \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0438 \u0431\u0438\u0442\u043e\u0432\u043e\u0433\u043e \u043f\u043e\u0442\u043e\u043a\u0430 \u043d\u0430 WS2112B. \u041d\u043e \u0437\u0434\u0435\u0441\u044c \u043f\u0440\u0435\u043f\u044f\u0442\u0441\u0442\u0432\u0438\u0435\u043c \u043c\u043e\u0436\u0435\u0442 \u0441\u0442\u0430\u0442\u044c \u043d\u0435\u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e\u0435 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u0435 \u0442\u0430\u043a\u0442\u043e\u0432\u043e\u0439 \u0447\u0430\u0441\u0442\u043e\u0442\u044b \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u043e\u0439 \u0448\u0438\u043d\u044b \u0438 \u0441\u0438\u043b\u044c\u043d\u044b\u0435 \u043f\u043e\u0433\u0440\u0435\u0448\u043d\u043e\u0441\u0442\u0438 \u0434\u043b\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0435\u0439 \u0438\u043c\u043f\u0443\u043b\u044c\u0441\u043e\u0432. <\/p>\n<p>  \u0410 \u043c\u0435\u0436\u0434\u0443 \u0442\u0435\u043c \u0432 STM32 \u0438 \u0432\u043e\u043e\u0431\u0449\u0435 \u0432\u043e \u0432\u0441\u0435\u0445 \u0447\u0438\u043f\u0430\u0445 \u043d\u0430 Cortex-M \u0435\u0441\u0442\u044c \u043e\u0442\u043b\u0438\u0447\u043d\u044b\u0439 \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c \u043f\u0440\u044f\u043c\u043e\u0433\u043e \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u043a \u043f\u0430\u043c\u044f\u0442\u0438 (DMA). \u0411\u0438\u0442\u044b \u043c\u043e\u0436\u043d\u043e \u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0442\u0430\u0439\u043c\u0435\u0440\u043e\u0432 \u0432 \u0440\u0435\u0436\u0438\u043c\u0435 \u0448\u0438\u0440\u043e\u0442\u043d\u043e-\u0438\u043c\u043f\u0443\u043b\u044c\u0441\u043d\u043e\u0439 \u043c\u043e\u0434\u0443\u043b\u044f\u0446\u0438\u0438, \u0430 \u043a\u0430\u0436\u0434\u044b\u0439 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u0431\u0438\u0442 \u0438\u0437\u0432\u043b\u0435\u043a\u0430\u0442\u044c \u0438\u0437 \u041e\u0417\u0423 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e DMA.<br \/>  \u041d\u0430 \u0440\u0438\u0441\u0443\u043d\u043a\u0435 \u043d\u0438\u0436\u0435 \u043f\u043e\u043a\u0430\u0437\u0430\u043d\u0430 \u0441\u0445\u0435\u043c\u0430 \u0432\u0437\u0430\u0438\u043c\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f DMA \u0438 \u0442\u0430\u0439\u043c\u0435\u0440\u0430 TIM4 \u0432 \u0447\u0438\u043f\u0435 STM32F407VET6. \u041e\u0442\u043b\u0430\u0434\u043a\u0430 \u043f\u0440\u043e\u0432\u043e\u0434\u0438\u043b\u0430\u0441\u044c \u043d\u0430 \u043c\u043e\u0435\u043c \u043f\u0440\u043e\u043c\u044b\u0448\u043b\u0435\u043d\u043d\u043e\u043c \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0435 \u0438\u043c\u0435\u043d\u043d\u043e \u0441 \u0442\u0430\u043a\u0438\u043c \u0447\u0438\u043f\u043e\u043c, \u043d\u043e \u0441 \u0442\u0435\u043c \u0436\u0435 \u0443\u0441\u043f\u0435\u0445\u043e\u043c \u0432\u0441\u0435 \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0432\u0442\u043e\u0440\u0438\u0442\u044c \u043d\u0430 \u043b\u044e\u0431\u043e\u043c \u0447\u0438\u043f\u0435 \u0441\u0435\u043c\u0435\u0439\u0441\u0442\u0432\u0430 STM32. \u0412 \u0434\u0430\u043d\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u0443 \u043c\u0435\u043d\u044f \u0438\u043c\u0435\u043d\u043d\u043e \u0432\u044b\u0432\u043e\u0434 8 GPIOB \u0431\u044b\u043b \u0441\u0432\u043e\u0431\u043e\u0434\u0435\u043d, \u0447\u0435\u043c \u044f \u0438 \u0432\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0441\u044f.<br \/>  <img decoding=\"async\" src=\"\/\/habrastorage.org\/files\/28c\/ba7\/936\/28cba7936eb64d2b97264d66872e95ff.png\"\/><\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0414\u0430\u043b\u0435\u0435 \u0442\u0435\u043a\u0441\u0442 \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0442\u0430\u0439\u043c\u0435\u0440\u0430 \u0438 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0430:<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"cpp\">#define     BIT(n) (1u &lt;&lt; n) #define     LSHIFT(v,n) (((unsigned int)(v) &lt;&lt; n))  #define LEDS_NUM    80 #define COLRS       3  INT16U DMA_buf[LEDS_NUM+2][COLRS][8];  \/*------------------------------------------------------------------------------   Timer4 \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u0435\u0442 \u0438\u043c\u043f\u0443\u043b\u044c\u0441\u044b \u043d\u0430 \u0441\u0432\u0435\u0442\u043e\u0434\u0438\u043e\u0434\u043d\u0443\u044e \u043f\u043e\u043b\u043e\u0441\u0443   \u0422\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0442\u0430\u0439\u043c\u0435\u0440\u0430 \u0438\u0434\u0435\u0442 \u043e\u0442 PCLK1 72 MHz    \u041a\u0430\u043d\u0430\u043b 3 \u0442\u0430\u0439\u043c\u0435\u0440\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0432 \u0440\u0435\u0436\u0438\u043c\u0435 Compare \u0441 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u043e\u0439 \u043f\u043e DMA \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430 CCR3 \u0434\u043b\u044f \u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0431\u0438\u0442\u043e\u0432\u044b\u0445 \u0441\u0438\u0433\u043d\u0430\u043b\u043e\u0432  ------------------------------------------------------------------------------*\/ void Timer4_init(void) {   TIM_TypeDef *tim = TIM4;   RCC_TypeDef *rcc = RCC;    rcc-&gt;APB1RSTR |= BIT(2);    \/\/ \u0421\u0431\u0440\u043e\u0441 \u0442\u0430\u0439\u043c\u0435\u0440\u0430 4   rcc-&gt;APB1RSTR &= ~BIT(2);      rcc-&gt;APB1ENR |= BIT(2);     \/\/ \u0420\u0430\u0437\u0440\u0435\u0448\u0430\u0435\u043c \u0442\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0442\u0430\u0439\u043c\u0435\u0440\u0430 4   tim-&gt;CR1 = BIT(7);          \/\/  1: TIMx_ARR register is buffered.   tim-&gt;CR2 = 0;                  tim-&gt;PSC = 0;               \/\/ \u041f\u0440\u0435\u0434\u0434\u0435\u043b\u0438\u0442\u0435\u043b\u044c \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u0435\u0442 \u0447\u0430\u0441\u0442\u043e\u0442\u0443 72 \u041c\u0413\u0446   tim-&gt;ARR = 90 - 1;          \/\/ \u041f\u0435\u0440\u0435\u0433\u0440\u0443\u0437\u043a\u0430 \u0442\u0430\u0439\u043c\u0435\u0440\u0430 \u043a\u0430\u0436\u0434\u044b\u0435 1.25 \u043c\u043a\u0441   tim-&gt;CCMR2 = 0                + LSHIFT(6, 4) \/\/ OC3M: Output compare 3 mode | 110: PWM mode 1 - In upcounting, channel 1 is active as long as TIMx_CNT&lt;TIMx_CCR1 else inactive.                + LSHIFT(1, 3) \/\/ OC3PE: Output compare 3 preload enable                + LSHIFT(0, 0) \/\/ CC3S: Capture\/Compare 3 selection | 00: CC3 channel is configured as output   ;    tim-&gt;CNT = 0;   tim-&gt;CCR3 = 0;   tim-&gt;DIER = BIT(11);        \/\/ Bit 11 CC3DE: Capture\/Compare 3 DMA request enable. \u0420\u0430\u0437\u0440\u0435\u0448\u0430\u0435\u043c \u0437\u0430\u043f\u0440\u043e\u0441\u044b DMA   tim-&gt;CR1 |= BIT(0);         \/\/ \u0417\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u043c \u0442\u0430\u0439\u043c\u0435\u0440   tim-&gt;CCER = BIT(8);         \/\/ \u0420\u0430\u0437\u0440\u0435\u0448\u0430\u0435\u043c \u0440\u0430\u0431\u043e\u0442\u044b \u0432\u044b\u0445\u043e\u0434\u0430, \u0447\u0442\u043e\u0431\u044b \u0432\u043e\u0437\u043d\u0438\u043a\u0430\u043b\u0438 \u0441\u0438\u0433\u043d\u0430\u043b\u044b \u0434\u043b\u044f DMA }  \/*------------------------------------------------------------------------------   \u0418\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u043a\u0430\u043d\u0430\u043b\u0430 2 DMA1 Stream 7   \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0434\u043b\u044f \u043f\u0435\u0440\u0435\u0441\u044b\u043b\u043a\u0438 \u0448\u0430\u0431\u043b\u043e\u043d\u043e\u0439 \u0431\u0438\u0442\u043e\u0432 \u043f\u043e\u0442\u043e\u043a\u0430 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0441\u0432\u0435\u0442\u043e\u0434\u0438\u043e\u0434\u043d\u043e\u0439 \u043b\u0435\u043d\u0442\u043e\u0439 \u043d\u0430 WS2812B \u0432 \u0442\u0430\u0439\u043c\u0435\u0440 TMR4 \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0449\u0438\u0439 \u0432 \u0440\u0435\u0436\u0438\u043c\u0435 \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u0438 PWM   ------------------------------------------------------------------------------*\/ void DMA1_Stream7_Mem_to_TMR4_init(void) {   DMA_Stream_TypeDef *dma_ch = DMA1_Stream7;   RCC_TypeDef *rcc = RCC;    rcc-&gt;AHB1ENR |= BIT(21);               \/\/ \u0420\u0430\u0437\u0440\u0435\u0448\u0430\u0435\u043c DMA1    dma_ch-&gt;CR = 0;    \/\/ \u0412\u044b\u043a\u043b\u044e\u0447\u0430\u0435\u043c \u0441\u0442\u0440\u0438\u043c   dma_ch-&gt;PAR = (unsigned int)&(TIM4-&gt;CCR3) + 1;  \/\/ \u041d\u0430\u0437\u043d\u0430\u0447\u0430\u0435\u043c \u0430\u0434\u0440\u0435\u0441 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430 \u0434\u0430\u043d\u043d\u044b\u0445 ADC   dma_ch-&gt;M0AR = (unsigned long)&DMA_buf;   dma_ch-&gt;NDTR = (LEDS_NUM + 2) * COLRS * 8;   dma_ch-&gt;CR =                LSHIFT(2, 25) + \/\/ CHSEL[2:0]: Channel selection |    010: channel 2 selected                LSHIFT(0, 23) + \/\/ MBURST: Memory burst transfer configuration | 00: single transfer                LSHIFT(0, 21) + \/\/ PBURST[1:0]: Peripheral burst transfer configuration | 00: single transfer                LSHIFT(0, 19) + \/\/ CT: Current target (only in double buffer mode) | 0: The current target memory is Memory 0 (addressed by the DMA_SxM0AR pointer)                LSHIFT(0, 18) + \/\/ DBM: Double buffer mode | 0: No buffer switching at the end of transfer                LSHIFT(3, 16) + \/\/ PL[1:0]: Priority level | 11: Very high.  PL[1:0]: Priority level                LSHIFT(0, 15) + \/\/ PINCOS: Peripheral increment offset size | 0: The offset size for the peripheral address calculation is linked to the PSIZE                LSHIFT(1, 13) + \/\/ MSIZE[1:0]: Memory data size | 00: 8-bit. Memory data size                LSHIFT(1, 11) + \/\/ PSIZE[1:0]: Peripheral data size | 00: 8-bit. Peripheral data size                LSHIFT(1, 10) + \/\/ MINC: Memory increment mode | 1: Memory address pointer is incremented after each data transfer (increment is done according to MSIZE)                LSHIFT(0, 9) +  \/\/ PINC: Peripheral increment mode | 0: Peripheral address pointer is fixed                LSHIFT(1, 8) +  \/\/ CIRC: Circular mode | 1: Circular mode enabled                LSHIFT(1, 6) +  \/\/ DIR[1:0]: Data transfer direction | 01: Memory-to-peripheral                LSHIFT(0, 5) +  \/\/ PFCTRL: Peripheral flow controller | 1: The peripheral is the flow controller                LSHIFT(1, 4) +  \/\/ TCIE: Transfer complete interrupt enable | 1: TC interrupt enabled                LSHIFT(0, 3) +  \/\/ HTIE: Half transfer interrupt enable | 0: HT interrupt disabled                LSHIFT(0, 2) +  \/\/ TEIE: Transfer error interrupt enable | 0 : TE interrupt disabled                LSHIFT(0, 1) +  \/\/ DMEIE: Direct mode error interrupt enable | 0: Direct mode error interrupt disabled                LSHIFT(0, 0) +  \/\/ EN: Stream enable | 1: Stream enabled                0;    dma_ch-&gt;FCR =                 LSHIFT(0, 7) + \/\/ FEIE: FIFO error interrupt enable                 LSHIFT(1, 2) + \/\/ DMDIS: Direct mode disable | 1: Direct mode disabled. \u0420\u0430\u0437\u0440\u0435\u0448\u0430\u0435\u043c \u0447\u0442\u043e\u0431\u044b \u0431\u044b\u043b\u0430 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u043f\u0435\u0440\u0435\u0441\u044b\u043b\u043a\u0438 \u0438\u0437 \u0431\u0430\u0439\u0442 \u0432 \u0434\u0432\u0443\u0445\u0431\u0430\u0439\u0442\u043e\u0432\u044b\u0439 \u0440\u0435\u0433\u0438\u0441\u0442\u0440                  LSHIFT(1, 0) + \/\/ FTH[1:0]: FIFO threshold selection | 01: 1\/2 full FIFO                 0;   dma_ch-&gt;CR |= BIT(0); \/\/  1: Stream enabled }  <\/code><\/pre>\n<\/p><\/div>\n<\/div>\n<p>  \u041f\u043e\u0441\u043b\u0435 \u044d\u0442\u043e\u0439 \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442\u0441\u044f \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u043f\u0435\u0440\u0435\u0441\u044b\u043b\u043a\u0430 \u0431\u0438\u0442\u043e\u0432\u043e\u0433\u043e \u043f\u043e\u0442\u043e\u043a\u0430 \u0438\u0437 \u043c\u0430\u0441\u0441\u0438\u0432\u0430 DMA_buf \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u043d\u043e\u0433\u043e \u0432 \u041e\u0417\u0423 \u043d\u0430 \u0432\u043d\u0435\u0448\u043d\u0438\u0439 \u0432\u044b\u0432\u043e\u0434 8 GPIOB. \u0410\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u0438 50-\u0438 \u043c\u0438\u043a\u0440\u043e\u0441\u0435\u043a\u0443\u043d\u0434\u043d\u0430\u044f \u043f\u0430\u0443\u0437\u0430 \u0441\u0431\u0440\u043e\u0441\u0430. \u041f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440 \u0432 \u043f\u0435\u0440\u0435\u0441\u044b\u043b\u043a\u0435 \u043d\u0438\u043a\u0430\u043a \u043d\u0435 \u0443\u0447\u0443\u0432\u0441\u0442\u0432\u0443\u0435\u0442. \u0427\u0442\u043e\u0431\u044b \u0437\u0430\u0436\u0435\u0447\u044c \u043a\u0430\u043a\u043e\u0439-\u043b\u0438\u0431\u043e \u0441\u0432\u0435\u0442\u043e\u0434\u0438\u043e\u0434 \u043d\u0430\u0434\u043e \u043f\u0440\u043e\u0441\u0442\u043e \u0437\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0435\u0435 \u0441\u043b\u043e\u0432\u043e \u0432 \u043c\u0430\u0441\u0441\u0438\u0432 DMA_buf \u043f\u043e \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0435\u043c\u0443 \u0441\u043c\u0435\u0449\u0435\u043d\u0438\u044e. \u042d\u0442\u043e \u0434\u0435\u043b\u0430\u0435\u0442\u0441\u044f \u0432 \u043f\u0440\u043e\u0435\u043a\u0442\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0435\u0439 LEDstrip_set_led_state.<\/p>\n<p>  \u041d\u0435\u043b\u044c\u0437\u044f \u0441\u043a\u0430\u0437\u0430\u0442\u044c, \u0447\u0442\u043e \u0434\u0430\u043d\u043d\u044b\u0439 \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c \u0432\u043e\u043e\u0431\u0449\u0435 \u043d\u0435 \u0432\u043b\u0438\u044f\u0435\u0442 \u043d\u0430 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440. \u0415\u0433\u043e \u0440\u0430\u0431\u043e\u0442\u0430 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0437\u0430\u043c\u0435\u0434\u043b\u044f\u0435\u0442\u0441\u044f. \u041f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u043e\u043d \u0440\u0430\u0437\u0434\u0435\u043b\u044f\u0435\u0442 \u0432\u043c\u0435\u0441\u0442\u0435 \u0441 DMA \u043e\u0431\u0449\u0438\u0439 \u0434\u043e\u0441\u0442\u0443\u043f \u043a \u041e\u0417\u0423 \u0438 \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u043e\u0439 \u0448\u0438\u043d\u0435. \u041d\u043e \u0438\u0437\u043c\u0435\u0440\u0435\u043d\u0438\u044f \u043f\u043e\u043a\u0430\u0437\u0430\u043b\u0438, \u0447\u0442\u043e \u044d\u0442\u043e \u0437\u0430\u043c\u0435\u0434\u043b\u0435\u043d\u0438\u0435 \u0432 \u0434\u0430\u043d\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u043d\u0435 \u043f\u0440\u0435\u0432\u044b\u0448\u0430\u0435\u0442 0.2% <br \/>  \u0414\u043b\u044f \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u044f \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0430\u0441\u044c \u0441\u0440\u0435\u0434\u0430 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 MDK-ARM Professional Version: 4.72.1.0. \u0427\u0430\u0441\u0442\u043e\u0442\u0430 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u0430 \u2013 144 \u041c\u0413\u0446, \u0447\u0430\u0441\u0442\u043e\u0442\u0430 PCLK1 \u2013 72 \u041c\u0413\u0446. \u041b\u0435\u0433\u043a\u043e \u043f\u0435\u0440\u0435\u043d\u043e\u0441\u0438\u0442\u0441\u044f \u043d\u0430 \u043f\u043b\u0430\u0442\u044b \u0441\u0435\u0440\u0438\u0438 STM32 MCU Discovery Kits. \u0412\u0435\u0441\u044c \u043f\u0440\u043e\u0435\u043a\u0442 \u0432\u044b\u043b\u043e\u0436\u0435\u043d <a href=\"https:\/\/drive.google.com\/file\/d\/0B5dbvc_yPqJHQ2FEUXpkR3NocnM\/view?usp=sharing\">\u0437\u0434\u0435\u0441\u044c<\/a> <\/p>\n<p>  \u0412 \u043f\u0440\u043e\u0435\u043a\u0442\u0435 \u043d\u0435 \u0431\u044b\u043b\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u044b \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 \u043e\u0442 ST \u0438\u043b\u0438 \u043a\u0430\u043a\u0438\u0435-\u043b\u0438\u0431\u043e \u0434\u0440\u0443\u0433\u0438\u0435 \u0441\u0442\u043e\u0440\u043e\u043d\u043d\u0438\u0435 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438. \u041f\u0440\u043e\u0435\u043a\u0442 \u043e\u0447\u0435\u043d\u044c \u043a\u043e\u043c\u043f\u0430\u043a\u0442\u043d\u044b\u0439, \u0432\u0441\u0451 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043e \u0447\u0435\u0440\u0435\u0437 \u043f\u0440\u044f\u043c\u044b\u0435 \u043e\u0431\u0440\u0430\u0449\u0435\u043d\u0438\u044f \u043a \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u043c, \u044d\u0442\u043e \u0434\u0435\u043b\u0430\u0435\u0442 \u0442\u0435\u043a\u0441\u0442 \u043a\u043e\u0440\u043e\u0447\u0435, \u044f\u0441\u043d\u0435\u0435 \u0438 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0435\u0433\u043e \u043b\u0435\u0433\u0447\u0435 \u043f\u0435\u0440\u0435\u043d\u043e\u0441\u0438\u0442\u044c \u0432 \u0434\u0440\u0443\u0433\u0438\u0435 \u0441\u0440\u0435\u0434\u044b \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438. <\/p>\n<h2>\u0418 \u043e \u0440\u0430\u0434\u0443\u0433\u0435<\/h2>\n<p>  \u0414\u0435\u043b\u043e \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u043f\u0440\u043e\u0441\u0442\u043e \u043b\u0438\u043d\u0435\u0439\u043d\u043e \u0438\u043d\u043a\u0440\u0435\u043c\u0435\u043d\u0442\u0438\u0440\u0443\u044f \u0431\u0430\u0439\u0442\u044b \u0432 \u0441\u043b\u043e\u0432\u0435 \u0432 RGB \u0444\u043e\u0440\u043c\u0430\u0442\u0435 \u0446\u0432\u0435\u0442\u0430 (\u0431\u0438\u0442\u043e\u0432\u043e\u0435 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u2014 00000000 RRRRRRRR GGGGGGGG BBBBBBBB) \u043d\u0435\u043b\u044c\u0437\u044f \u043d\u0430 \u0441\u0432\u0435\u0442\u043e\u0434\u0438\u043e\u0434\u043d\u043e\u0439 \u043f\u043e\u043b\u043e\u0441\u0435 \u0441 \u0441\u043e\u0442\u043d\u0435\u0439 \u0441\u0432\u0435\u0442\u043e\u0434\u0438\u043e\u0434\u043e\u0432 \u0438\u0437\u043e\u0431\u0440\u0430\u0437\u0438\u0442\u044c \u043a\u0440\u0430\u0441\u0438\u0432\u0443\u044e \u0440\u0430\u0434\u0443\u0433\u0443. \u0415\u0449\u0435 \u0442\u0440\u0443\u0434\u043d\u0435\u0439 \u0443 \u044d\u0442\u043e\u0439 \u0440\u0430\u0434\u0443\u0433\u0438 \u0440\u0435\u0433\u0443\u043b\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u044f\u0440\u043a\u043e\u0441\u0442\u044c, \u0434\u0435\u043b\u0430\u044f \u043f\u0440\u043e\u0441\u0442\u044b\u0435 \u043c\u0430\u043d\u0438\u043f\u0443\u043b\u044f\u0446\u0438\u0438 \u043d\u0430 32-\u0445 \u0431\u0438\u0442\u043d\u043e\u043c \u0441\u043b\u043e\u0432\u0435 \u0441 RGB \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0435\u0439. \u0414\u043b\u044f \u0442\u0430\u043a\u0438\u0445 \u043c\u0430\u043d\u0438\u043f\u0443\u043b\u044f\u0446\u0438\u0439 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442 HSV \u0444\u043e\u0440\u043c\u0430\u0442. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0432\u0441\u044f \u0440\u0430\u0434\u0443\u0433\u0430 \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0430 \u0435\u0441\u043b\u0438 \u043f\u0440\u043e\u0441\u0442\u043e \u043b\u0438\u043d\u0435\u0439\u043d\u043e \u0438\u043d\u043a\u0440\u0435\u043c\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c H-\u0441\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0449\u0443\u044e. \u041f\u043e\u0442\u043e\u043c \u0443\u0436\u0435 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u0442\u044c HSV \u0432 RGB \u0438 \u0432\u044b\u0432\u0435\u0441\u0442\u0438 \u043d\u0430 \u0441\u0432\u0435\u0442\u043e\u0434\u0438\u043e\u0434\u044b. <br \/>  \u0412 \u043f\u0440\u043e\u0435\u043a\u0442\u0435 \u0435\u0441\u0442\u044c \u0434\u0432\u0430 \u043a\u043e\u043d\u0432\u0435\u0440\u0442\u0435\u0440\u0430 HSV \u0432 RGB, \u043e\u0434\u0438\u043d \u0446\u0435\u043b\u043e\u0447\u0438\u0441\u043b\u0435\u043d\u043d\u044b\u0439, \u0430 \u0434\u0440\u0443\u0433\u043e\u0439 \u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u0439 \u0441 \u043f\u043b\u0430\u0432\u0430\u044e\u0449\u0435\u0439 \u0442\u043e\u0447\u043a\u043e\u0439. \u0412\u0438\u0437\u0443\u0430\u043b\u044c\u043d\u043e \u044f \u043e\u0442\u043b\u0438\u0447\u0438\u0439 \u043d\u0435 \u0443\u0432\u0438\u0434\u0435\u043b. \u0414\u0430, \u043a \u0441\u043e\u0436\u0430\u043b\u0435\u043d\u0438\u044e, \u0437\u0434\u0435\u0441\u044c STM32 \u043e\u0442\u043b\u0438\u0447\u0438\u0442\u044c\u0441\u044f \u043d\u0435\u0433\u0434\u0435.     \t<\/p>\n<div class=\"clear\"><\/div>\n<p> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"http:\/\/habrahabr.ru\/post\/257131\/\"> http:\/\/habrahabr.ru\/post\/257131\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>     \t<img decoding=\"async\" src=\"\/\/habrastorage.org\/files\/86e\/965\/79b\/86e96579bd1c45638e85b564015cb2fa.JPG\"\/><\/p>\n<p>  \u041d\u0430 \u0445\u0430\u0431\u0440\u0435 \u0443\u0436\u0435 \u0435\u0441\u0442\u044c \u043f\u0430\u0440\u0430 \u0441\u0442\u0430\u0442\u0435\u0439 \u043e \u0440\u0430\u0431\u043e\u0442\u0435 \u0441 RGB \u0441\u0432\u0435\u0442\u043e\u0434\u0438\u043e\u0434\u0430\u043c\u0438 WS2112B, \u043d\u043e \u043f\u043e\u0447\u0435\u043c\u0443-\u0442\u043e \u043e\u043d\u0438 \u0432\u0441\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442 \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u0430\u0440\u0445\u0430\u0438\u0447\u043d\u044b\u0439 \u0441\u043f\u043e\u0441\u043e\u0431 \u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0431\u0438\u0442\u043e\u0432\u043e\u0439 \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438. \u0421\u043f\u043e\u0441\u043e\u0431 \u0437\u0430\u043a\u043b\u044e\u0447\u0430\u0435\u0442\u0441\u044f \u0432 \u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0438 \u0442\u043e\u0447\u043d\u044b\u0445 \u0438\u043d\u0442\u0435\u0440\u0432\u0430\u043b\u043e\u0432 \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043f\u0443\u0441\u0442\u044b\u0445 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u044b\u0445 \u0446\u0438\u043a\u043b\u043e\u0432. \u0412\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u044d\u0442\u043e \u0438\u0437\u0434\u0435\u0440\u0436\u043a\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f Arduino, \u043d\u043e \u043c\u044b, \u043a\u043e\u043d\u0435\u0447\u043d\u043e, \u0443\u0436\u0435 \u0434\u0430\u0432\u043d\u043e \u043f\u0435\u0440\u0435\u0448\u043b\u0438 \u043d\u0430 ARM-Cortex-M4 \u0432 \u043b\u0438\u0446\u0435 STM32 \u0438 \u043c\u043e\u0436\u0435\u043c \u0441\u0435\u0431\u0435 \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u0442\u044c \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u043a\u0440\u0430\u0441\u0438\u0432\u0435\u0435.   <\/p>\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-256475","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/256475","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=256475"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/256475\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=256475"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=256475"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=256475"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}