{"id":444139,"date":"2025-01-06T03:01:32","date_gmt":"2025-01-06T03:01:32","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=444139"},"modified":"-0001-11-30T00:00:00","modified_gmt":"2025-01-06T03:01:32","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=444139","title":{"rendered":"<span>STM32. CMSIS. \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 UART \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0442\u0430\u0439\u043c\u0435\u0440\u0430 \u0434\u043b\u044f \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u0438 \u043f\u0435\u0440\u0438\u043e\u0434\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u0439<\/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<p>\u0412 \u0441\u0432\u043e\u0451\u043c <a href=\"https:\/\/github.com\/LTVA1\/STM32CrapSynth\" rel=\"noopener noreferrer nofollow\">\u043a\u0443\u0440\u0441\u043e\u0432\u043e\u043c \u043f\u0440\u043e\u0435\u043a\u0442\u0435<\/a> \u044f \u0441\u0442\u043e\u043b\u043a\u043d\u0443\u043b\u0441\u044f \u0441 \u043d\u0435\u0445\u0432\u0430\u0442\u043a\u043e\u0439 \u0442\u0430\u0439\u043c\u0435\u0440\u043e\u0432. \u0412\u044b\u0433\u0440\u0435\u0431 \u0432\u0441\u0451, \u0432\u043a\u043b\u044e\u0447\u0430\u044f SysTick! \u0418 \u043f\u0440\u0438\u0437\u0430\u0434\u0443\u043c\u0430\u043b\u0441\u044f, \u043a\u0430\u043a \u0436\u0435 \u043e\u0431\u043e\u0439\u0442\u0438 \u044d\u0442\u043e \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0435. \u041d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0431\u044b\u043b\u043e \u043d\u0430\u0439\u0442\u0438 \u043d\u0435\u043a\u0443\u044e \u043f\u0435\u0440\u0438\u0444\u0435\u0440\u0438\u044e, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0441\u043c\u043e\u0433\u043b\u0430 \u0431\u044b \u0437\u0430\u043c\u0435\u043d\u0438\u0442\u044c \u0441\u043e\u0431\u043e\u0439 \u0442\u0430\u0439\u043c\u0435\u0440.<\/p>\n<p>\u0423\u0441\u043b\u043e\u0432\u0438\u044f: \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u044f \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u0439 \u0441 \u0447\u0430\u0441\u0442\u043e\u0442\u043e\u0439 \u043e\u0442 ~100 \u0413\u0446 \u0434\u043e ~20 \u043a\u0413\u0446. \u0422\u043e\u0447\u043d\u043e\u0441\u0442\u044c \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u043f\u0435\u0440\u0438\u043e\u0434\u0430 \u0441\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u043d\u0438\u044f \u043e\u043a\u043e\u043b\u043e 1 \u0413\u0446 \u0432\u043e \u0432\u0441\u0451\u043c \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d\u0435.<\/p>\n<p>\u0412 \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0435 STM32F303RE \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0438\u043b\u043e\u0441\u044c \u0430\u0436 \u043f\u044f\u0442\u044c \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u043e\u0432 UART. \u041e\u0434\u0438\u043d \u0438\u0437 \u043d\u0438\u0445 \u0432 \u043c\u043e\u0451\u043c \u043f\u0440\u043e\u0435\u043a\u0442\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0441\u044f \u0434\u043b\u044f \u0441\u0432\u044f\u0437\u0438 \u0441 \u041f\u041a, \u0430 \u0432\u043e\u0442 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0435 \u0447\u0435\u0442\u044b\u0440\u0435 \u043c\u043e\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0442\u0430\u0439\u043c\u0435\u0440\u043e\u0432.<\/p>\n<p>\u041a\u0430\u043a \u0436\u0435 \u0438\u0445 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c? \u0412\u0441\u0451 \u043e\u0447\u0435\u043d\u044c \u043f\u0440\u043e\u0441\u0442\u043e. \u0423 \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0430 UART \u0435\u0441\u0442\u044c \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u0438 \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0438 \u0434\u0430\u043d\u043d\u044b\u0445:<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/409\/56b\/080\/40956b08016ee263da25f0001075f282.png\" width=\"2360\" height=\"921\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/409\/56b\/080\/40956b08016ee263da25f0001075f282.png\"\/><\/figure>\n<p>\u0412 \u0434\u0430\u043d\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u044d\u0442\u043e \u043f\u043e \u0441\u0443\u0442\u0438 16-\u0431\u0438\u0442\u043d\u044b\u0439 \u0434\u0435\u043b\u0438\u0442\u0435\u043b\u044c \u0447\u0430\u0441\u0442\u043e\u0442\u044b, \u043e\u0442 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u0442\u0430\u043a\u0442\u0438\u0440\u0443\u044e\u0442\u0441\u044f \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0430 \u0438 \u043f\u0440\u0438\u0451\u043c \u0434\u0430\u043d\u043d\u044b\u0445. \u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c, \u0437\u043d\u0430\u044f \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0438 \u043f\u0440\u0438\u043d\u0446\u0438\u043f \u0440\u0430\u0431\u043e\u0442\u044b \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0430 UART, \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u0432\u044b\u0447\u0438\u0441\u043b\u0438\u0442\u044c, \u043a\u0430\u043a \u0438\u043c\u0435\u043d\u043d\u043e \u0441\u0432\u044f\u0437\u0430\u043d\u043e \u0432\u0440\u0435\u043c\u044f \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0438 \u043e\u0434\u043d\u043e\u0433\u043e \u0431\u0430\u0439\u0442\u0430 \u0438 \u0447\u0438\u0441\u043b\u043e, \u0437\u0430\u043f\u0438\u0441\u0430\u043d\u043d\u043e\u0435 \u0432 \u0440\u0435\u0433\u0438\u0441\u0442\u0440 BRR. \u0422\u043e \u0435\u0441\u0442\u044c \u043c\u043e\u0436\u043d\u043e \u0440\u0430\u0441\u0441\u0447\u0438\u0442\u0430\u0442\u044c \u0442\u0430\u043a\u043e\u0435 \u0447\u0438\u0441\u043b\u043e \u0432 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0435 BRR, \u043f\u0440\u0438 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u0431\u0430\u0439\u0442 \u0431\u0443\u0434\u0435\u0442 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c\u0441\u044f \u0437\u0430 \u0437\u0430\u0434\u0430\u043d\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f. \u0418 \u044d\u0442\u043e \u0443\u0436\u0435 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0437\u0430\u0441\u0442\u0430\u0432\u0438\u0442\u044c UART \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u0435 \u0441\u043e \u0441\u0442\u0440\u043e\u0433\u043e \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u043e\u0439 \u0447\u0430\u0441\u0442\u043e\u0442\u043e\u0439.<\/p>\n<h3>\u0421\u043f\u043e\u0441\u043e\u0431 \u21161 \u2014 \u0411\u0435\u0437 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0430 DMA<\/h3>\n<p>\u0414\u0430\u043d\u043d\u044b\u0439 \u0441\u043f\u043e\u0441\u043e\u0431 \u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b \u0432 \u043a\u0443\u0440\u0441\u043e\u0432\u043e\u043c \u043f\u0440\u043e\u0435\u043a\u0442\u0435, \u043f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u0432 F303 \u043d\u0435\u0442 \u0433\u0438\u0431\u043a\u043e\u0439 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u043a\u0430\u043d\u0430\u043b\u043e\u0432 DMA \u0438 \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u043e\u0432 \u0441\u0438\u0433\u043d\u0430\u043b\u043e\u0432 \u0434\u043b\u044f \u043d\u0438\u0445 (\u043d\u0435\u0442 DMAMUX), \u0434\u0430 \u043a \u0442\u043e\u043c\u0443 \u0436\u0435 9 \u0438\u0437 12-\u0442\u0438 \u043a\u0430\u043d\u0430\u043b\u043e\u0432 DMA \u0443\u0436\u0435 \u0431\u044b\u043b\u0438 \u0437\u0430\u043d\u044f\u0442\u044b.<\/p>\n<p>\u0421\u043f\u043e\u0441\u043e\u0431 \u0437\u0430\u043a\u043b\u044e\u0447\u0430\u0435\u0442\u0441\u044f \u0432 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u043c: \u0432\u043a\u043b\u044e\u0447\u0430\u0435\u043c UART, \u043f\u0440\u0438\u0447\u0451\u043c \u0441\u043e\u0432\u0435\u0440\u0448\u0435\u043d\u043d\u043e \u043d\u0435\u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u043d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0442\u044c \u0432\u044b\u0432\u043e\u0434\u044b \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0430 \u043f\u043e\u0434 \u043d\u0435\u0433\u043e, \u0442.\u0435. UART \u0431\u0443\u0434\u0435\u0442 \u0441\u043b\u0430\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0435 \u00ab\u0432 \u043d\u0438\u043a\u0443\u0434\u0430\u00bb. \u041d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u043c \u0444\u043e\u0440\u043c\u0430\u0442 \u0434\u0430\u043d\u043d\u044b\u0445 \u0438 \u0440\u0435\u0433\u0438\u0441\u0442\u0440 BRR, \u043f\u043e\u0441\u043b\u0435 \u0447\u0435\u0433\u043e \u0432\u043a\u043b\u044e\u0447\u0430\u0435\u043c \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u0435 \u043f\u043e \u043e\u043a\u043e\u043d\u0447\u0430\u043d\u0438\u044e \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0438 \u043a\u0430\u0434\u0440\u0430.<\/p>\n<p>\u0418\u0442\u0430\u043a, \u0434\u043b\u044f \u043d\u0430\u0447\u0430\u043b\u0430 \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u043c \u0442\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043e\u0442 \u0432\u043d\u0435\u0448\u043d\u0435\u0433\u043e \u043a\u0432\u0430\u0440\u0446\u0430:<\/p>\n<pre><code class=\"cpp\">void set_72MHz() { RCC-&gt;CR |= ((uint32_t)RCC_CR_HSEON);  \/* \u0416\u0434\u0435\u043c \u043f\u043e\u043a\u0430 HSE \u043d\u0435 \u0432\u044b\u0441\u0442\u0430\u0432\u0438\u0442 \u0431\u0438\u0442 \u0433\u043e\u0442\u043e\u0432\u043d\u043e\u0441\u0442\u0438 *\/ while(!(RCC-&gt;CR &amp; RCC_CR_HSERDY)) {}  \/* \u041a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0438\u0440\u0443\u0435\u043c Flash \u043d\u0430 2 \u0446\u0438\u043a\u043b\u0430 \u043e\u0436\u0438\u0434\u0430\u043d\u0438\u044f *\/ \/* Flash \u043d\u0435 \u043c\u043e\u0436\u0435\u0442 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u043d\u0430 \u0432\u044b\u0441\u043e\u043a\u043e\u0439 \u0447\u0430\u0441\u0442\u043e\u0442\u0435 *\/ FLASH-&gt;ACR &amp;= ~FLASH_ACR_LATENCY; FLASH-&gt;ACR |= FLASH_ACR_LATENCY_2;  \/* HCLK = SYSCLK *\/ RCC-&gt;CFGR |= RCC_CFGR_HPRE_DIV1;  \/* PCLK2 = HCLK *\/ RCC-&gt;CFGR |= RCC_CFGR_PPRE2_DIV1;  \/* PCLK1 = HCLK \/ 2 *\/ RCC-&gt;CFGR |= RCC_CFGR_PPRE1_DIV2;  \/* \u041a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0438\u0440\u0443\u0435\u043c \u043c\u043d\u043e\u0436\u0438\u0442\u0435\u043b\u044c PLL configuration: PLLCLK = HSE * 9 = 72 MHz *\/ \/* \u041f\u0440\u0438 \u0443\u0441\u043b\u043e\u0432\u0438\u0438, \u0447\u0442\u043e \u043a\u0432\u0430\u0440\u0446 \u043d\u0430 8\u041c\u0413\u0446! *\/ RCC-&gt;CFGR &amp;= ~(RCC_CFGR_PLLSRC | RCC_CFGR_PLLXTPRE | RCC_CFGR_PLLMUL); RCC-&gt;CFGR |= RCC_CFGR_PLLSRC_HSE_PREDIV | RCC_CFGR_PLLMUL9;  \/* \u0412\u043a\u043b\u044e\u0447\u0430\u0435\u043c PLL *\/ RCC-&gt;CR |= RCC_CR_PLLON;  \/* \u041e\u0436\u0438\u0434\u0430\u0435\u043c, \u043f\u043e\u043a\u0430 PLL \u0432\u044b\u0441\u0442\u0430\u0432\u0438\u0442 \u0431\u0438\u0442 \u0433\u043e\u0442\u043e\u0432\u043d\u043e\u0441\u0442\u0438 *\/ while((RCC-&gt;CR &amp; RCC_CR_PLLRDY) == 0) { asm(\"nop\"); }  \/* \u0412\u044b\u0431\u0438\u0440\u0430\u0435\u043c PLL \u043a\u0430\u043a \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u043e\u0439 \u0447\u0430\u0441\u0442\u043e\u0442\u044b *\/ RCC-&gt;CFGR &amp;= ~RCC_CFGR_SW; RCC-&gt;CFGR |= RCC_CFGR_SW_PLL;  \/* \u041e\u0436\u0438\u0434\u0430\u0435\u043c, \u043f\u043e\u043a\u0430 PLL \u0432\u044b\u0431\u0435\u0440\u0435\u0442\u0441\u044f \u043a\u0430\u043a \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u043e\u0439 \u0447\u0430\u0441\u0442\u043e\u0442\u044b *\/ while ((RCC-&gt;CFGR &amp; RCC_CFGR_SWS) != RCC_CFGR_SWS_PLL) { asm(\"nop\"); }  SystemCoreClockUpdate(); }<\/code><\/pre>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u0432\u043a\u043b\u044e\u0447\u0438\u043c \u0442\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0438 \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u0438\u043c \u0448\u0430\u0431\u043b\u043e\u043d \u0444\u0443\u043d\u043a\u0446\u0438\u0438 main. \u041d\u0430\u043c \u043f\u043e\u043d\u0430\u0434\u043e\u0431\u0438\u0442\u0441\u044f \u0432\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u0441\u0430\u043c UART (\u044f \u0432\u044b\u0431\u0440\u0430\u043b USART1) \u0438 \u043a\u0430\u043a\u043e\u0439-\u043b\u0438\u0431\u043e \u043f\u043e\u0440\u0442 GPIO, \u0447\u0442\u043e\u0431\u044b \u0434\u0440\u044b\u0433\u0430\u0442\u044c \u043d\u043e\u0436\u043a\u043e\u0439 \u0432 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0435 \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u044f:<\/p>\n<pre><code class=\"cpp\">void init_clocks() { RCC-&gt;AHBENR |= RCC_AHBENR_GPIOAEN; RCC-&gt;APB2ENR |= RCC_APB2ENR_USART1EN; }<\/code><\/pre>\n<pre><code class=\"cpp\">int main(void) { init_clocks(); set_72MHz();  \/\/\u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u043f\u0435\u0440\u0438\u0444\u0435\u0440\u0438\u0438 \u0442\u0443\u0442  while (1) { asm(\"nop\"); }  return 0; }<\/code><\/pre>\n<p>\u041f\u043e\u043a\u0430 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u044f <code>set_72MHz()<\/code>, \u0442\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043f\u0435\u0440\u0438\u0444\u0435\u0440\u0438\u0438 \u0442\u043e\u0447\u043d\u043e \u0443\u0441\u043f\u0435\u0435\u0442 \u0432\u043a\u043b\u044e\u0447\u0438\u0442\u044c\u0441\u044f. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 <code>set_72MHz()<\/code> \u0441\u0442\u043e\u0438\u0442 \u043f\u043e\u0441\u043b\u0435 <code>init_clocks()<\/code>.<\/p>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u0437\u0430\u0432\u0435\u0440\u0448\u0438\u043c \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0443 \u043f\u0435\u0440\u0438\u0444\u0435\u0440\u0438\u0438. \u0412\u043e-\u043f\u0435\u0440\u0432\u044b\u0445, \u043f\u0440\u0438\u0433\u043e\u0442\u043e\u0432\u0438\u043c \u043c\u0430\u043a\u0440\u043e\u0441\u044b \u0434\u043b\u044f \u0434\u0440\u044b\u0433\u0430\u043d\u044c\u044f \u043d\u043e\u0436\u043a\u043e\u0439 (\u0432\u044b\u0432\u043e\u0434 PA0). \u041f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u0434\u043b\u044f STM32F303 \u0440\u0435\u0433\u0438\u0441\u0442\u0440 <code>GPIOx-&gt;BSRR<\/code> \u0437\u0430\u0447\u0435\u043c-\u0442\u043e \u043e\u0431\u044a\u044f\u0432\u043b\u0435\u043d \u043a\u0430\u043a \u0434\u0432\u0430 16-\u0431\u0438\u0442\u043d\u044b\u0445 \u043f\u043e\u043b\u044f (\u0432 \u043e\u0442\u043b\u0438\u0447\u0438\u0435 \u043e\u0442, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, STM32F0x), \u043d\u0443\u0436\u043d\u043e \u043f\u0440\u0438\u0432\u0435\u0441\u0442\u0438 \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044c \u043a \u0442\u0438\u043f\u0443 <code>volatile uint32_t*<\/code>, \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u0442\u043e\u043c \u0443\u0436\u0435 \u043e\u0431\u0440\u0430\u0449\u0430\u0442\u044c\u0441\u044f \u043a \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0443 \u043a\u0430\u043a \u043a 32-\u0431\u0438\u0442\u043d\u043e\u043c\u0443 \u043f\u043e\u043b\u044e:<\/p>\n<pre><code class=\"cpp\">#define PA0_HIGH *(volatile uint32_t*)&amp;(GPIOA-&gt;BSRRL) = (1 &lt;&lt; (0)); #define PA0_LOW *(volatile uint32_t*)&amp;(GPIOA-&gt;BSRRL) = (1 &lt;&lt; (0 + 16));<\/code><\/pre>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u043c \u0432\u044b\u0432\u043e\u0434 PA0:<\/p>\n<pre><code class=\"cpp\">\/\/\u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u0432\u044b\u0432\u043e\u0434\u0430 PA0 \u043d\u0430 \u0432\u044b\u0445\u043e\u0434 GPIOA-&gt;MODER &amp;= ~GPIO_MODER_MODER0; GPIOA-&gt;MODER |= GPIO_MODER_MODER0_0;  \/\/\u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c \u043d\u0438\u0437\u043a\u0438\u0439 \u043b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0443\u0440\u043e\u0432\u0435\u043d\u044c \u043d\u0430 \u0432\u044b\u0432\u043e\u0434\u0435 PA0 PA0_LOW<\/code><\/pre>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043d\u0430 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 UART. \u041d\u0430\u043c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0437\u0430\u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u043a\u0430\u043a \u043c\u043e\u0436\u043d\u043e \u0431\u043e\u043b\u044c\u0448\u0438\u0439 \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u044b\u0445 \u0447\u0430\u0441\u0442\u043e\u0442 \u0441\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u043d\u0438\u044f. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043d\u0430\u0434\u043e \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e \u00ab\u0440\u0430\u0441\u0442\u044f\u043d\u0443\u0442\u044c\u00bb \u043a\u0430\u0436\u0434\u044b\u0439 \u043a\u0430\u0434\u0440 UART. \u041f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043d\u0430 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0443 \u043a\u0430\u0434\u0440\u0430 \u0432 reference manual&#8217;\u0435:<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/fb0\/913\/92d\/fb091392dfb3e06acfb29f89020d6d66.png\" alt=\"\u041c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u0430\u044f \u0434\u043b\u0438\u043d\u0430 \u0441\u043b\u043e\u0432\u0430 \u0441 \u0434\u0430\u043d\u043d\u044b\u043c\u0438 9 \u0431\u0438\u0442.\" title=\"\u041c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u0430\u044f \u0434\u043b\u0438\u043d\u0430 \u0441\u043b\u043e\u0432\u0430 \u0441 \u0434\u0430\u043d\u043d\u044b\u043c\u0438 9 \u0431\u0438\u0442.\" width=\"2238\" height=\"1229\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/fb0\/913\/92d\/fb091392dfb3e06acfb29f89020d6d66.png\"\/><\/p>\n<div><figcaption>\u041c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u0430\u044f \u0434\u043b\u0438\u043d\u0430 \u0441\u043b\u043e\u0432\u0430 \u0441 \u0434\u0430\u043d\u043d\u044b\u043c\u0438 9 \u0431\u0438\u0442.<\/figcaption><\/div>\n<\/figure>\n<p>\u0422\u043e \u0435\u0441\u0442\u044c \u0438\u043c\u0435\u0435\u043c \u0441\u0442\u0430\u0440\u0442\u043e\u0432\u044b\u0439 \u0431\u0438\u0442 + 9 \u0431\u0438\u0442 \u0434\u0430\u043d\u043d\u044b\u0445 + \u0441\u0442\u043e\u043f\u043e\u0432\u044b\u0439 \u0431\u0438\u0442. \u0418\u0442\u043e\u0433\u043e 11 \u0431\u0438\u0442. \u0410 \u043c\u043e\u0436\u043d\u043e \u043b\u0438 \u0435\u0449\u0451 \u0434\u043b\u0438\u043d\u043d\u0435\u0435? \u041e\u0442\u0432\u0435\u0442\u00a0\u2014 \u0434\u0430! \u041f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043d\u0430 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0443 \u0441\u0442\u043e\u043f\u043e\u0432\u043e\u0433\u043e \u0431\u0438\u0442\u0430:<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/4f1\/d8b\/67b\/4f1d8b67b99d0adb1e111e8d99a70f0e.png\" alt=\"\u041c\u0430\u043a\u0441\u0438\u043c\u0443\u043c \u0434\u0432\u0430 \u0441\u0442\u043e\u043f\u043e\u0432\u044b\u0445 \u0431\u0438\u0442\u0430.\" title=\"\u041c\u0430\u043a\u0441\u0438\u043c\u0443\u043c \u0434\u0432\u0430 \u0441\u0442\u043e\u043f\u043e\u0432\u044b\u0445 \u0431\u0438\u0442\u0430.\" width=\"2588\" height=\"1501\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/4f1\/d8b\/67b\/4f1d8b67b99d0adb1e111e8d99a70f0e.png\"\/><\/p>\n<div><figcaption>\u041c\u0430\u043a\u0441\u0438\u043c\u0443\u043c \u0434\u0432\u0430 \u0441\u0442\u043e\u043f\u043e\u0432\u044b\u0445 \u0431\u0438\u0442\u0430.<\/figcaption><\/div>\n<\/figure>\n<p>\u041e\u0442\u043b\u0438\u0447\u043d\u043e, \u043c\u044b \u0440\u0430\u0441\u0442\u044f\u043d\u0443\u043b\u0438 \u043e\u0434\u0438\u043d \u043a\u0430\u0434\u0440 \u0434\u043e 12 \u0431\u0438\u0442, \u0432\u044b\u0431\u0440\u0430\u0432 \u0434\u0432\u0430 \u0441\u0442\u043e\u043f\u043e\u0432\u044b\u0445 \u0431\u0438\u0442\u0430. \u0422\u0435\u043f\u0435\u0440\u044c \u043d\u0443\u0436\u043d\u043e \u043f\u043e\u043d\u044f\u0442\u044c, \u043a\u0430\u043a \u0441\u0447\u0438\u0442\u0430\u0442\u044c \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0438.<\/p>\n<p>\u041f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u043f\u0440\u0438\u0451\u043c\u043e\u043f\u0435\u0440\u0435\u0434\u0430\u0442\u0447\u0438\u043a USART1 \u0442\u0430\u043a\u0442\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u043e\u0442 \u043f\u0435\u0440\u0438\u0444\u0435\u0440\u0438\u0439\u043d\u043e\u0439 \u0448\u0438\u043d\u044b. \u0412 \u043d\u0430\u0448\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u044d\u0442\u043e \u0448\u0438\u043d\u0430 APB2, \u0438 \u043c\u044b \u0432\u044b\u0441\u0442\u0430\u0432\u0438\u043b\u0438 \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u0443\u044e \u0442\u0430\u043a\u0442\u043e\u0432\u0443\u044e \u0447\u0430\u0441\u0442\u043e\u0442\u0443 \u0441\u043e\u0433\u043b\u0430\u0441\u043d\u043e \u0434\u0430\u0442\u0430\u0448\u0438\u0442\u0443:<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/315\/591\/b25\/315591b258da0353d96922a85d18dea6.png\" width=\"1119\" height=\"848\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/315\/591\/b25\/315591b258da0353d96922a85d18dea6.png\"\/><\/figure>\n<p>\u041f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u043a\u0430\u0436\u0434\u044b\u0439 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u043d\u044b\u0439\/\u043f\u0440\u0438\u043d\u044f\u0442\u044b\u0439 \u0431\u0438\u0442 UART \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u043e\u0434\u043d\u043e\u043c\u0443 \u0442\u0430\u043a\u0442\u0443 \u044d\u0442\u043e\u0439 \u0447\u0430\u0441\u0442\u043e\u0442\u044b, \u0434\u0435\u043b\u0451\u043d\u043e\u0439 \u043d\u0430 \u0447\u0438\u0441\u043b\u043e \u0432 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0435 BRR. \u0412 \u043a\u0430\u0436\u0434\u043e\u043c \u043a\u0430\u0434\u0440\u0435 \u0442\u0430\u043a\u0438\u0445 \u0431\u0438\u0442\u043e\u0432 12. \u0418\u0437 \u0447\u0435\u0433\u043e \u0432\u044b\u0442\u0435\u043a\u0430\u0435\u0442 \u0444\u043e\u0440\u043c\u0443\u043b\u0430 \u0447\u0430\u0441\u0442\u043e\u0442\u044b \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u0439:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"formula\" source=\"f_{int}=\\frac{72000000}{12B}=\\frac{6000000}{B},\" alt=\"f_{int}=\\frac{72000000}{12B}=\\frac{6000000}{B},\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/528\/b09\/731\/528b097311cc8f310160ed95d29da3d0.svg\" width=\"245\" height=\"43\"\/><\/p>\n<p>\u0433\u0434\u0435 <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"B\" alt=\"B\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/c95\/b07\/435\/c95b074352e159072460e4889fd985ce.svg\" width=\"15\" height=\"17\"\/>\u2014 \u0447\u0438\u0441\u043b\u043e \u0432\u00a0\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0435 BRR. \u0421\u043b\u0435\u0434\u0443\u0435\u0442 \u0437\u0430\u043c\u0435\u0442\u0438\u0442\u044c, \u0447\u0442\u043e <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"B\\in [16; 65\u00a0527],\" alt=\"B\\in [16; 65\u00a0527],\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/86b\/e62\/c8b\/86be62c8bb5b55fad21ad3b19c7c1eab.svg\" width=\"130\" height=\"22\"\/>\u0438\u043d\u0430\u0447\u0435 UART \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u043d\u0435 \u0431\u0443\u0434\u0435\u0442. \u041e\u0447\u0435\u0432\u0438\u0434\u043d\u043e, \u0447\u0442\u043e \u0434\u043b\u044f \u0434\u0440\u0443\u0433\u0438\u0445 \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u043e\u0432 \u0438 \u0434\u0430\u0436\u0435 \u0434\u043b\u044f \u0434\u0440\u0443\u0433\u0438\u0445 UART&#8217;\u043e\u0432 \u044d\u0442\u043e\u0433\u043e \u0436\u0435 \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0430 \u0447\u0430\u0441\u0442\u043e\u0442\u0430 \u0431\u0443\u0434\u0435\u0442 \u0434\u0440\u0443\u0433\u0430\u044f, \u043f\u043b\u044e\u0441 \u043c\u043e\u0436\u043d\u043e \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u0442\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043f\u0440\u0438\u0451\u043c\u043e\u043f\u0435\u0440\u0435\u0434\u0430\u0442\u0447\u0438\u043a\u0430 \u043e\u0442 \u0434\u0440\u0443\u0433\u0438\u0445 \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u043e\u0432 \u0432 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0445 RCC:<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/e9f\/7c0\/1a6\/e9f7c01a63adf80ed44299122989af3e.png\" alt=\"\u0421\u043b\u0435\u0434\u0443\u0435\u0442 \u043f\u043e\u043c\u043d\u0438\u0442\u044c, \u0447\u0442\u043e \u043d\u0435 \u0432\u043e \u0432\u0441\u0435\u0445 \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0430\u0445 STM32 \u0435\u0441\u0442\u044c \u0442\u0430\u043a\u0430\u044f \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c.\" title=\"\u0421\u043b\u0435\u0434\u0443\u0435\u0442 \u043f\u043e\u043c\u043d\u0438\u0442\u044c, \u0447\u0442\u043e \u043d\u0435 \u0432\u043e \u0432\u0441\u0435\u0445 \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0430\u0445 STM32 \u0435\u0441\u0442\u044c \u0442\u0430\u043a\u0430\u044f \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c.\" width=\"1034\" height=\"242\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/e9f\/7c0\/1a6\/e9f7c01a63adf80ed44299122989af3e.png\"\/><\/p>\n<div><figcaption>\u0421\u043b\u0435\u0434\u0443\u0435\u0442 \u043f\u043e\u043c\u043d\u0438\u0442\u044c, \u0447\u0442\u043e \u043d\u0435 \u0432\u043e \u0432\u0441\u0435\u0445 \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0430\u0445 STM32 \u0435\u0441\u0442\u044c \u0442\u0430\u043a\u0430\u044f \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c.<\/figcaption><\/div>\n<\/figure>\n<p>\u0414\u043b\u044f \u043f\u0440\u043e\u0441\u0442\u043e\u0442\u044b \u043e\u0441\u0442\u0430\u0432\u0438\u043c \u0432\u0441\u0451 \u043a\u0430\u043a \u0435\u0441\u0442\u044c. \u041f\u043e\u0440\u0430 \u043d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0442\u044c \u0441\u0430\u043c UART:<\/p>\n<pre><code class=\"cpp\">\/\/\u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u0435 \u043f\u043e \u043f\u0443\u0441\u0442\u043e\u043c\u0443 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0443 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u043c\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445, \/\/9 \u0431\u0438\u0442 \u0434\u0430\u043d\u043d\u044b\u0445 \u0432 \u043a\u0430\u0434\u0440\u0435 (\u043c\u0430\u043a\u0441\u0438\u043c\u0443\u043c) USART1-&gt;CR1 |= USART_CR1_TXEIE | USART_CR1_M0; \/\/2 \u0441\u0442\u043e\u043f\u043e\u0432\u044b\u0445 \u0431\u0438\u0442\u0430 \u0432 \u043a\u0430\u0434\u0440\u0435 (\u043c\u0430\u043a\u0441\u0438\u043c\u0443\u043c) USART1-&gt;CR2 |= USART_CR2_STOP_1; \/\/\u0432\u043a\u043b\u044e\u0447\u0430\u0435\u043c UART (\u043d\u043e \u043d\u0435 \u0432\u043a\u043b\u044e\u0447\u0430\u0435\u043c \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0443) USART1-&gt;CR1 |= USART_CR1_UE;  \/\/\u0441\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u043d\u0438\u0435 \/\/6000000 \/ 1000 = 6000 \u0440\u0430\u0437 \u0432 \u0441\u0435\u043a\u0443\u043d\u0434\u0443 \/\/\u043f\u0435\u0440\u0438\u043e\u0434 166.(6) \u043c\u043a\u0441 USART1-&gt;BRR = 1000;  \/\/\u0437\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u043c \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u043c\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 USART1-&gt;TDR = 0;  \/\/\u0432\u043a\u043b\u044e\u0447\u0430\u0435\u043c \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0443 USART1-&gt;CR1 |= USART_CR1_TE;  \/\/\u0432\u043a\u043b\u044e\u0447\u0430\u0435\u043c \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u044f \u043e\u0442 USART1 \/\/(\u0432\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u0442\u0430\u0439\u043c\u0435\u0440\u0430) NVIC_EnableIRQ(USART1_IRQn);<\/code><\/pre>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u044f, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0431\u0443\u0434\u0435\u0442 \u043a\u043b\u0430\u0441\u0442\u044c \u043d\u043e\u0432\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u0432 <code>USART1-&gt;TDR<\/code> (\u0438\u043d\u0430\u0447\u0435 \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440 \u0437\u0430\u0432\u0438\u0441\u043d\u0435\u0442 \u0432 \u043f\u0443\u0441\u0442\u043e\u043c \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0435 \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u044f). \u041d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0431\u0435\u0440\u0451\u043c \u0438\u0437 startup-\u0444\u0430\u0439\u043b\u0430:<\/p>\n<pre><code class=\"cpp\">void USART1_IRQHandler() {     \/\/\u0434\u0440\u044b\u0433 \u043d\u043e\u0436\u043a\u043e\u0439 \u0432\u0432\u0435\u0440\u0445 PA0_HIGH  \/\/\u0435\u0441\u043b\u0438 \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u0435 \u043f\u043e \u043f\u0443\u0441\u0442\u043e\u043c\u0443 \/\/\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0443 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u043c\u044b\u0445 \/\/\u0434\u0430\u043d\u043d\u044b\u0445 if (USART1-&gt;ISR &amp; USART_ISR_TXE) { \/\/\u0441\u0431\u0440\u043e\u0441 \u0444\u043b\u0430\u0433\u0430 \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u044f \/\/\u043f\u0440\u0438 \u043f\u043e\u043c\u043e\u0449\u0438 \u0437\u0430\u043f\u0438\u0441\u0438 \u043d\u043e\u0432\u044b\u0445 \/\/\u0434\u0430\u043d\u043d\u044b\u0445 USART1-&gt;TDR = 0; }     \/\/\u0434\u0440\u044b\u0433 \u043d\u043e\u0436\u043a\u043e\u0439 \u0432\u043d\u0438\u0437 PA0_LOW }<\/code><\/pre>\n<p>\u0412 \u044d\u0442\u043e\u0442 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a \u043c\u043e\u0436\u043d\u043e \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0442\u043e, \u0447\u0442\u043e \u0412\u0430\u043c \u043d\u0443\u0436\u043d\u043e (\u0432\u0435\u0434\u044c \u043d\u0435 \u0431\u0443\u0434\u0435\u043c \u0436\u0435 \u043c\u044b \u0432\u044b\u0437\u044b\u0432\u0430\u0442\u044c \u0435\u0433\u043e \u043f\u0440\u043e\u0441\u0442\u043e \u0442\u0430\u043a). \u042f \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0438\u043b\u0441\u044f \u0434\u0451\u0440\u0433\u0430\u043d\u044c\u0435\u043c \u0432\u044b\u0432\u043e\u0434\u0430, \u0447\u0442\u043e\u0431\u044b \u043c\u043e\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u0443\u0432\u0438\u0434\u0435\u0442\u044c \u0447\u0430\u0441\u0442\u043e\u0442\u0443 \u0441\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u043d\u0438\u044f \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u044f.<\/p>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u0432\u0435\u0440\u043d\u0451\u043c\u0441\u044f \u0432 \u0444\u0443\u043d\u043a\u0446\u0438\u044e main. \u0414\u043e\u0441\u0442\u043e\u0438\u043d\u0441\u0442\u0432\u043e\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f UART \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0442\u0430\u0439\u043c\u0435\u0440\u0430 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0447\u0430\u0441\u0442\u043e\u0442\u044b \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u0439 \u00ab\u043d\u0430 \u043b\u0435\u0442\u0443\u00bb (\u043f\u0440\u0438\u0447\u0451\u043c \u0447\u0430\u0441\u0442\u043e\u0442\u0443 \u043c\u043e\u0436\u043d\u043e \u043a\u0430\u043a \u0443\u043c\u0435\u043d\u044c\u0448\u0430\u0442\u044c, \u0442\u0430\u043a \u0438 \u0443\u0432\u0435\u043b\u0438\u0447\u0438\u0432\u0430\u0442\u044c). \u042d\u0442\u043e \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u043e\u0434\u0435\u043c\u043e\u043d\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c, \u0434\u043e\u043f\u0438\u0441\u0430\u0432 \u043a\u043e\u0434 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0447\u0430\u0441\u0442\u043e\u0442\u044b \u043f\u0440\u044f\u043c\u043e \u0432 \u0444\u0443\u043d\u043a\u0446\u0438\u044e main:<\/p>\n<pre><code class=\"cpp\">\/\/\u0436\u0434\u0451\u043c for(int j = 0; j &lt;= 60000; j++) { asm(\"nop\"); }  for(int i = 1000; i &gt;= 100; i -= 1) {     \/\/\u0443\u0432\u0435\u043b\u0438\u0447\u0438\u0432\u0430\u0435\u043c \u0447\u0430\u0441\u0442\u043e\u0442\u0443 \u0441\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u043d\u0438\u044f \u0442\u0430\u0439\u043c\u0435\u0440\u0430     USART1-&gt;BRR = i;      \/\/\u0436\u0434\u0451\u043c     for(int j = 0; j &lt;= 600; j++) { asm(\"nop\"); } }  for(int i = 100; i &lt;= 1000; i += 1) {     \/\/\u0443\u043c\u0435\u043d\u044c\u0448\u0430\u0435\u043c \u0447\u0430\u0441\u0442\u043e\u0442\u0443 \u0441\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u043d\u0438\u044f \u0442\u0430\u0439\u043c\u0435\u0440\u0430     USART1-&gt;BRR = i;      \/\/\u0436\u0434\u0451\u043c     for(int j = 0; j &lt;= 600; j++) { asm(\"nop\"); } }  \/\/\u0432\u044b\u043a\u043b\u044e\u0447\u0430\u0435\u043c \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u044f \u043e\u0442 USART1 \/\/(\u0432\u044b\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u0442\u0430\u0439\u043c\u0435\u0440\u0430) NVIC_DisableIRQ(USART1_IRQn);  \/\/\u0432\u044b\u043a\u043b\u044e\u0447\u0430\u0435\u043c \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0443 USART1-&gt;CR1 &amp;= ~USART_CR1_TE;<\/code><\/pre>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u0442\u0435\u0441\u0442\u043e\u0432\u0430\u044f \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430 \u0433\u043e\u0442\u043e\u0432\u0430. \u041f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0435\u043c \u043b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0430\u043d\u0430\u043b\u0438\u0437\u0430\u0442\u043e\u0440 \u043a \u0432\u044b\u0432\u043e\u0434\u0443 PA0, \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u043c \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0443 \u0438 \u0441\u043c\u043e\u0442\u0440\u0438\u043c:<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/6bb\/97c\/b66\/6bb97cb66d93ce308c27b3cf89d1cdbd.png\" alt=\"\u041f\u0435\u0440\u0432\u044b\u0439 \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 \u0438\u043d\u0442\u0435\u0440\u0432\u0430\u043b \u0447\u0443\u0442\u044c-\u0447\u0443\u0442\u044c \u00ab\u0443\u043f\u043b\u044b\u043b\u00bb.\" title=\"\u041f\u0435\u0440\u0432\u044b\u0439 \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 \u0438\u043d\u0442\u0435\u0440\u0432\u0430\u043b \u0447\u0443\u0442\u044c-\u0447\u0443\u0442\u044c \u00ab\u0443\u043f\u043b\u044b\u043b\u00bb.\" width=\"2245\" height=\"417\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/6bb\/97c\/b66\/6bb97cb66d93ce308c27b3cf89d1cdbd.png\"\/><\/p>\n<div><figcaption>\u041f\u0435\u0440\u0432\u044b\u0439 \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 \u0438\u043d\u0442\u0435\u0440\u0432\u0430\u043b \u0447\u0443\u0442\u044c-\u0447\u0443\u0442\u044c \u00ab\u0443\u043f\u043b\u044b\u043b\u00bb.<\/figcaption><\/div>\n<\/figure>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/e89\/2be\/12a\/e892be12a2aae6f41ad8628f43182d1d.png\" alt=\"\u0410 \u0432\u043e\u0442 \u0432\u0442\u043e\u0440\u043e\u0439 \u0438 \u043f\u043e\u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u043a\u0440\u0430\u0439\u043d\u0435 \u0431\u043b\u0438\u0437\u043a\u0438 \u043a \u0440\u0430\u0441\u0447\u0451\u0442\u043d\u043e\u043c\u0443 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044e.\" title=\"\u0410 \u0432\u043e\u0442 \u0432\u0442\u043e\u0440\u043e\u0439 \u0438 \u043f\u043e\u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u043a\u0440\u0430\u0439\u043d\u0435 \u0431\u043b\u0438\u0437\u043a\u0438 \u043a \u0440\u0430\u0441\u0447\u0451\u0442\u043d\u043e\u043c\u0443 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044e.\" width=\"1604\" height=\"269\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/e89\/2be\/12a\/e892be12a2aae6f41ad8628f43182d1d.png\"\/><\/p>\n<div><figcaption>\u0410 \u0432\u043e\u0442 \u0432\u0442\u043e\u0440\u043e\u0439 \u0438 \u043f\u043e\u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u043a\u0440\u0430\u0439\u043d\u0435 \u0431\u043b\u0438\u0437\u043a\u0438 \u043a \u0440\u0430\u0441\u0447\u0451\u0442\u043d\u043e\u043c\u0443 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044e.<\/figcaption><\/div>\n<\/figure>\n<p>\u041f\u0440\u043e\u043c\u043e\u0442\u0430\u0435\u043c \u0447\u0443\u0442\u044c \u0432\u043f\u0435\u0440\u0451\u0434:<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/79c\/5d7\/eb1\/79c5d7eb1c15af2fcf47912bcd4f1866.png\" alt=\"\u0427\u0430\u0441\u0442\u043e\u0442\u0430 \u043f\u043e\u0432\u044b\u0448\u0430\u0435\u0442\u0441\u044f, \u0430 \u0438\u043c\u043f\u0443\u043b\u044c\u0441\u044b \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0430\u044e\u0442 \u0438\u0434\u0442\u0438 \u0440\u0430\u0432\u043d\u043e\u043c\u0435\u0440\u043d\u043e \u0438 \u043d\u0435\u043f\u0440\u0435\u0440\u044b\u0432\u043d\u043e.\" title=\"\u0427\u0430\u0441\u0442\u043e\u0442\u0430 \u043f\u043e\u0432\u044b\u0448\u0430\u0435\u0442\u0441\u044f, \u0430 \u0438\u043c\u043f\u0443\u043b\u044c\u0441\u044b \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0430\u044e\u0442 \u0438\u0434\u0442\u0438 \u0440\u0430\u0432\u043d\u043e\u043c\u0435\u0440\u043d\u043e \u0438 \u043d\u0435\u043f\u0440\u0435\u0440\u044b\u0432\u043d\u043e.\" width=\"836\" height=\"252\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/79c\/5d7\/eb1\/79c5d7eb1c15af2fcf47912bcd4f1866.png\"\/><\/p>\n<div><figcaption>\u0427\u0430\u0441\u0442\u043e\u0442\u0430 \u043f\u043e\u0432\u044b\u0448\u0430\u0435\u0442\u0441\u044f, \u0430 \u0438\u043c\u043f\u0443\u043b\u044c\u0441\u044b \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0430\u044e\u0442 \u0438\u0434\u0442\u0438 \u0440\u0430\u0432\u043d\u043e\u043c\u0435\u0440\u043d\u043e \u0438 \u043d\u0435\u043f\u0440\u0435\u0440\u044b\u0432\u043d\u043e.<\/figcaption><\/div>\n<\/figure>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/322\/0eb\/f03\/3220ebf031608321ad0f9d92080e32db.png\" alt=\"\u0414\u043e\u0448\u043b\u0438 \u0434\u043e \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u043f\u0435\u0440\u0438\u043e\u0434\u0430. \u0414\u0430\u043b\u044c\u0448\u0435 \u0447\u0430\u0441\u0442\u043e\u0442\u0430 \u0431\u0443\u0434\u0435\u0442 \u0443\u043c\u0435\u043d\u044c\u0448\u0430\u0442\u044c\u0441\u044f.\" title=\"\u0414\u043e\u0448\u043b\u0438 \u0434\u043e \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u043f\u0435\u0440\u0438\u043e\u0434\u0430. \u0414\u0430\u043b\u044c\u0448\u0435 \u0447\u0430\u0441\u0442\u043e\u0442\u0430 \u0431\u0443\u0434\u0435\u0442 \u0443\u043c\u0435\u043d\u044c\u0448\u0430\u0442\u044c\u0441\u044f.\" width=\"943\" height=\"244\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/322\/0eb\/f03\/3220ebf031608321ad0f9d92080e32db.png\"\/><\/p>\n<div><figcaption>\u0414\u043e\u0448\u043b\u0438 \u0434\u043e \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u043f\u0435\u0440\u0438\u043e\u0434\u0430. \u0414\u0430\u043b\u044c\u0448\u0435 \u0447\u0430\u0441\u0442\u043e\u0442\u0430 \u0431\u0443\u0434\u0435\u0442 \u0443\u043c\u0435\u043d\u044c\u0448\u0430\u0442\u044c\u0441\u044f.<\/figcaption><\/div>\n<\/figure>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/336\/34d\/839\/33634d8398f85785eb58dcf61ce30ba7.png\" alt=\"\u0418\u043c\u043f\u0443\u043b\u044c\u0441\u044b \u0437\u0430\u043a\u0430\u043d\u0447\u0438\u0432\u0430\u044e\u0442\u0441\u044f. \u041f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u043f\u043e\u0441\u043b\u0435 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u043f\u0435\u0440\u0438\u043e\u0434\u0430 \u0432 \u043a\u043e\u043d\u0446\u0435 \u043d\u0435 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u043e \u043e\u0436\u0438\u0434\u0430\u043d\u0438\u0435, \u0447\u0430\u0441\u0442\u043e\u0442\u0430 \u0432\u044b\u0448\u043b\u0430 \u0447\u0443\u0442\u044c \u0431\u043e\u043b\u044c\u0448\u0435 \u0440\u0430\u0441\u0447\u0451\u0442\u043d\u043e\u0439 (\u043d\u0435 \u043f\u0440\u043e\u0448\u043b\u043e \u043e\u0434\u043d\u043e\u0433\u043e \u043f\u043e\u043b\u043d\u043e\u0433\u043e \u043f\u0435\u0440\u0438\u043e\u0434\u0430 \u0441 \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0439 \u0447\u0430\u0441\u0442\u043e\u0442\u043e\u0439).\" title=\"\u0418\u043c\u043f\u0443\u043b\u044c\u0441\u044b \u0437\u0430\u043a\u0430\u043d\u0447\u0438\u0432\u0430\u044e\u0442\u0441\u044f. \u041f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u043f\u043e\u0441\u043b\u0435 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u043f\u0435\u0440\u0438\u043e\u0434\u0430 \u0432 \u043a\u043e\u043d\u0446\u0435 \u043d\u0435 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u043e \u043e\u0436\u0438\u0434\u0430\u043d\u0438\u0435, \u0447\u0430\u0441\u0442\u043e\u0442\u0430 \u0432\u044b\u0448\u043b\u0430 \u0447\u0443\u0442\u044c \u0431\u043e\u043b\u044c\u0448\u0435 \u0440\u0430\u0441\u0447\u0451\u0442\u043d\u043e\u0439 (\u043d\u0435 \u043f\u0440\u043e\u0448\u043b\u043e \u043e\u0434\u043d\u043e\u0433\u043e \u043f\u043e\u043b\u043d\u043e\u0433\u043e \u043f\u0435\u0440\u0438\u043e\u0434\u0430 \u0441 \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0439 \u0447\u0430\u0441\u0442\u043e\u0442\u043e\u0439).\" width=\"1116\" height=\"249\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/336\/34d\/839\/33634d8398f85785eb58dcf61ce30ba7.png\"\/><\/p>\n<div><figcaption>\u0418\u043c\u043f\u0443\u043b\u044c\u0441\u044b \u0437\u0430\u043a\u0430\u043d\u0447\u0438\u0432\u0430\u044e\u0442\u0441\u044f. \u041f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u043f\u043e\u0441\u043b\u0435 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u043f\u0435\u0440\u0438\u043e\u0434\u0430 \u0432 \u043a\u043e\u043d\u0446\u0435 \u043d\u0435 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u043e \u043e\u0436\u0438\u0434\u0430\u043d\u0438\u0435, \u0447\u0430\u0441\u0442\u043e\u0442\u0430 \u0432\u044b\u0448\u043b\u0430 \u0447\u0443\u0442\u044c \u0431\u043e\u043b\u044c\u0448\u0435 \u0440\u0430\u0441\u0447\u0451\u0442\u043d\u043e\u0439 (\u043d\u0435 \u043f\u0440\u043e\u0448\u043b\u043e \u043e\u0434\u043d\u043e\u0433\u043e \u043f\u043e\u043b\u043d\u043e\u0433\u043e \u043f\u0435\u0440\u0438\u043e\u0434\u0430 \u0441 \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0439 \u0447\u0430\u0441\u0442\u043e\u0442\u043e\u0439).<\/figcaption><\/div>\n<\/figure>\n<p>\u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c, \u043c\u044b \u0443\u0431\u0435\u0434\u0438\u043b\u0438\u0441\u044c, \u0447\u0442\u043e \u00ab\u0442\u0430\u0439\u043c\u0435\u0440\u00bb \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442. \u0415\u0433\u043e \u043c\u043e\u0436\u043d\u043e \u0432\u043a\u043b\u044e\u0447\u0430\u0442\u044c \u0438 \u0432\u044b\u043a\u043b\u044e\u0447\u0430\u0442\u044c, \u0430 \u0442\u0430\u043a\u0436\u0435 \u043d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0442\u044c \u0447\u0430\u0441\u0442\u043e\u0442\u0443 \u043f\u0440\u044f\u043c\u043e \u0432 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0435 \u0440\u0430\u0431\u043e\u0442\u044b.<\/p>\n<h3>\u0421\u043f\u043e\u0441\u043e\u0431 \u21162 \u2014 \u0421 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u043e\u043c DMA<\/h3>\n<p>\u041f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u043d\u044b\u0439 \u0432\u044b\u0448\u0435 \u0441\u043f\u043e\u0441\u043e\u0431 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u043e\u0434\u0438\u043d \u043d\u0435\u0434\u043e\u0441\u0442\u0430\u0442\u043e\u043a. \u041f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u043d\u043e\u0432\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u043a\u043b\u0430\u0434\u0443\u0442\u0441\u044f \u0432 \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u0438, \u0440\u0435\u0430\u043b\u044c\u043d\u044b\u0439 \u043f\u0435\u0440\u0438\u043e\u0434 \u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u044f \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u0439 \u0431\u043e\u043b\u044c\u0448\u0435, \u0447\u0435\u043c \u0440\u0430\u0441\u0447\u0451\u0442\u043d\u044b\u0439. \u042d\u0442\u043e \u043e\u0431\u0443\u0441\u043b\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0437\u0430\u0434\u0435\u0440\u0436\u043a\u043e\u0439 \u0437\u0430\u043f\u0438\u0441\u0438 \u043d\u043e\u0432\u043e\u0433\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f. \u0414\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e, \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0443 \u043d\u0443\u0436\u043d\u043e \u043a\u0430\u043a \u043c\u0438\u043d\u0438\u043c\u0443\u043c 12 \u0442\u0430\u043a\u0442\u043e\u0432 \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u043e\u0439 \u0447\u0430\u0441\u0442\u043e\u0442\u044b \u0434\u043b\u044f \u0443\u0445\u043e\u0434\u0430 \u0432 \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u0435, \u043f\u043b\u044e\u0441 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0442\u0430\u043a\u0442\u043e\u0432 \u043d\u0430 \u0432\u0435\u0442\u0432\u043b\u0435\u043d\u0438\u0435 \u0438 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0443 \u0444\u043b\u0430\u0433\u0430. \u0414\u043e\u0431\u0430\u0432\u0438\u043c \u043a \u044d\u0442\u043e\u043c\u0443 \u0434\u0432\u0430 \u0446\u0438\u043a\u043b\u0430 \u043e\u0436\u0438\u0434\u0430\u043d\u0438\u044f \u0444\u043b\u044d\u0448-\u043f\u0430\u043c\u044f\u0442\u0438 \u043f\u0440\u0438 \u0440\u0430\u0431\u043e\u0442\u0435 \u043d\u0430 \u0447\u0430\u0441\u0442\u043e\u0442\u0435 72 \u041c\u0413\u0446, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0441\u043a\u0430\u0437\u044b\u0432\u0430\u044e\u0442\u0441\u044f \u0438 \u043f\u0440\u0438 \u0447\u0442\u0435\u043d\u0438\u0438 \u0432\u0435\u043a\u0442\u043e\u0440\u0430 \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u044f, \u0438 \u043f\u0440\u0438 \u0438\u0441\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0438 \u043a\u043e\u0434\u0430.<\/p>\n<p>\u041f\u043e\u043f\u0440\u043e\u0431\u0443\u0435\u043c \u0438\u0437\u0431\u0430\u0432\u0438\u0442\u044c\u0441\u044f \u043e\u0442 \u044d\u0442\u0438\u0445 \u043d\u0435\u0434\u043e\u0441\u0442\u0430\u0442\u043a\u043e\u0432 \u043f\u0440\u0438 \u043f\u043e\u043c\u043e\u0449\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0430 DMA.<\/p>\n<p>\u041a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440 DMA \u0442\u0430\u043a\u0436\u0435 \u0434\u0430\u0451\u0442 \u043e\u0434\u043d\u043e \u0432\u0430\u0436\u043d\u043e\u0435 \u043f\u0440\u0435\u0438\u043c\u0443\u0449\u0435\u0441\u0442\u0432\u043e\u00a0\u2014 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0441\u043d\u0438\u0437\u0438\u0442\u044c \u0447\u0430\u0441\u0442\u043e\u0442\u0443 \u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u044f \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u0439. \u041f\u043e \u0444\u043e\u0440\u043c\u0443\u043b\u0435, \u043f\u0440\u0438\u0432\u0435\u0434\u0451\u043d\u043d\u043e\u0439 \u0432\u044b\u0448\u0435, \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u0430\u044f \u0447\u0430\u0441\u0442\u043e\u0442\u0430 \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u0439 \u0441\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"formula\" source=\"f_{int.min}=\\frac{6000000}{65527}\\approx91.565 Hz\" alt=\"f_{int.min}=\\frac{6000000}{65527}\\approx91.565 Hz\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/00b\/b42\/3e3\/00bb423e3a232ad0abb521668ddc4628.svg\" width=\"263\" height=\"42\"\/><\/p>\n<p>\u043f\u0440\u0438 \u0443\u0441\u043b\u043e\u0432\u0438\u0438, \u0447\u0442\u043e \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a \u0442\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043d\u0435 \u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f. \u0414\u0430, \u043c\u043e\u0436\u043d\u043e \u043f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0438\u0442\u044c\u0441\u044f \u043d\u0430 LSE, \u043d\u043e \u0447\u0430\u0441\u043e\u0432\u043e\u0439 \u043a\u0432\u0430\u0440\u0446 \u043d\u0435 \u0432\u0435\u0437\u0434\u0435 \u0441\u0442\u043e\u0438\u0442. DMA \u0436\u0435 \u043c\u043e\u0436\u0435\u0442 \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u0442\u044c \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u0435 \u0432 <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"n\" alt=\"n\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/ce1\/852\/931\/ce18529312b3f88a29e6b4e488d73f65.svg\" width=\"12\" height=\"12\"\/> \u0440\u0430\u0437 \u0440\u0435\u0436\u0435, \u0433\u0434\u0435 <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"n\" alt=\"n\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/f09\/202\/ec1\/f09202ec157cf5ad2a1cc52dda982917.svg\" width=\"12\" height=\"12\"\/> \u043c\u043e\u0436\u0435\u0442 \u0434\u043e\u0445\u043e\u0434\u0438\u0442\u044c \u0434\u043e <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"65535\" alt=\"65535\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/567\/7ed\/9b9\/5677ed9b9874790cf1f070b704f31519.svg\" width=\"48\" height=\"16\"\/>.<\/p>\n<p>\u0418\u0437\u043c\u0435\u043d\u0438\u043c \u043d\u0430\u0448 \u043a\u043e\u0434. \u0414\u043b\u044f \u043d\u0430\u0447\u0430\u043b\u0430 \u0434\u043e\u0431\u0430\u0432\u0438\u043c \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u0442\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0430 DMA:<\/p>\n<pre><code class=\"cpp\">void init_clocks() { RCC-&gt;AHBENR |= RCC_AHBENR_GPIOAEN | RCC_AHBENR_DMA1EN; RCC-&gt;APB2ENR |= RCC_APB2ENR_USART1EN; }<\/code><\/pre>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u0438\u0437\u043c\u0435\u043d\u0438\u043c \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044e UART. \u0423\u0431\u0435\u0440\u0451\u043c \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u044f \u0438 \u0434\u043e\u0431\u0430\u0432\u0438\u043c \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u043e\u043c DMA:<\/p>\n<pre><code class=\"cpp\">\/\/9 \u0431\u0438\u0442 \u0434\u0430\u043d\u043d\u044b\u0445 \u0432 \u043a\u0430\u0434\u0440\u0435 (\u043c\u0430\u043a\u0441\u0438\u043c\u0443\u043c) USART1-&gt;CR1 |= USART_CR1_M0; \/\/2 \u0441\u0442\u043e\u043f\u043e\u0432\u044b\u0445 \u0431\u0438\u0442\u0430 \u0432 \u043a\u0430\u0434\u0440\u0435 (\u043c\u0430\u043a\u0441\u0438\u043c\u0443\u043c) USART1-&gt;CR2 |= USART_CR2_STOP_1; \/\/\u0432\u043a\u043b\u044e\u0447\u0430\u0435\u043c DMA \u043d\u0430 \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0443 USART1-&gt;CR3 |= USART_CR3_DMAT; \/\/\u0432\u043a\u043b\u044e\u0447\u0430\u0435\u043c UART (\u043d\u043e \u043d\u0435 \u0432\u043a\u043b\u044e\u0447\u0430\u0435\u043c \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0443) USART1-&gt;CR1 |= USART_CR1_UE;  \/\/\u0441\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u043d\u0438\u0435 \/\/6000000 \/ 1000 = 6000 \u0440\u0430\u0437 \u0432 \u0441\u0435\u043a\u0443\u043d\u0434\u0443 \/\/\u043f\u0435\u0440\u0438\u043e\u0434 166.(6) \u043c\u043a\u0441 USART1-&gt;BRR = 1000;<\/code><\/pre>\n<p>\u041f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0432 reference manual&#8217;\u0435, \u043a\u0430\u043a\u043e\u0439 \u043a\u0430\u043d\u0430\u043b \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0430 DMA \u043c\u043e\u0436\u0435\u0442 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u043d\u0430 \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0443 USART1:<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/046\/06b\/62d\/04606b62db9899ee005a9dadd32baf7e.png\" alt=\"\u041d\u0430\u043c \u043f\u043e\u0434\u0445\u043e\u0434\u0438\u0442 4-\u044b\u0439 \u043a\u0430\u043d\u0430\u043b.\" title=\"\u041d\u0430\u043c \u043f\u043e\u0434\u0445\u043e\u0434\u0438\u0442 4-\u044b\u0439 \u043a\u0430\u043d\u0430\u043b.\" width=\"2828\" height=\"618\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/046\/06b\/62d\/04606b62db9899ee005a9dadd32baf7e.png\"\/><\/p>\n<div><figcaption>\u041d\u0430\u043c \u043f\u043e\u0434\u0445\u043e\u0434\u0438\u0442 4-\u044b\u0439 \u043a\u0430\u043d\u0430\u043b.<\/figcaption><\/div>\n<\/figure>\n<p>\u041d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u043c \u0435\u0433\u043e. \u0414\u043b\u044f \u043d\u0430\u0447\u0430\u043b\u0430 \u0437\u0430\u0432\u0435\u0434\u0451\u043c \u0433\u043b\u043e\u0431\u0430\u043b\u044c\u043d\u0443\u044e \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e \u0441 \u043d\u0443\u043b\u0435\u0432\u044b\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\u043c, \u0438\u0437 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440 DMA \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u043e \u0431\u0443\u0434\u0435\u0442 \u0441\u043b\u0430\u0442\u044c \u0432 UART \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435:<\/p>\n<pre><code class=\"cpp\">uint8_t zero_var = 0;<\/code><\/pre>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u043c \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440 DMA:<\/p>\n<pre><code class=\"cpp\">\/\/\u043f\u043e \u0431\u0430\u0439\u0442\u0443, \u0438\u0437 zero_var \u0432 USART1-&gt;TDR, \/\/\u0432 \u0446\u0438\u043a\u043b\u0438\u0447\u0435\u0441\u043a\u043e\u043c \u0440\u0435\u0436\u0438\u043c\u0435, \u043f\u043e 2 \u043f\u043e\u0441\u044b\u043b\u043a\u0438 \/\/\u043d\u0430 \u0446\u0438\u043a\u043b, \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u0435 \u043f\u043e \u043e\u043a\u043e\u043d\u0447\u0430\u043d\u0438\u044e \/\/\u0446\u0438\u043a\u043b\u0430 DMA1_Channel4-&gt;CCR = DMA_CCR_CIRC | DMA_CCR_DIR |         DMA_CCR_TCIE; DMA1_Channel4-&gt;CMAR = (uint32_t)&amp;zero_var; DMA1_Channel4-&gt;CPAR = (uint32_t)&amp;(USART1-&gt;TDR); DMA1_Channel4-&gt;CNDTR = 2;<\/code><\/pre>\n<p>\u0414\u0435\u043b\u0438\u0442\u0435\u043b\u044c \u0447\u0430\u0441\u0442\u043e\u0442\u044b \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u044f \u0437\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0432 \u0440\u0435\u0433\u0438\u0441\u0442\u0440 <code>CNDTR<\/code> \u043d\u0430\u0448\u0435\u0433\u043e \u043a\u0430\u043d\u0430\u043b\u0430 DMA. \u0417\u0434\u0435\u0441\u044c \u043e\u043d \u0440\u0430\u0432\u0435\u043d \u0434\u0432\u0443\u043c, \u0442.\u0435. \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u0447\u0430\u0441\u0442\u043e\u0442\u0430 \u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u044f \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u0439 \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0432\u043d\u0430 3 \u043a\u0413\u0446.<\/p>\n<p>\u0412\u043a\u043b\u044e\u0447\u0430\u0435\u043c \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u044f, UART \u0438 DMA:<\/p>\n<pre><code class=\"cpp\">\/\/\u0432\u043a\u043b\u044e\u0447\u0430\u0435\u043c \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u044f \u043e\u0442 \u043a\u0430\u043d\u0430\u043b\u0430 DMA \/\/(\u0432\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u0442\u0430\u0439\u043c\u0435\u0440\u0430) NVIC_EnableIRQ(DMA1_Channel4_IRQn);  \/\/\u0432\u043a\u043b\u044e\u0447\u0430\u0435\u043c \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0443 USART1-&gt;CR1 |= USART_CR1_TE; \/\/\u0432\u043a\u043b\u044e\u0447\u0430\u0435\u043c DMA DMA1_Channel4-&gt;CCR |= DMA_CCR_EN;<\/code><\/pre>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u043f\u0435\u0440\u0435\u043f\u0438\u0448\u0435\u043c \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u044f. \u041d\u0430\u0437\u0432\u0430\u043d\u0438\u0435, \u043e\u043f\u044f\u0442\u044c \u0436\u0435, \u0431\u0435\u0440\u0451\u043c \u0438\u0437 startup-\u0444\u0430\u0439\u043b\u0430:<\/p>\n<pre><code class=\"cpp\">void DMA1_Channel4_IRQHandler() {     \/\/\u0434\u0440\u044b\u0433 \u043d\u043e\u0436\u043a\u043e\u0439 \u0432\u0432\u0435\u0440\u0445 PA0_HIGH  \/\/\u0435\u0441\u043b\u0438 \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u0435 \u043f\u043e \u043e\u043a\u043e\u043d\u0447\u0430\u043d\u0438\u044e \u0446\u0438\u043a\u043b\u0430 if (DMA1-&gt;ISR &amp; DMA_ISR_TCIF4) { \/\/\u0441\u0431\u0440\u043e\u0441 \u0444\u043b\u0430\u0433\u0430 \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u044f DMA1-&gt;IFCR = DMA_IFCR_CTCIF4; }     \/\/\u0434\u0440\u044b\u0433 \u043d\u043e\u0436\u043a\u043e\u0439 \u0432\u043d\u0438\u0437 PA0_LOW }<\/code><\/pre>\n<p>\u0412 \u0442\u0430\u043a\u043e\u043c \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0438 \u0443\u0436\u0435 \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0438 \u0434\u0430\u0432\u0430\u0442\u044c \u0438\u043c\u043f\u0443\u043b\u044c\u0441\u044b \u043d\u0430 PA0. \u041e\u0434\u043d\u0430\u043a\u043e \u043d\u0430\u0434\u043e \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c, \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043b\u0438 \u043f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u00ab\u043d\u0430 \u043b\u0435\u0442\u0443\u00bb \u0447\u0430\u0441\u0442\u043e\u0442\u044b. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043d\u0430\u0434\u043e \u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0442\u043e\u0442 \u0436\u0435 \u0442\u0435\u0441\u0442\u043e\u0432\u044b\u0439 \u043a\u043e\u0434, \u0440\u0430\u0437\u0432\u0435 \u0447\u0442\u043e \u043d\u0430\u0434\u043e \u0431\u0443\u0434\u0435\u0442 \u0447\u0443\u0442\u044c-\u0447\u0443\u0442\u044c \u0443\u0432\u0435\u043b\u0438\u0447\u0438\u0442\u044c \u0437\u0430\u0434\u0435\u0440\u0436\u043a\u0438:<\/p>\n<pre><code class=\"cpp\">\/\/\u0436\u0434\u0451\u043c for(int j = 0; j &lt;= 120000; j++) { asm(\"nop\"); }  for(int i = 1000; i &gt;= 100; i -= 1) {     \/\/\u0443\u0432\u0435\u043b\u0438\u0447\u0438\u0432\u0430\u0435\u043c \u0447\u0430\u0441\u0442\u043e\u0442\u0443 \u0441\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u043d\u0438\u044f \u0442\u0430\u0439\u043c\u0435\u0440\u0430     USART1-&gt;BRR = i;      \/\/\u0436\u0434\u0451\u043c     for(int j = 0; j &lt;= 1800; j++) { asm(\"nop\"); } }  for(int i = 100; i &lt;= 1000; i += 1) {     \/\/\u0443\u043c\u0435\u043d\u044c\u0448\u0430\u0435\u043c \u0447\u0430\u0441\u0442\u043e\u0442\u0443 \u0441\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u043d\u0438\u044f \u0442\u0430\u0439\u043c\u0435\u0440\u0430     USART1-&gt;BRR = i;      \/\/\u0436\u0434\u0451\u043c     for(int j = 0; j &lt;= 1800; j++) { asm(\"nop\"); } }  \/\/\u0436\u0434\u0451\u043c for(int j = 0; j &lt;= 120000; j++) { asm(\"nop\"); }  \/\/\u0432\u044b\u043a\u043b\u044e\u0447\u0430\u0435\u043c \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u044f \u043e\u0442 \u043a\u0430\u043d\u0430\u043b\u0430 DMA \/\/(\u0432\u044b\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u0442\u0430\u0439\u043c\u0435\u0440\u0430) NVIC_DisableIRQ(DMA1_Channel4_IRQn);  \/\/\u0432\u044b\u043a\u043b\u044e\u0447\u0430\u0435\u043c \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0443 USART1-&gt;CR1 &amp;= ~USART_CR1_TE;<\/code><\/pre>\n<p>\u041e\u043f\u044f\u0442\u044c \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0435\u043c \u0430\u043d\u0430\u043b\u0438\u0437\u0430\u0442\u043e\u0440 \u0438 \u0441\u043c\u043e\u0442\u0440\u0438\u043c:<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/647\/2d9\/3f1\/6472d93f1ab7933c7735be2f7e3b6bb3.png\" width=\"1289\" height=\"251\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/647\/2d9\/3f1\/6472d93f1ab7933c7735be2f7e3b6bb3.png\"\/><\/figure>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/b1c\/43b\/fc9\/b1c43bfc94a6aa8f78c76b4784b7b907.png\" alt=\"\u0427\u0430\u0441\u0442\u043e\u0442\u0430 \u0432\u044b\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0433\u043e\u0440\u0430\u0437\u0434\u043e \u0442\u043e\u0447\u043d\u0435\u0435.\" title=\"\u0427\u0430\u0441\u0442\u043e\u0442\u0430 \u0432\u044b\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0433\u043e\u0440\u0430\u0437\u0434\u043e \u0442\u043e\u0447\u043d\u0435\u0435.\" width=\"1419\" height=\"247\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/b1c\/43b\/fc9\/b1c43bfc94a6aa8f78c76b4784b7b907.png\"\/><\/p>\n<div><figcaption>\u0427\u0430\u0441\u0442\u043e\u0442\u0430 \u0432\u044b\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0433\u043e\u0440\u0430\u0437\u0434\u043e \u0442\u043e\u0447\u043d\u0435\u0435.<\/figcaption><\/div>\n<\/figure>\n<p>\u0412 \u0441\u0435\u0440\u0435\u0434\u0438\u043d\u0435 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0442\u043e \u0436\u0435 \u0441\u0430\u043c\u043e\u0435. \u0417\u0430\u0433\u043b\u044f\u043d\u0435\u043c \u0432 \u043a\u043e\u043d\u0435\u0446:<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/38d\/8f0\/9a7\/38d8f09a70908c1653e46cfc1ef636ab.png\" width=\"948\" height=\"257\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/38d\/8f0\/9a7\/38d8f09a70908c1653e46cfc1ef636ab.png\"\/><\/figure>\n<p>\u0412\u0438\u0434\u0438\u043c, \u0447\u0442\u043e \u0447\u0430\u0441\u0442\u043e\u0442\u0430 \u0432\u044b\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0441 \u0431\u043e\u043b\u044c\u0448\u0435\u0439 \u0442\u043e\u0447\u043d\u043e\u0441\u0442\u044c\u044e. \u041f\u0440\u0438 \u044d\u0442\u043e\u043c \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u0442\u0441\u044f \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0447\u0430\u0441\u0442\u043e\u0442\u044b \u00ab\u043d\u0430 \u043b\u0435\u0442\u0443\u00bb.<\/p>\n<h3>\u0417\u0430\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435<\/h3>\n<p>\u0412 \u0442\u0435\u043e\u0440\u0438\u0438 \u0434\u043b\u044f \u0442\u0435\u0445 \u0436\u0435 \u0446\u0435\u043b\u0435\u0439 \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0410\u0426\u041f \u0438 SPI, \u043d\u043e \u0443 \u043d\u0438\u0445 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043d\u0435\u0442\u043e\u0447\u043d\u0430\u044f \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u0438 \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u0438 \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u0439. UART \u043f\u043e\u0434\u0445\u043e\u0434\u0438\u0442 \u043b\u0443\u0447\u0448\u0435 \u0432\u0441\u0435\u0433\u043e.<\/p>\n<p>\u0412 \u0441\u0442\u0430\u0440\u0448\u0438\u0445 \u0441\u0435\u043c\u0435\u0439\u0441\u0442\u0432\u0430\u0445 (\u0438 \u0432 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043c\u043b\u0430\u0434\u0448\u0438\u0445) \u0435\u0441\u0442\u044c LPUART, \u0443 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u0440\u0435\u0433\u0438\u0441\u0442\u0440 BRR \u043d\u0430 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0431\u0438\u0442 \u0434\u043b\u0438\u043d\u043d\u0435\u0435. \u0422\u0430\u043c \u043c\u043e\u0436\u043d\u043e \u043e\u0431\u043e\u0439\u0442\u0438\u0441\u044c \u0438 \u0431\u0435\u0437 DMA.<\/p>\n<p>\u0412\u0435\u0441\u044c \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u043a\u043e\u0434 \u0438 \u0444\u0430\u0439\u043b\u044b \u0441 \u043b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u0430\u043d\u0430\u043b\u0438\u0437\u0430\u0442\u043e\u0440\u0430 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b \u043d\u0430 <a href=\"https:\/\/github.com\/LTVA1\/STM32_UART_as_timer\" rel=\"noopener noreferrer nofollow\">GitHub<\/a>.<\/p>\n<\/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\/871564\/\"> https:\/\/habr.com\/ru\/articles\/871564\/<\/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<p>\u0412 \u0441\u0432\u043e\u0451\u043c <a href=\"https:\/\/github.com\/LTVA1\/STM32CrapSynth\" rel=\"noopener noreferrer nofollow\">\u043a\u0443\u0440\u0441\u043e\u0432\u043e\u043c \u043f\u0440\u043e\u0435\u043a\u0442\u0435<\/a> \u044f \u0441\u0442\u043e\u043b\u043a\u043d\u0443\u043b\u0441\u044f \u0441 \u043d\u0435\u0445\u0432\u0430\u0442\u043a\u043e\u0439 \u0442\u0430\u0439\u043c\u0435\u0440\u043e\u0432. \u0412\u044b\u0433\u0440\u0435\u0431 \u0432\u0441\u0451, \u0432\u043a\u043b\u044e\u0447\u0430\u044f SysTick! \u0418 \u043f\u0440\u0438\u0437\u0430\u0434\u0443\u043c\u0430\u043b\u0441\u044f, \u043a\u0430\u043a \u0436\u0435 \u043e\u0431\u043e\u0439\u0442\u0438 \u044d\u0442\u043e \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0435. \u041d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0431\u044b\u043b\u043e \u043d\u0430\u0439\u0442\u0438 \u043d\u0435\u043a\u0443\u044e \u043f\u0435\u0440\u0438\u0444\u0435\u0440\u0438\u044e, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0441\u043c\u043e\u0433\u043b\u0430 \u0431\u044b \u0437\u0430\u043c\u0435\u043d\u0438\u0442\u044c \u0441\u043e\u0431\u043e\u0439 \u0442\u0430\u0439\u043c\u0435\u0440.<\/p>\n<p>\u0423\u0441\u043b\u043e\u0432\u0438\u044f: \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u044f \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u0439 \u0441 \u0447\u0430\u0441\u0442\u043e\u0442\u043e\u0439 \u043e\u0442 ~100 \u0413\u0446 \u0434\u043e ~20 \u043a\u0413\u0446. \u0422\u043e\u0447\u043d\u043e\u0441\u0442\u044c \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u043f\u0435\u0440\u0438\u043e\u0434\u0430 \u0441\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u043d\u0438\u044f \u043e\u043a\u043e\u043b\u043e 1 \u0413\u0446 \u0432\u043e \u0432\u0441\u0451\u043c \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d\u0435.<\/p>\n<p>\u0412 \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0435 STM32F303RE \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0438\u043b\u043e\u0441\u044c \u0430\u0436 \u043f\u044f\u0442\u044c \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u043e\u0432 UART. \u041e\u0434\u0438\u043d \u0438\u0437 \u043d\u0438\u0445 \u0432 \u043c\u043e\u0451\u043c \u043f\u0440\u043e\u0435\u043a\u0442\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0441\u044f \u0434\u043b\u044f \u0441\u0432\u044f\u0437\u0438 \u0441 \u041f\u041a, \u0430 \u0432\u043e\u0442 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0435 \u0447\u0435\u0442\u044b\u0440\u0435 \u043c\u043e\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0442\u0430\u0439\u043c\u0435\u0440\u043e\u0432.<\/p>\n<p>\u041a\u0430\u043a \u0436\u0435 \u0438\u0445 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c? \u0412\u0441\u0451 \u043e\u0447\u0435\u043d\u044c \u043f\u0440\u043e\u0441\u0442\u043e. \u0423 \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0430 UART \u0435\u0441\u0442\u044c \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u0438 \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0438 \u0434\u0430\u043d\u043d\u044b\u0445:<\/p>\n<figure class=\"full-width\"><\/figure>\n<p>\u0412 \u0434\u0430\u043d\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u044d\u0442\u043e \u043f\u043e \u0441\u0443\u0442\u0438 16-\u0431\u0438\u0442\u043d\u044b\u0439 \u0434\u0435\u043b\u0438\u0442\u0435\u043b\u044c \u0447\u0430\u0441\u0442\u043e\u0442\u044b, \u043e\u0442 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u0442\u0430\u043a\u0442\u0438\u0440\u0443\u044e\u0442\u0441\u044f \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0430 \u0438 \u043f\u0440\u0438\u0451\u043c \u0434\u0430\u043d\u043d\u044b\u0445. \u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c, \u0437\u043d\u0430\u044f \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0438 \u043f\u0440\u0438\u043d\u0446\u0438\u043f \u0440\u0430\u0431\u043e\u0442\u044b \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0430 UART, \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u0432\u044b\u0447\u0438\u0441\u043b\u0438\u0442\u044c, \u043a\u0430\u043a \u0438\u043c\u0435\u043d\u043d\u043e \u0441\u0432\u044f\u0437\u0430\u043d\u043e \u0432\u0440\u0435\u043c\u044f \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0438 \u043e\u0434\u043d\u043e\u0433\u043e \u0431\u0430\u0439\u0442\u0430 \u0438 \u0447\u0438\u0441\u043b\u043e, \u0437\u0430\u043f\u0438\u0441\u0430\u043d\u043d\u043e\u0435 \u0432 \u0440\u0435\u0433\u0438\u0441\u0442\u0440 BRR. \u0422\u043e \u0435\u0441\u0442\u044c \u043c\u043e\u0436\u043d\u043e \u0440\u0430\u0441\u0441\u0447\u0438\u0442\u0430\u0442\u044c \u0442\u0430\u043a\u043e\u0435 \u0447\u0438\u0441\u043b\u043e \u0432 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0435 BRR, \u043f\u0440\u0438 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u0431\u0430\u0439\u0442 \u0431\u0443\u0434\u0435\u0442 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c\u0441\u044f \u0437\u0430 \u0437\u0430\u0434\u0430\u043d\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f. \u0418 \u044d\u0442\u043e \u0443\u0436\u0435 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0437\u0430\u0441\u0442\u0430\u0432\u0438\u0442\u044c UART \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u0435 \u0441\u043e \u0441\u0442\u0440\u043e\u0433\u043e \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u043e\u0439 \u0447\u0430\u0441\u0442\u043e\u0442\u043e\u0439.<\/p>\n<h3>\u0421\u043f\u043e\u0441\u043e\u0431 \u21161 \u2014 \u0411\u0435\u0437 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0430 DMA<\/h3>\n<p>\u0414\u0430\u043d\u043d\u044b\u0439 \u0441\u043f\u043e\u0441\u043e\u0431 \u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b \u0432 \u043a\u0443\u0440\u0441\u043e\u0432\u043e\u043c \u043f\u0440\u043e\u0435\u043a\u0442\u0435, \u043f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u0432 F303 \u043d\u0435\u0442 \u0433\u0438\u0431\u043a\u043e\u0439 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u043a\u0430\u043d\u0430\u043b\u043e\u0432 DMA \u0438 \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u043e\u0432 \u0441\u0438\u0433\u043d\u0430\u043b\u043e\u0432 \u0434\u043b\u044f \u043d\u0438\u0445 (\u043d\u0435\u0442 DMAMUX), \u0434\u0430 \u043a \u0442\u043e\u043c\u0443 \u0436\u0435 9 \u0438\u0437 12-\u0442\u0438 \u043a\u0430\u043d\u0430\u043b\u043e\u0432 DMA \u0443\u0436\u0435 \u0431\u044b\u043b\u0438 \u0437\u0430\u043d\u044f\u0442\u044b.<\/p>\n<p>\u0421\u043f\u043e\u0441\u043e\u0431 \u0437\u0430\u043a\u043b\u044e\u0447\u0430\u0435\u0442\u0441\u044f \u0432 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u043c: \u0432\u043a\u043b\u044e\u0447\u0430\u0435\u043c UART, \u043f\u0440\u0438\u0447\u0451\u043c \u0441\u043e\u0432\u0435\u0440\u0448\u0435\u043d\u043d\u043e \u043d\u0435\u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u043d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0442\u044c \u0432\u044b\u0432\u043e\u0434\u044b \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0430 \u043f\u043e\u0434 \u043d\u0435\u0433\u043e, \u0442.\u0435. UART \u0431\u0443\u0434\u0435\u0442 \u0441\u043b\u0430\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0435 \u00ab\u0432 \u043d\u0438\u043a\u0443\u0434\u0430\u00bb. \u041d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u043c \u0444\u043e\u0440\u043c\u0430\u0442 \u0434\u0430\u043d\u043d\u044b\u0445 \u0438 \u0440\u0435\u0433\u0438\u0441\u0442\u0440 BRR, \u043f\u043e\u0441\u043b\u0435 \u0447\u0435\u0433\u043e \u0432\u043a\u043b\u044e\u0447\u0430\u0435\u043c \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u0435 \u043f\u043e \u043e\u043a\u043e\u043d\u0447\u0430\u043d\u0438\u044e \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0438 \u043a\u0430\u0434\u0440\u0430.<\/p>\n<p>\u0418\u0442\u0430\u043a, \u0434\u043b\u044f \u043d\u0430\u0447\u0430\u043b\u0430 \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u043c \u0442\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043e\u0442 \u0432\u043d\u0435\u0448\u043d\u0435\u0433\u043e \u043a\u0432\u0430\u0440\u0446\u0430:<\/p>\n<pre><code class=\"cpp\">void set_72MHz() { RCC-&gt;CR |= ((uint32_t)RCC_CR_HSEON);  \/* \u0416\u0434\u0435\u043c \u043f\u043e\u043a\u0430 HSE \u043d\u0435 \u0432\u044b\u0441\u0442\u0430\u0432\u0438\u0442 \u0431\u0438\u0442 \u0433\u043e\u0442\u043e\u0432\u043d\u043e\u0441\u0442\u0438 *\/ while(!(RCC-&gt;CR &amp; RCC_CR_HSERDY)) {}  \/* \u041a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0438\u0440\u0443\u0435\u043c Flash \u043d\u0430 2 \u0446\u0438\u043a\u043b\u0430 \u043e\u0436\u0438\u0434\u0430\u043d\u0438\u044f *\/ \/* Flash \u043d\u0435 \u043c\u043e\u0436\u0435\u0442 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u043d\u0430 \u0432\u044b\u0441\u043e\u043a\u043e\u0439 \u0447\u0430\u0441\u0442\u043e\u0442\u0435 *\/ FLASH-&gt;ACR &amp;= ~FLASH_ACR_LATENCY; FLASH-&gt;ACR |= FLASH_ACR_LATENCY_2;  \/* HCLK = SYSCLK *\/ RCC-&gt;CFGR |= RCC_CFGR_HPRE_DIV1;  \/* PCLK2 = HCLK *\/ RCC-&gt;CFGR |= RCC_CFGR_PPRE2_DIV1;  \/* PCLK1 = HCLK \/ 2 *\/ RCC-&gt;CFGR |= RCC_CFGR_PPRE1_DIV2;  \/* \u041a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0438\u0440\u0443\u0435\u043c \u043c\u043d\u043e\u0436\u0438\u0442\u0435\u043b\u044c PLL configuration: PLLCLK = HSE * 9 = 72 MHz *\/ \/* \u041f\u0440\u0438 \u0443\u0441\u043b\u043e\u0432\u0438\u0438, \u0447\u0442\u043e \u043a\u0432\u0430\u0440\u0446 \u043d\u0430 8\u041c\u0413\u0446! *\/ RCC-&gt;CFGR &amp;= ~(RCC_CFGR_PLLSRC | RCC_CFGR_PLLXTPRE | RCC_CFGR_PLLMUL); RCC-&gt;CFGR |= RCC_CFGR_PLLSRC_HSE_PREDIV | RCC_CFGR_PLLMUL9;  \/* \u0412\u043a\u043b\u044e\u0447\u0430\u0435\u043c PLL *\/ RCC-&gt;CR |= RCC_CR_PLLON;  \/* \u041e\u0436\u0438\u0434\u0430\u0435\u043c, \u043f\u043e\u043a\u0430 PLL \u0432\u044b\u0441\u0442\u0430\u0432\u0438\u0442 \u0431\u0438\u0442 \u0433\u043e\u0442\u043e\u0432\u043d\u043e\u0441\u0442\u0438 *\/ while((RCC-&gt;CR &amp; RCC_CR_PLLRDY) == 0) { asm(\"nop\"); }  \/* \u0412\u044b\u0431\u0438\u0440\u0430\u0435\u043c PLL \u043a\u0430\u043a \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u043e\u0439 \u0447\u0430\u0441\u0442\u043e\u0442\u044b *\/ RCC-&gt;CFGR &amp;= ~RCC_CFGR_SW; RCC-&gt;CFGR |= RCC_CFGR_SW_PLL;  \/* \u041e\u0436\u0438\u0434\u0430\u0435\u043c, \u043f\u043e\u043a\u0430 PLL \u0432\u044b\u0431\u0435\u0440\u0435\u0442\u0441\u044f \u043a\u0430\u043a \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u043e\u0439 \u0447\u0430\u0441\u0442\u043e\u0442\u044b *\/ while ((RCC-&gt;CFGR &amp; RCC_CFGR_SWS) != RCC_CFGR_SWS_PLL) { asm(\"nop\"); }  SystemCoreClockUpdate(); }<\/code><\/pre>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u0432\u043a\u043b\u044e\u0447\u0438\u043c \u0442\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0438 \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u0438\u043c \u0448\u0430\u0431\u043b\u043e\u043d \u0444\u0443\u043d\u043a\u0446\u0438\u0438 main. \u041d\u0430\u043c \u043f\u043e\u043d\u0430\u0434\u043e\u0431\u0438\u0442\u0441\u044f \u0432\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u0441\u0430\u043c UART (\u044f \u0432\u044b\u0431\u0440\u0430\u043b USART1) \u0438 \u043a\u0430\u043a\u043e\u0439-\u043b\u0438\u0431\u043e \u043f\u043e\u0440\u0442 GPIO, \u0447\u0442\u043e\u0431\u044b \u0434\u0440\u044b\u0433\u0430\u0442\u044c \u043d\u043e\u0436\u043a\u043e\u0439 \u0432 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0435 \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u044f:<\/p>\n<pre><code class=\"cpp\">void init_clocks() { RCC-&gt;AHBENR |= RCC_AHBENR_GPIOAEN; RCC-&gt;APB2ENR |= RCC_APB2ENR_USART1EN; }<\/code><\/pre>\n<pre><code class=\"cpp\">int main(void) { init_clocks(); set_72MHz();  \/\/\u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u043f\u0435\u0440\u0438\u0444\u0435\u0440\u0438\u0438 \u0442\u0443\u0442  while (1) { asm(\"nop\"); }  return 0; }<\/code><\/pre>\n<p>\u041f\u043e\u043a\u0430 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u044f <code>set_72MHz()<\/code>, \u0442\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043f\u0435\u0440\u0438\u0444\u0435\u0440\u0438\u0438 \u0442\u043e\u0447\u043d\u043e \u0443\u0441\u043f\u0435\u0435\u0442 \u0432\u043a\u043b\u044e\u0447\u0438\u0442\u044c\u0441\u044f. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 <code>set_72MHz()<\/code> \u0441\u0442\u043e\u0438\u0442 \u043f\u043e\u0441\u043b\u0435 <code>init_clocks()<\/code>.<\/p>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u0437\u0430\u0432\u0435\u0440\u0448\u0438\u043c \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0443 \u043f\u0435\u0440\u0438\u0444\u0435\u0440\u0438\u0438. \u0412\u043e-\u043f\u0435\u0440\u0432\u044b\u0445, \u043f\u0440\u0438\u0433\u043e\u0442\u043e\u0432\u0438\u043c \u043c\u0430\u043a\u0440\u043e\u0441\u044b \u0434\u043b\u044f \u0434\u0440\u044b\u0433\u0430\u043d\u044c\u044f \u043d\u043e\u0436\u043a\u043e\u0439 (\u0432\u044b\u0432\u043e\u0434 PA0). \u041f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u0434\u043b\u044f STM32F303 \u0440\u0435\u0433\u0438\u0441\u0442\u0440 <code>GPIOx-&gt;BSRR<\/code> \u0437\u0430\u0447\u0435\u043c-\u0442\u043e \u043e\u0431\u044a\u044f\u0432\u043b\u0435\u043d \u043a\u0430\u043a \u0434\u0432\u0430 16-\u0431\u0438\u0442\u043d\u044b\u0445 \u043f\u043e\u043b\u044f (\u0432 \u043e\u0442\u043b\u0438\u0447\u0438\u0435 \u043e\u0442, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, STM32F0x), \u043d\u0443\u0436\u043d\u043e \u043f\u0440\u0438\u0432\u0435\u0441\u0442\u0438 \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044c \u043a \u0442\u0438\u043f\u0443 <code>volatile uint32_t*<\/code>, \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u0442\u043e\u043c \u0443\u0436\u0435 \u043e\u0431\u0440\u0430\u0449\u0430\u0442\u044c\u0441\u044f \u043a \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0443 \u043a\u0430\u043a \u043a 32-\u0431\u0438\u0442\u043d\u043e\u043c\u0443 \u043f\u043e\u043b\u044e:<\/p>\n<pre><code class=\"cpp\">#define PA0_HIGH *(volatile uint32_t*)&amp;(GPIOA-&gt;BSRRL) = (1 &lt;&lt; (0)); #define PA0_LOW *(volatile uint32_t*)&amp;(GPIOA-&gt;BSRRL) = (1 &lt;&lt; (0 + 16));<\/code><\/pre>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u043c \u0432\u044b\u0432\u043e\u0434 PA0:<\/p>\n<pre><code class=\"cpp\">\/\/\u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u0432\u044b\u0432\u043e\u0434\u0430 PA0 \u043d\u0430 \u0432\u044b\u0445\u043e\u0434 GPIOA-&gt;MODER &amp;= ~GPIO_MODER_MODER0; GPIOA-&gt;MODER |= GPIO_MODER_MODER0_0;  \/\/\u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c \u043d\u0438\u0437\u043a\u0438\u0439 \u043b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0443\u0440\u043e\u0432\u0435\u043d\u044c \u043d\u0430 \u0432\u044b\u0432\u043e\u0434\u0435 PA0 PA0_LOW<\/code><\/pre>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043d\u0430 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 UART. \u041d\u0430\u043c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0437\u0430\u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u043a\u0430\u043a \u043c\u043e\u0436\u043d\u043e \u0431\u043e\u043b\u044c\u0448\u0438\u0439 \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u044b\u0445 \u0447\u0430\u0441\u0442\u043e\u0442 \u0441\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u043d\u0438\u044f. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043d\u0430\u0434\u043e \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e \u00ab\u0440\u0430\u0441\u0442\u044f\u043d\u0443\u0442\u044c\u00bb \u043a\u0430\u0436\u0434\u044b\u0439 \u043a\u0430\u0434\u0440 UART. \u041f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043d\u0430 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0443 \u043a\u0430\u0434\u0440\u0430 \u0432 reference manual&#8217;\u0435:<\/p>\n<figure class=\"full-width\">\n<div><figcaption>\u041c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u0430\u044f \u0434\u043b\u0438\u043d\u0430 \u0441\u043b\u043e\u0432\u0430 \u0441 \u0434\u0430\u043d\u043d\u044b\u043c\u0438 9 \u0431\u0438\u0442.<\/figcaption><\/div>\n<\/figure>\n<p>\u0422\u043e \u0435\u0441\u0442\u044c \u0438\u043c\u0435\u0435\u043c \u0441\u0442\u0430\u0440\u0442\u043e\u0432\u044b\u0439 \u0431\u0438\u0442 + 9 \u0431\u0438\u0442 \u0434\u0430\u043d\u043d\u044b\u0445 + \u0441\u0442\u043e\u043f\u043e\u0432\u044b\u0439 \u0431\u0438\u0442. \u0418\u0442\u043e\u0433\u043e 11 \u0431\u0438\u0442. \u0410 \u043c\u043e\u0436\u043d\u043e \u043b\u0438 \u0435\u0449\u0451 \u0434\u043b\u0438\u043d\u043d\u0435\u0435? \u041e\u0442\u0432\u0435\u0442\u00a0\u2014 \u0434\u0430! \u041f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043d\u0430 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0443 \u0441\u0442\u043e\u043f\u043e\u0432\u043e\u0433\u043e \u0431\u0438\u0442\u0430:<\/p>\n<figure class=\"full-width\">\n<div><figcaption>\u041c\u0430\u043a\u0441\u0438\u043c\u0443\u043c \u0434\u0432\u0430 \u0441\u0442\u043e\u043f\u043e\u0432\u044b\u0445 \u0431\u0438\u0442\u0430.<\/figcaption><\/div>\n<\/figure>\n<p>\u041e\u0442\u043b\u0438\u0447\u043d\u043e, \u043c\u044b \u0440\u0430\u0441\u0442\u044f\u043d\u0443\u043b\u0438 \u043e\u0434\u0438\u043d \u043a\u0430\u0434\u0440 \u0434\u043e 12 \u0431\u0438\u0442, \u0432\u044b\u0431\u0440\u0430\u0432 \u0434\u0432\u0430 \u0441\u0442\u043e\u043f\u043e\u0432\u044b\u0445 \u0431\u0438\u0442\u0430. \u0422\u0435\u043f\u0435\u0440\u044c \u043d\u0443\u0436\u043d\u043e \u043f\u043e\u043d\u044f\u0442\u044c, \u043a\u0430\u043a \u0441\u0447\u0438\u0442\u0430\u0442\u044c \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0438.<\/p>\n<p>\u041f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u043f\u0440\u0438\u0451\u043c\u043e\u043f\u0435\u0440\u0435\u0434\u0430\u0442\u0447\u0438\u043a USART1 \u0442\u0430\u043a\u0442\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u043e\u0442 \u043f\u0435\u0440\u0438\u0444\u0435\u0440\u0438\u0439\u043d\u043e\u0439 \u0448\u0438\u043d\u044b. \u0412 \u043d\u0430\u0448\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u044d\u0442\u043e \u0448\u0438\u043d\u0430 APB2, \u0438 \u043c\u044b \u0432\u044b\u0441\u0442\u0430\u0432\u0438\u043b\u0438 \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u0443\u044e \u0442\u0430\u043a\u0442\u043e\u0432\u0443\u044e \u0447\u0430\u0441\u0442\u043e\u0442\u0443 \u0441\u043e\u0433\u043b\u0430\u0441\u043d\u043e \u0434\u0430\u0442\u0430\u0448\u0438\u0442\u0443:<\/p>\n<figure class=\"full-width\"><\/figure>\n<p>\u041f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u043a\u0430\u0436\u0434\u044b\u0439 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u043d\u044b\u0439\/\u043f\u0440\u0438\u043d\u044f\u0442\u044b\u0439 \u0431\u0438\u0442 UART \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u043e\u0434\u043d\u043e\u043c\u0443 \u0442\u0430\u043a\u0442\u0443 \u044d\u0442\u043e\u0439 \u0447\u0430\u0441\u0442\u043e\u0442\u044b, \u0434\u0435\u043b\u0451\u043d\u043e\u0439 \u043d\u0430 \u0447\u0438\u0441\u043b\u043e \u0432 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0435 BRR. \u0412 \u043a\u0430\u0436\u0434\u043e\u043c \u043a\u0430\u0434\u0440\u0435 \u0442\u0430\u043a\u0438\u0445 \u0431\u0438\u0442\u043e\u0432 12. \u0418\u0437 \u0447\u0435\u0433\u043e \u0432\u044b\u0442\u0435\u043a\u0430\u0435\u0442 \u0444\u043e\u0440\u043c\u0443\u043b\u0430 \u0447\u0430\u0441\u0442\u043e\u0442\u044b \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u0439:<\/p>\n<p>\u0433\u0434\u0435 \u2014 \u0447\u0438\u0441\u043b\u043e \u0432\u00a0\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0435 BRR. \u0421\u043b\u0435\u0434\u0443\u0435\u0442 \u0437\u0430\u043c\u0435\u0442\u0438\u0442\u044c, \u0447\u0442\u043e \u0438\u043d\u0430\u0447\u0435 UART \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u043d\u0435 \u0431\u0443\u0434\u0435\u0442. \u041e\u0447\u0435\u0432\u0438\u0434\u043d\u043e, \u0447\u0442\u043e \u0434\u043b\u044f \u0434\u0440\u0443\u0433\u0438\u0445 \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u043e\u0432 \u0438 \u0434\u0430\u0436\u0435 \u0434\u043b\u044f \u0434\u0440\u0443\u0433\u0438\u0445 UART&#8217;\u043e\u0432 \u044d\u0442\u043e\u0433\u043e \u0436\u0435 \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0430 \u0447\u0430\u0441\u0442\u043e\u0442\u0430 \u0431\u0443\u0434\u0435\u0442 \u0434\u0440\u0443\u0433\u0430\u044f, \u043f\u043b\u044e\u0441 \u043c\u043e\u0436\u043d\u043e \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u0442\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043f\u0440\u0438\u0451\u043c\u043e\u043f\u0435\u0440\u0435\u0434\u0430\u0442\u0447\u0438\u043a\u0430 \u043e\u0442 \u0434\u0440\u0443\u0433\u0438\u0445 \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u043e\u0432 \u0432 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0445 RCC:<\/p>\n<figure class=\"full-width\">\n<div><figcaption>\u0421\u043b\u0435\u0434\u0443\u0435\u0442 \u043f\u043e\u043c\u043d\u0438\u0442\u044c, \u0447\u0442\u043e \u043d\u0435 \u0432\u043e \u0432\u0441\u0435\u0445 \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0430\u0445 STM32 \u0435\u0441\u0442\u044c \u0442\u0430\u043a\u0430\u044f \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c.<\/figcaption><\/div>\n<\/figure>\n<p>\u0414\u043b\u044f \u043f\u0440\u043e\u0441\u0442\u043e\u0442\u044b \u043e\u0441\u0442\u0430\u0432\u0438\u043c \u0432\u0441\u0451 \u043a\u0430\u043a \u0435\u0441\u0442\u044c. \u041f\u043e\u0440\u0430 \u043d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0442\u044c \u0441\u0430\u043c UART:<\/p>\n<pre><code class=\"cpp\">\/\/\u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u0435 \u043f\u043e \u043f\u0443\u0441\u0442\u043e\u043c\u0443 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0443 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u043c\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445, \/\/9 \u0431\u0438\u0442 \u0434\u0430\u043d\u043d\u044b\u0445 \u0432 \u043a\u0430\u0434\u0440\u0435 (\u043c\u0430\u043a\u0441\u0438\u043c\u0443\u043c) USART1-&gt;CR1 |= USART_CR1_TXEIE | USART_CR1_M0; \/\/2 \u0441\u0442\u043e\u043f\u043e\u0432\u044b\u0445 \u0431\u0438\u0442\u0430 \u0432 \u043a\u0430\u0434\u0440\u0435 (\u043c\u0430\u043a\u0441\u0438\u043c\u0443\u043c) USART1-&gt;CR2 |= USART_CR2_STOP_1; \/\/\u0432\u043a\u043b\u044e\u0447\u0430\u0435\u043c UART (\u043d\u043e \u043d\u0435 \u0432\u043a\u043b\u044e\u0447\u0430\u0435\u043c \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0443) USART1-&gt;CR1 |= USART_CR1_UE;  \/\/\u0441\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u043d\u0438\u0435 \/\/6000000 \/ 1000 = 6000 \u0440\u0430\u0437 \u0432 \u0441\u0435\u043a\u0443\u043d\u0434\u0443 \/\/\u043f\u0435\u0440\u0438\u043e\u0434 166.(6) \u043c\u043a\u0441 USART1-&gt;BRR = 1000;  \/\/\u0437\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u043c \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u043c\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 USART1-&gt;TDR = 0;  \/\/\u0432\u043a\u043b\u044e\u0447\u0430\u0435\u043c \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0443 USART1-&gt;CR1 |= USART_CR1_TE;  \/\/\u0432\u043a\u043b\u044e\u0447\u0430\u0435\u043c \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u044f \u043e\u0442 USART1 \/\/(\u0432\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u0442\u0430\u0439\u043c\u0435\u0440\u0430) NVIC_EnableIRQ(USART1_IRQn);<\/code><\/pre>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u044f, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0431\u0443\u0434\u0435\u0442 \u043a\u043b\u0430\u0441\u0442\u044c \u043d\u043e\u0432\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u0432 <code>USART1-&gt;TDR<\/code> (\u0438\u043d\u0430\u0447\u0435 \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440 \u0437\u0430\u0432\u0438\u0441\u043d\u0435\u0442 \u0432 \u043f\u0443\u0441\u0442\u043e\u043c \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0435 \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u044f). \u041d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0431\u0435\u0440\u0451\u043c \u0438\u0437 startup-\u0444\u0430\u0439\u043b\u0430:<\/p>\n<pre><code class=\"cpp\">void USART1_IRQHandler() {     \/\/\u0434\u0440\u044b\u0433 \u043d\u043e\u0436\u043a\u043e\u0439 \u0432\u0432\u0435\u0440\u0445 PA0_HIGH  \/\/\u0435\u0441\u043b\u0438 \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u0435 \u043f\u043e \u043f\u0443\u0441\u0442\u043e\u043c\u0443 \/\/\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0443 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u043c\u044b\u0445 \/\/\u0434\u0430\u043d\u043d\u044b\u0445 if (USART1-&gt;ISR &amp; USART_ISR_TXE) { \/\/\u0441\u0431\u0440\u043e\u0441 \u0444\u043b\u0430\u0433\u0430 \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u044f \/\/\u043f\u0440\u0438 \u043f\u043e\u043c\u043e\u0449\u0438 \u0437\u0430\u043f\u0438\u0441\u0438 \u043d\u043e\u0432\u044b\u0445 \/\/\u0434\u0430\u043d\u043d\u044b\u0445 USART1-&gt;TDR = 0; }     \/\/\u0434\u0440\u044b\u0433 \u043d\u043e\u0436\u043a\u043e\u0439 \u0432\u043d\u0438\u0437 PA0_LOW }<\/code><\/pre>\n<p>\u0412 \u044d\u0442\u043e\u0442 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a \u043c\u043e\u0436\u043d\u043e \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0442\u043e, \u0447\u0442\u043e \u0412\u0430\u043c \u043d\u0443\u0436\u043d\u043e (\u0432\u0435\u0434\u044c \u043d\u0435 \u0431\u0443\u0434\u0435\u043c \u0436\u0435 \u043c\u044b \u0432\u044b\u0437\u044b\u0432\u0430\u0442\u044c \u0435\u0433\u043e \u043f\u0440\u043e\u0441\u0442\u043e \u0442\u0430\u043a). \u042f \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0438\u043b\u0441\u044f \u0434\u0451\u0440\u0433\u0430\u043d\u044c\u0435\u043c \u0432\u044b\u0432\u043e\u0434\u0430, \u0447\u0442\u043e\u0431\u044b \u043c\u043e\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u0443\u0432\u0438\u0434\u0435\u0442\u044c \u0447\u0430\u0441\u0442\u043e\u0442\u0443 \u0441\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u043d\u0438\u044f \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u044f.<\/p>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u0432\u0435\u0440\u043d\u0451\u043c\u0441\u044f \u0432 \u0444\u0443\u043d\u043a\u0446\u0438\u044e main. \u0414\u043e\u0441\u0442\u043e\u0438\u043d\u0441\u0442\u0432\u043e\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f UART \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0442\u0430\u0439\u043c\u0435\u0440\u0430 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0447\u0430\u0441\u0442\u043e\u0442\u044b \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u0439 \u00ab\u043d\u0430 \u043b\u0435\u0442\u0443\u00bb (\u043f\u0440\u0438\u0447\u0451\u043c \u0447\u0430\u0441\u0442\u043e\u0442\u0443 \u043c\u043e\u0436\u043d\u043e \u043a\u0430\u043a \u0443\u043c\u0435\u043d\u044c\u0448\u0430\u0442\u044c, \u0442\u0430\u043a \u0438 \u0443\u0432\u0435\u043b\u0438\u0447\u0438\u0432\u0430\u0442\u044c). \u042d\u0442\u043e \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u043e\u0434\u0435\u043c\u043e\u043d\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c, \u0434\u043e\u043f\u0438\u0441\u0430\u0432 \u043a\u043e\u0434 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0447\u0430\u0441\u0442\u043e\u0442\u044b \u043f\u0440\u044f\u043c\u043e \u0432 \u0444\u0443\u043d\u043a\u0446\u0438\u044e main:<\/p>\n<pre><code class=\"cpp\">\/\/\u0436\u0434\u0451\u043c for(int j = 0; j &lt;= 60000; j++) { asm(\"nop\"); }  for(int i = 1000; i &gt;= 100; i -= 1) {     \/\/\u0443\u0432\u0435\u043b\u0438\u0447\u0438\u0432\u0430\u0435\u043c \u0447\u0430\u0441\u0442\u043e\u0442\u0443 \u0441\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u043d\u0438\u044f \u0442\u0430\u0439\u043c\u0435\u0440\u0430     USART1-&gt;BRR = i;      \/\/\u0436\u0434\u0451\u043c     for(int j = 0; j &lt;= 600; j++) { asm(\"nop\"); } }  for(int i = 100; i &lt;= 1000; i += 1) {     \/\/\u0443\u043c\u0435\u043d\u044c\u0448\u0430\u0435\u043c \u0447\u0430\u0441\u0442\u043e\u0442\u0443 \u0441\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u043d\u0438\u044f \u0442\u0430\u0439\u043c\u0435\u0440\u0430     USART1-&gt;BRR = i;      \/\/\u0436\u0434\u0451\u043c     for(int j = 0; j &lt;= 600; j++) { asm(\"nop\"); } }  \/\/\u0432\u044b\u043a\u043b\u044e\u0447\u0430\u0435\u043c \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u044f \u043e\u0442 USART1 \/\/(\u0432\u044b\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u0442\u0430\u0439\u043c\u0435\u0440\u0430) NVIC_DisableIRQ(USART1_IRQn);  \/\/\u0432\u044b\u043a\u043b\u044e\u0447\u0430\u0435\u043c \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0443 USART1-&gt;CR1 &amp;= ~USART_CR1_TE;<\/code><\/pre>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u0442\u0435\u0441\u0442\u043e\u0432\u0430\u044f \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430 \u0433\u043e\u0442\u043e\u0432\u0430. \u041f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0435\u043c \u043b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0430\u043d\u0430\u043b\u0438\u0437\u0430\u0442\u043e\u0440 \u043a \u0432\u044b\u0432\u043e\u0434\u0443 PA0, \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u043c \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0443 \u0438 \u0441\u043c\u043e\u0442\u0440\u0438\u043c:<\/p>\n<figure class=\"full-width\">\n<div><figcaption>\u041f\u0435\u0440\u0432\u044b\u0439 \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 \u0438\u043d\u0442\u0435\u0440\u0432\u0430\u043b \u0447\u0443\u0442\u044c-\u0447\u0443\u0442\u044c \u00ab\u0443\u043f\u043b\u044b\u043b\u00bb.<\/figcaption><\/div>\n<\/figure>\n<figure class=\"full-width\">\n<div><figcaption>\u0410 \u0432\u043e\u0442 \u0432\u0442\u043e\u0440\u043e\u0439 \u0438 \u043f\u043e\u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u043a\u0440\u0430\u0439\u043d\u0435 \u0431\u043b\u0438\u0437\u043a\u0438 \u043a \u0440\u0430\u0441\u0447\u0451\u0442\u043d\u043e\u043c\u0443 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044e.<\/figcaption><\/div>\n<\/figure>\n<p>\u041f\u0440\u043e\u043c\u043e\u0442\u0430\u0435\u043c \u0447\u0443\u0442\u044c \u0432\u043f\u0435\u0440\u0451\u0434:<\/p>\n<figure class=\"full-width\">\n<div><figcaption>\u0427\u0430\u0441\u0442\u043e\u0442\u0430 \u043f\u043e\u0432\u044b\u0448\u0430\u0435\u0442\u0441\u044f, \u0430 \u0438\u043c\u043f\u0443\u043b\u044c\u0441\u044b \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0430\u044e\u0442 \u0438\u0434\u0442\u0438 \u0440\u0430\u0432\u043d\u043e\u043c\u0435\u0440\u043d\u043e \u0438 \u043d\u0435\u043f\u0440\u0435\u0440\u044b\u0432\u043d\u043e.<\/figcaption><\/div>\n<\/figure>\n<figure class=\"full-width\">\n<div><figcaption>\u0414\u043e\u0448\u043b\u0438 \u0434\u043e \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u043f\u0435\u0440\u0438\u043e\u0434\u0430. \u0414\u0430\u043b\u044c\u0448\u0435 \u0447\u0430\u0441\u0442\u043e\u0442\u0430 \u0431\u0443\u0434\u0435\u0442 \u0443\u043c\u0435\u043d\u044c\u0448\u0430\u0442\u044c\u0441\u044f.<\/figcaption><\/div>\n<\/figure>\n<figure class=\"full-width\">\n<div><figcaption>\u0418\u043c\u043f\u0443\u043b\u044c\u0441\u044b \u0437\u0430\u043a\u0430\u043d\u0447\u0438\u0432\u0430\u044e\u0442\u0441\u044f. \u041f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u043f\u043e\u0441\u043b\u0435 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u043f\u0435\u0440\u0438\u043e\u0434\u0430 \u0432 \u043a\u043e\u043d\u0446\u0435 \u043d\u0435 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u043e \u043e\u0436\u0438\u0434\u0430\u043d\u0438\u0435, \u0447\u0430\u0441\u0442\u043e\u0442\u0430 \u0432\u044b\u0448\u043b\u0430 \u0447\u0443\u0442\u044c \u0431\u043e\u043b\u044c\u0448\u0435 \u0440\u0430\u0441\u0447\u0451\u0442\u043d\u043e\u0439 (\u043d\u0435 \u043f\u0440\u043e\u0448\u043b\u043e \u043e\u0434\u043d\u043e\u0433\u043e \u043f\u043e\u043b\u043d\u043e\u0433\u043e \u043f\u0435\u0440\u0438\u043e\u0434\u0430 \u0441 \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0439 \u0447\u0430\u0441\u0442\u043e\u0442\u043e\u0439).<\/figcaption><\/div>\n<\/figure>\n<p>\u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c, \u043c\u044b \u0443\u0431\u0435\u0434\u0438\u043b\u0438\u0441\u044c, \u0447\u0442\u043e \u00ab\u0442\u0430\u0439\u043c\u0435\u0440\u00bb \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442. \u0415\u0433\u043e \u043c\u043e\u0436\u043d\u043e \u0432\u043a\u043b\u044e\u0447\u0430\u0442\u044c \u0438 \u0432\u044b\u043a\u043b\u044e\u0447\u0430\u0442\u044c, \u0430 \u0442\u0430\u043a\u0436\u0435 \u043d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0442\u044c \u0447\u0430\u0441\u0442\u043e\u0442\u0443 \u043f\u0440\u044f\u043c\u043e \u0432 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0435 \u0440\u0430\u0431\u043e\u0442\u044b.<\/p>\n<h3>\u0421\u043f\u043e\u0441\u043e\u0431 \u21162 \u2014 \u0421 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u043e\u043c DMA<\/h3>\n<p>\u041f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u043d\u044b\u0439 \u0432\u044b\u0448\u0435 \u0441\u043f\u043e\u0441\u043e\u0431 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u043e\u0434\u0438\u043d \u043d\u0435\u0434\u043e\u0441\u0442\u0430\u0442\u043e\u043a. \u041f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u043d\u043e\u0432\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u043a\u043b\u0430\u0434\u0443\u0442\u0441\u044f \u0432 \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u0438, \u0440\u0435\u0430\u043b\u044c\u043d\u044b\u0439 \u043f\u0435\u0440\u0438\u043e\u0434 \u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u044f \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u0439 \u0431\u043e\u043b\u044c\u0448\u0435, \u0447\u0435\u043c \u0440\u0430\u0441\u0447\u0451\u0442\u043d\u044b\u0439. \u042d\u0442\u043e \u043e\u0431\u0443\u0441\u043b\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0437\u0430\u0434\u0435\u0440\u0436\u043a\u043e\u0439 \u0437\u0430\u043f\u0438\u0441\u0438 \u043d\u043e\u0432\u043e\u0433\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f. \u0414\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e, \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0443 \u043d\u0443\u0436\u043d\u043e \u043a\u0430\u043a \u043c\u0438\u043d\u0438\u043c\u0443\u043c 12 \u0442\u0430\u043a\u0442\u043e\u0432 \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u043e\u0439 \u0447\u0430\u0441\u0442\u043e\u0442\u044b \u0434\u043b\u044f \u0443\u0445\u043e\u0434\u0430 \u0432 \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u0435, \u043f\u043b\u044e\u0441 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0442\u0430\u043a\u0442\u043e\u0432 \u043d\u0430 \u0432\u0435\u0442\u0432\u043b\u0435\u043d\u0438\u0435 \u0438 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0443 \u0444\u043b\u0430\u0433\u0430. \u0414\u043e\u0431\u0430\u0432\u0438\u043c \u043a \u044d\u0442\u043e\u043c\u0443 \u0434\u0432\u0430 \u0446\u0438\u043a\u043b\u0430 \u043e\u0436\u0438\u0434\u0430\u043d\u0438\u044f \u0444\u043b\u044d\u0448-\u043f\u0430\u043c\u044f\u0442\u0438 \u043f\u0440\u0438 \u0440\u0430\u0431\u043e\u0442\u0435 \u043d\u0430 \u0447\u0430\u0441\u0442\u043e\u0442\u0435 72 \u041c\u0413\u0446, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0441\u043a\u0430\u0437\u044b\u0432\u0430\u044e\u0442\u0441\u044f \u0438 \u043f\u0440\u0438 \u0447\u0442\u0435\u043d\u0438\u0438 \u0432\u0435\u043a\u0442\u043e\u0440\u0430 \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u044f, \u0438 \u043f\u0440\u0438 \u0438\u0441\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0438 \u043a\u043e\u0434\u0430.<\/p>\n<p>\u041f\u043e\u043f\u0440\u043e\u0431\u0443\u0435\u043c \u0438\u0437\u0431\u0430\u0432\u0438\u0442\u044c\u0441\u044f \u043e\u0442 \u044d\u0442\u0438\u0445 \u043d\u0435\u0434\u043e\u0441\u0442\u0430\u0442\u043a\u043e\u0432 \u043f\u0440\u0438 \u043f\u043e\u043c\u043e\u0449\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0430 DMA.<\/p>\n<p>\u041a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440 DMA \u0442\u0430\u043a\u0436\u0435 \u0434\u0430\u0451\u0442 \u043e\u0434\u043d\u043e \u0432\u0430\u0436\u043d\u043e\u0435 \u043f\u0440\u0435\u0438\u043c\u0443\u0449\u0435\u0441\u0442\u0432\u043e\u00a0\u2014 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0441\u043d\u0438\u0437\u0438\u0442\u044c \u0447\u0430\u0441\u0442\u043e\u0442\u0443 \u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u044f \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u0439. \u041f\u043e \u0444\u043e\u0440\u043c\u0443\u043b\u0435, \u043f\u0440\u0438\u0432\u0435\u0434\u0451\u043d\u043d\u043e\u0439 \u0432\u044b\u0448\u0435, \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u0430\u044f \u0447\u0430\u0441\u0442\u043e\u0442\u0430 \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u0439 \u0441\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442<\/p>\n<p>\u043f\u0440\u0438 \u0443\u0441\u043b\u043e\u0432\u0438\u0438, \u0447\u0442\u043e \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a \u0442\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043d\u0435 \u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f. \u0414\u0430, \u043c\u043e\u0436\u043d\u043e \u043f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0438\u0442\u044c\u0441\u044f \u043d\u0430 LSE, \u043d\u043e \u0447\u0430\u0441\u043e\u0432\u043e\u0439 \u043a\u0432\u0430\u0440\u0446 \u043d\u0435 \u0432\u0435\u0437\u0434\u0435 \u0441\u0442\u043e\u0438\u0442. DMA \u0436\u0435 \u043c\u043e\u0436\u0435\u0442 \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u0442\u044c \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u0435 \u0432  \u0440\u0430\u0437 \u0440\u0435\u0436\u0435, \u0433\u0434\u0435  \u043c\u043e\u0436\u0435\u0442 \u0434\u043e\u0445\u043e\u0434\u0438\u0442\u044c \u0434\u043e .<\/p>\n<p>\u0418\u0437\u043c\u0435\u043d\u0438\u043c \u043d\u0430\u0448 \u043a\u043e\u0434. \u0414\u043b\u044f \u043d\u0430\u0447\u0430\u043b\u0430 \u0434\u043e\u0431\u0430\u0432\u0438\u043c \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u0442\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0430 DMA:<\/p>\n<pre><code class=\"cpp\">void init_clocks() { RCC-&gt;AHBENR |= RCC_AHBENR_GPIOAEN | RCC_AHBENR_DMA1EN; RCC-&gt;APB2ENR |= RCC_APB2ENR_USART1EN; }<\/code><\/pre>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u0438\u0437\u043c\u0435\u043d\u0438\u043c \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044e UART. \u0423\u0431\u0435\u0440\u0451\u043c \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u044f \u0438 \u0434\u043e\u0431\u0430\u0432\u0438\u043c \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u043e\u043c DMA:<\/p>\n<pre><code class=\"cpp\">\/\/9 \u0431\u0438\u0442 \u0434\u0430\u043d\u043d\u044b\u0445 \u0432 \u043a\u0430\u0434\u0440\u0435 (\u043c\u0430\u043a\u0441\u0438\u043c\u0443\u043c) USART1-&gt;CR1 |= USART_CR1_M0; \/\/2 \u0441\u0442\u043e\u043f\u043e\u0432\u044b\u0445 \u0431\u0438\u0442\u0430 \u0432 \u043a\u0430\u0434\u0440\u0435 (\u043c\u0430\u043a\u0441\u0438\u043c\u0443\u043c) USART1-&gt;CR2 |= USART_CR2_STOP_1; \/\/\u0432\u043a\u043b\u044e\u0447\u0430\u0435\u043c DMA \u043d\u0430 \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0443 USART1-&gt;CR3 |= USART_CR3_DMAT; \/\/\u0432\u043a\u043b\u044e\u0447\u0430\u0435\u043c UART (\u043d\u043e \u043d\u0435 \u0432\u043a\u043b\u044e\u0447\u0430\u0435\u043c \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0443) USART1-&gt;CR1 |= USART_CR1_UE;  \/\/\u0441\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u043d\u0438\u0435 \/\/6000000 \/ 1000 = 6000 \u0440\u0430\u0437 \u0432 \u0441\u0435\u043a\u0443\u043d\u0434\u0443 \/\/\u043f\u0435\u0440\u0438\u043e\u0434 166.(6) \u043c\u043a\u0441 USART1-&gt;BRR = 1000;<\/code><\/pre>\n<p>\u041f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0432 reference manual&#8217;\u0435, \u043a\u0430\u043a\u043e\u0439 \u043a\u0430\u043d\u0430\u043b \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0430 DMA \u043c\u043e\u0436\u0435\u0442 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u043d\u0430 \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0443 USART1:<\/p>\n<figure class=\"full-width\">\n<div><figcaption>\u041d\u0430\u043c \u043f\u043e\u0434\u0445\u043e\u0434\u0438\u0442 4-\u044b\u0439 \u043a\u0430\u043d\u0430\u043b.<\/figcaption><\/div>\n<\/figure>\n<p>\u041d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u043c \u0435\u0433\u043e. \u0414\u043b\u044f \u043d\u0430\u0447\u0430\u043b\u0430 \u0437\u0430\u0432\u0435\u0434\u0451\u043c \u0433\u043b\u043e\u0431\u0430\u043b\u044c\u043d\u0443\u044e <\/p>\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-444139","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/444139","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=444139"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/444139\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=444139"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=444139"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=444139"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}