{"id":1,"date":"2026-03-16T17:06:39","date_gmt":"2026-03-16T09:06:39","guid":{"rendered":"http:\/\/150.158.139.84\/?p=1"},"modified":"2026-03-18T15:08:39","modified_gmt":"2026-03-18T07:08:39","slug":"first-test","status":"publish","type":"post","link":"https:\/\/blog.echoxx.tech\/index.php\/2026\/03\/16\/first-test\/","title":{"rendered":"\u84dd\u6865\u676f\u5d4c\u5165\u5f0f\u7701\u8d5b\u5feb\u901f\u5165\u95e8\u6559\u7a0b"},"content":{"rendered":"\n<h1 class=\"wp-block-heading\">00.\u65b0\u5efa\u5de5\u7a0b(CubeMX)<\/h1>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='http:\/\/150.158.139.84\/wp-content\/uploads\/2026\/03\/image-1024x558.png'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"558\" data-original=\"http:\/\/150.158.139.84\/wp-content\/uploads\/2026\/03\/image-1024x558.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"\" class=\"wp-image-135\" style=\"aspect-ratio:1.835188093124872;width:449px;height:auto\"  sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/div><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='http:\/\/150.158.139.84\/wp-content\/uploads\/2026\/03\/image-1.png'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  decoding=\"async\" data-original=\"http:\/\/150.158.139.84\/wp-content\/uploads\/2026\/03\/image-1.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"\" style=\"aspect-ratio:2.664816099930604;width:603px;height:auto\"\/><\/div><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='http:\/\/150.158.139.84\/wp-content\/uploads\/2026\/03\/image-2.png'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  decoding=\"async\" data-original=\"http:\/\/150.158.139.84\/wp-content\/uploads\/2026\/03\/image-2.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"\" style=\"aspect-ratio:2.3059106116496526;width:593px;height:auto\"\/><\/div><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">1.Debug\u914d\u7f6e<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\u70b9\u51fb\u9b54\u672f\u68d2\uff0cdebug\u6539\u4e3acmsis\uff0csetting\u91cc\u8bbe\u7f6ereset and run\u3002<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">2.\u6587\u4ef6\u76ee\u5f55\u914d\u7f6e<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\u65b0\u5efacode\u6587\u4ef6\uff0c\u5b58\u653e\u81ea\u5df1\u7684\u4ee3\u7801\uff1b\u7136\u540e\u5728keil\u5185\u65b0\u5efacode\u6587\u4ef6\u5939<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='http:\/\/150.158.139.84\/wp-content\/uploads\/2026\/03\/image-3.png'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  decoding=\"async\" data-original=\"http:\/\/150.158.139.84\/wp-content\/uploads\/2026\/03\/image-3.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"\" style=\"width:367px;height:auto\"\/><\/div><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='http:\/\/150.158.139.84\/wp-content\/uploads\/2026\/03\/image-4.png'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  decoding=\"async\" data-original=\"http:\/\/150.158.139.84\/wp-content\/uploads\/2026\/03\/image-4.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"\" style=\"aspect-ratio:1.3372469031391474;width:451px;height:auto\"\/><\/div><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">\u5728\u9b54\u672f\u68d2\u5185\u6dfb\u52a0code\u6587\u4ef6\u8def\u5f84\u8def\u5f84<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='http:\/\/150.158.139.84\/wp-content\/uploads\/2026\/03\/image-5.png'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  decoding=\"async\" data-original=\"http:\/\/150.158.139.84\/wp-content\/uploads\/2026\/03\/image-5.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"\" style=\"aspect-ratio:1.7460214355310166;width:517px;height:auto\"\/><\/div><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='http:\/\/150.158.139.84\/wp-content\/uploads\/2026\/03\/image-6.png'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  decoding=\"async\" data-original=\"http:\/\/150.158.139.84\/wp-content\/uploads\/2026\/03\/image-6.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"\" style=\"aspect-ratio:1.3277024523968288;width:528px;height:auto\"\/><\/div><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">\u5728code\u5185\u65b0\u5efa\u6587\u4ef6\uff0c\u6ce8\u610f\uff1a\u65b0\u5efa\u6587\u4ef6\u65f6\u4e0d\u8981\u5fd8\u8bb0\u9009\u62e9\u4fdd\u5b58\u8def\u5f84\u5728code\u5185\uff01\uff01\uff01<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='http:\/\/150.158.139.84\/wp-content\/uploads\/2026\/03\/image-7.png'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  decoding=\"async\" data-original=\"http:\/\/150.158.139.84\/wp-content\/uploads\/2026\/03\/image-7.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"\" style=\"aspect-ratio:1.5283147600636797;width:484px;height:auto\"\/><\/div><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">\u65b0\u5efaheadfile.h\u6587\u4ef6\uff0c\u6dfb\u52a0\u6807\u51c6\u5934\u6587\u4ef6<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>#include \"stm32g4xx.h\"\n#include &lt;stdio.h&gt;\n#include &lt;string.h&gt;\n#include &lt;stdint.h&gt;<\/code><\/pre>\n\n\n\n<h1 class=\"wp-block-heading\">01.LED<\/h1>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='http:\/\/150.158.139.84\/wp-content\/uploads\/2026\/03\/image-8.png'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  decoding=\"async\" data-original=\"http:\/\/150.158.139.84\/wp-content\/uploads\/2026\/03\/image-8.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"\" style=\"aspect-ratio:1.7492028372486497;width:550px;height:auto\"\/><\/div><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">\u539f\u7406\u56fe<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\u9501\u5b58\u5668\u5f53PD2\u4e3a\u9ad8\u7535\u5e73\u65f6\u6570\u636e\u624d\u4f1a\u5f00\u542f\u4f20\u9001\uff0cPC8-PC15\u7f6e\u4f4e\u7535\u5e73\u7684\u65f6\u5019LED\u4eae<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u7b2c\u4e00\u6b65\u5148\u628aPD2\u7f6e\u4e3a\u9ad8\u7535\u5e73<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u7b2c\u4e8c\u6b65\u628aLED\u7f6e\u4e3a\u4f4e\u7535\u5e73<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u7b2c\u4e09\u6b65\u628aPD2\u7f6e\u4e3a\u4f4e\u7535\u5e73 \u4e00\u5b9a\u8981\u7f6e\u4e3a\u4f4e\u7535\u5e73<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">IO\u914d\u7f6e<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">PC8~PC15\u4ee5\u53caPD2\u90fd\u914d\u7f6e\u4e3a\u9ad8\u7535\u5e73\uff0c\u8ba9LED\u4e0a\u7535\u7684\u65f6\u5019\u4e3a\u9ad8\u7535\u5e73\uff0c\u9ed8\u8ba4\u7184\u706d\uff1b<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><em><strong>\u6ce8\u610f\uff01\uff01\uff01<\/strong><\/em><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">PD2\u5f00\u59cb\u5fc5\u987b\u7f6e\u4e3a\u9ad8\u7535\u5e73\u624d\u80fd\u5199\u5165\uff01\uff01\uff01\uff0c\u56e0\u4e3a\u63a5\u5165\u9501\u5b58\u5668\u9501\u5b9a\u72b6\u6001\uff1b<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u5199\u5165\u7ed3\u675fPD2\u5fc5\u987b\u7f6e\u4e3a\u4f4e\u7535\u5e73\uff01\uff01\uff01<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>void led_on(void)\n{\n        \/\/ PD2\u5f00\u59cb\u5fc5\u987b\u7f6e\u4e3a\u9ad8\u7535\u5e73\u624d\u80fd\u5199\u5165\uff0c\u56e0\u4e3a\u63a5\u5165\u9501\u5b58\u5668\u9501\u5b9a\u72b6\u6001\n        HAL_GPIO_WritePin(GPIOD, GPIO_PIN_2, GPIO_PIN_SET);\n        \n        HAL_GPIO_WritePin(GPIOC, GPIO_PIN_8, GPIO_PIN_RESET);\n        \n        \/\/ \u5199\u5165\u7ed3\u675fPD2\u5fc5\u987b\u7f6e\u4e3a\u4f4e\u7535\u5e73\uff01\uff01\uff01\n        HAL_GPIO_WritePin(GPIOD, GPIO_PIN_2, GPIO_PIN_RESET);\n}<\/code><\/pre>\n\n\n\n<h1 class=\"wp-block-heading\">02.\u6309\u952e<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">\u6309\u952e\u9700\u8981\u914d\u7f6e\u4e3a\u4e0a\u62c9\u8f93\u5165\uff0c\u6ca1\u6709\u6309\u4e0b\u65f6\u8f93\u5165\u9ad8\u7535\u5e73\uff0c\u6309\u4e0b\u65f6\u8f93\u5165\u4f4e\u7535\u5e73\uff1b<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>uint8_t key1, key2, key3, key4;\nuint8_t key1_state = 0, key2_state = 0, key3_state = 0, key4_state = 0; \nvoid key_scan(void)\n{\n        key1 = HAL_GPIO_ReadPin(GPIOB, GPIO_PIN_0);\n        key2 = HAL_GPIO_ReadPin(GPIOB, GPIO_PIN_1);\n        key3 = HAL_GPIO_ReadPin(GPIOB, GPIO_PIN_2);\n        key4 = HAL_GPIO_ReadPin(GPIOA, GPIO_PIN_0);\n        \n        if (key1 == 0)\n        {\n                HAL_Delay(10);\n                while(HAL_GPIO_ReadPin(GPIOB, GPIO_PIN_0) == 0);\n                key1_state = !key1_state;\n                led_on(1, key1_state);\n                led_on(2, key1_state);\n        }\n        \n        if (key2 == 0)\n        {\n                HAL_Delay(10);\n                while(HAL_GPIO_ReadPin(GPIOB, GPIO_PIN_1) == 0);\n                key2_state = !key2_state;\n                led_on(3, key2_state);\n                led_on(4, key2_state);\n        }\n        \n        if (key3 == 0)\n        {\n                HAL_Delay(10);\n                while(HAL_GPIO_ReadPin(GPIOB, GPIO_PIN_2) == 0);\n                key3_state = !key3_state;\n                led_on(5, key3_state);\n                led_on(6, key3_state);\n        }\n        \n        if (key4 == 0)\n        {\n                HAL_Delay(10);\n                while(HAL_GPIO_ReadPin(GPIOA, GPIO_PIN_0) == 0);\n                key4_state = !key4_state;\n                led_on(7, key4_state);\n                led_on(8, key4_state);\n        }\n}<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">\u6309\u952e\u957f\u77ed\u6309\u51fd\u6570<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>\/\/ \u6309\u952e\u957f\u6309\u77ed\u6309\nuint8_t key1_state, key2_state, key3_state, key4_state;\nuint8_t key1_last_state = 1, key2_last_state = 1, key3_last_state = 1, key4_last_state = 1;\nint16_t count = 0;\nuint8_t led_mode;\nuint8_t lcd_highshow = 0;\n\nvoid key_scan(void)\n{\n        key1_state = HAL_GPIO_ReadPin(GPIOB, GPIO_PIN_0);\n        key2_state = HAL_GPIO_ReadPin(GPIOB, GPIO_PIN_1);\n        key3_state = HAL_GPIO_ReadPin(GPIOB, GPIO_PIN_2);\n        key4_state = HAL_GPIO_ReadPin(GPIOA, GPIO_PIN_0);\n        \n        \/\/ \u6309\u4e0b\u77ac\u95f4\n        if (key1_state == 0 &amp;&amp; key1_last_state == 1)        \/\/ \u6309\u952e\u6309\u4e0b\n        {\n                TIM3-&gt;CNT = 0;\n        }\n        \/\/ \u4e00\u76f4\u6309\n        else if (key1_state == 0 &amp;&amp; key1_last_state == 0)\n        {\n                if (TIM3-&gt;CNT &gt;= 10000)\n                {\n                        count+=1;\n                        HAL_Delay(200);\n                }\n        }\n        else if (key1_state == 1 &amp;&amp; key1_last_state == 0) \/\/ \u677e\u5f00\n        {\n                if (TIM3-&gt;CNT &lt; 10000)\n                {\n                        count-=1;\n                }\n        }\n\n        \n        if(key2_state == 0 &amp;&amp; key2_last_state == 1)  \/\/ \u6309\u952eB2\u6309\u4e0b\n        {\n                TIM3-&gt;CNT = 0;\n        }\n        else if(key2_state == 0 &amp;&amp; key2_last_state == 0)  \/\/ \u6309\u952eB2\u4e00\u76f4\u6309\u7740\n        {\n                if(TIM3-&gt;CNT &gt;= 10000)   \/\/\u6309\u952eB2\u957f\u63091s\n                {\n                        count+=1;\n                        HAL_Delay(200);\n                }\n        }\n        else if(key2_state == 1 &amp;&amp; key2_last_state == 0)  \/\/ \u6309\u952eB2\u677e\u5f00\n        {\n                if(TIM3-&gt;CNT &lt; 10000)    \/\/\u6309\u952eB2\u77ed\u6309\n                {\n                        count-=1;\n                }\n        }\n        \n        \/\/ \u6309\u4e0b\u77ac\u95f4\n        if (key3_state == 0 &amp;&amp; key3_last_state == 1)        \/\/ \u6309\u952e\u6309\u4e0b\n        {\n                TIM3-&gt;CNT = 0;\n        }\n        \/\/ \u4e00\u76f4\u6309\n        else if (key3_state == 0 &amp;&amp; key3_last_state == 0)\n        {\n                if (TIM3-&gt;CNT &gt;= 10000)\n                {\n                        count+=1;\n                        HAL_Delay(200);\n                }\n        }\n        else if (key3_state == 1 &amp;&amp; key3_last_state == 0) \/\/ \u677e\u5f00\n        {\n                if (TIM3-&gt;CNT &lt; 10000)\n                {\n                        count-=1;\n                }\n        }\n        \n        \/\/ \u6309\u4e0b\u77ac\u95f4\n        if (key4_state == 0 &amp;&amp; key4_last_state == 1)        \/\/ \u6309\u952e\u6309\u4e0b\n        {\n                TIM3-&gt;CNT = 0;\n        }\n        \/\/ \u4e00\u76f4\u6309\n        else if (key4_state == 0 &amp;&amp; key4_last_state == 0)\n        {\n                if (TIM3-&gt;CNT &gt;= 10000)\n                {\n                        lcd_highshow+=1;\n                        HAL_Delay(200);\n                }\n        }\n        else if (key4_state == 1 &amp;&amp; key4_last_state == 0) \/\/ \u677e\u5f00\n        {\n                if (TIM3-&gt;CNT &lt; 10000)\n                {\n                        count-=1;\n                }\n        }\n        \n        key1_last_state = key1_state;\n        key2_last_state = key2_state;\n        key3_last_state = key3_state;\n        key4_last_state = key4_state;\n}<\/code><\/pre>\n\n\n\n<h1 class=\"wp-block-heading\">03.LCD<\/h1>\n\n\n\n<h2 class=\"wp-block-heading\">\u89e3\u51b3LCD\u4e0eLED\u5f15\u811a\u51b2\u7a81\u95ee\u9898<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\u9996\u5148\u5728<code>LCD_Init();<\/code>\u524d\u52a0\u4e0a<code>HAL_GPIO_WritePin(GPIOD, GPIO_PIN_2, GPIO_PIN_RESET);<\/code><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u5728\u4f7f\u7528\u7684LCD\u663e\u793a\u51fd\u6570\u524d\u52a0\u4e0a<code>uint16_t temp = GPIOx-&gt;ODR<\/code>\uff0c\u5982\u5728<code>LCD_Init();<\/code>\u91cc\u548c<code>LCD_Clear(Black);<\/code>\uff0c\u6700\u540e\u8bfb\u53d6\u539f\u72b6\u6001\uff0c\u5982\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>void LCD_Init(void)\n{\n    uint16_t temp = GPIOC-&gt;ODR;\n    LCD_CtrlLinesConfig();\n    dummy = LCD_ReadReg(0);\n\n    if(dummy == 0x8230)\n    {\n        REG_8230_Init();\n    }\n    else\n    {\n        REG_932X_Init();\n    }\n    dummy = LCD_ReadReg(0);\n    GPIOC-&gt;ODR = temp;\n}<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>void LCD_Clear(u16 Color)\n{\n    uint16_t temp = GPIOC-&gt;ODR;\n    u32 index = 0;\n    LCD_SetCursor(0x00, 0x0000);\n    LCD_WriteRAM_Prepare(); \/* Prepare to write GRAM *\/\n    for(index = 0; index &lt; 76800; index++)\n    {\n        LCD_WriteRAM(Color);\n    }\n        GPIOC-&gt;ODR = temp;\n}<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>void LCD_DisplayStringLine(u8 Line, u8 *ptr)\n{\n        uint16_t temp = GPIOC-&gt;ODR;\n    u32 i = 0;\n    u16 refcolumn = 319;\/\/319;\n\n    while ((*ptr != 0) &amp;&amp; (i &lt; 20))         \/\/        20\n    {\n        LCD_DisplayChar(Line, refcolumn, *ptr);\n        refcolumn -= 16;\n        ptr++;\n        i++;\n    }\n        \n        GPIOC-&gt;ODR = temp;\n}<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">LCD\u9ad8\u4eae\u663e\u793a<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\u9700\u8981\u54ea\u884c\u9ad8\u4eae\u5c31\u5148\u4f7f\u7528<code>LCD_SetBackColor();<\/code>\u8bbe\u7f6e\u4e3a\u9ad8\u4eae\u989c\u8272\uff0c\u6700\u540e\u8bbe\u7f6e\u4e3a\u521d\u59cb\u5316\u989c\u8272\uff1b<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>char text&#91;20];\nvoid lcd_show()\n{\n        sprintf(text, \"         TEST      \");\n        LCD_DisplayStringLine(Line0, (uint8_t *)text);\n        lcd_highshow %= 3;\n        switch (lcd_highshow)\n        {\n                case 0:\n                                LCD_SetBackColor(Yellow);\n                                sprintf(text, \"         CNT: %d      \", count);\n                                LCD_DisplayStringLine(Line1, (uint8_t *)text);\n                                LCD_SetBackColor(Black);\n                \n                                sprintf(text, \"         hello1      \");\n                                LCD_DisplayStringLine(Line2, (uint8_t *)text);\n                \n                                sprintf(text, \"         hello2      \");\n                                LCD_DisplayStringLine(Line3, (uint8_t *)text);\n                        break;\n                \n                case 1:\n                                sprintf(text, \"         CNT: %d      \", count);\n                                LCD_DisplayStringLine(Line1, (uint8_t *)text);\n                                \n                                LCD_SetBackColor(Yellow);\n                                sprintf(text, \"         hello1      \");\n                                LCD_DisplayStringLine(Line2, (uint8_t *)text);\n                                LCD_SetBackColor(Black);\n                \n                                sprintf(text, \"         hello2      \");\n                                LCD_DisplayStringLine(Line3, (uint8_t *)text);\n                        break;\n                                \n                case 2:\n                                sprintf(text, \"         CNT: %d      \", count);\n                                LCD_DisplayStringLine(Line1, (uint8_t *)text);\n                \n                                sprintf(text, \"         hello1      \");\n                                LCD_DisplayStringLine(Line2, (uint8_t *)text);\n                \n                                LCD_SetBackColor(Yellow);\n                                sprintf(text, \"         hello2      \");\n                                LCD_DisplayStringLine(Line3, (uint8_t *)text);\n                                LCD_SetBackColor(Black);\n                        break;\n        }\n}<\/code><\/pre>\n\n\n\n<h1 class=\"wp-block-heading\">04.PWM<\/h1>\n\n\n\n<h2 class=\"wp-block-heading\">PWM\u8f93\u51fa<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u8ba1\u7b97\u516c\u5f0f<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='http:\/\/150.158.139.84\/wp-content\/uploads\/2026\/03\/image-9.png'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  decoding=\"async\" data-original=\"http:\/\/150.158.139.84\/wp-content\/uploads\/2026\/03\/image-9.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"\" style=\"aspect-ratio:2.0322836729293465;width:456px;height:auto\"\/><\/div><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">\u8f93\u51fa1000HZ\uff0c\u5219PSC=800-1\uff0cARR=100-1\uff1b80000000\/(800*100)=1000;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u9996\u5148\u4f7f\u7528<code>HAL_TIM_PWM_Start(TIM_HandleTypeDef *htim, uint32_t Channel);<\/code>\u4f7f\u80fdTIM\u7684pwm\u8f93\u51fa\u529f\u80fd<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='http:\/\/150.158.139.84\/wp-content\/uploads\/2026\/03\/image-10.png'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  decoding=\"async\" data-original=\"http:\/\/150.158.139.84\/wp-content\/uploads\/2026\/03\/image-10.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"\" style=\"aspect-ratio:4.453280318091451;width:592px;height:auto\"\/><\/div><\/figure>\n\n\n\n<pre class=\"wp-block-code\"><code>HAL_TIM_PWM_Start(&amp;htim2, TIM_CHANNEL_2);\nTIM2-&gt;CCR2 = 50;\n\/\/ CCRx\uff1ax\u4e3a\u901a\u9053\u53f7<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">\u8f93\u5165\u6355\u83b7<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\u5728\u6ce2\u5f62\u4e0a\u5347\u6cbf\/\u4e0b\u964d\u6cbf\u4ea7\u751f\u4e00\u4e2a\u4e2d\u65ad<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u7b2c\u4e00\u4e2a\u4e0a\u5347\u6cbf<code>TIMx-&gt;CNT = 0<\/code>;\u4e0b\u4e00\u4e2a\u4e0a\u5347\u6cbf\u65f6<code>uint16_t capture value = TIMx-&gt;CNT<\/code>;\u5373\u53ef\u7b97\u51fa\u5468\u671fT<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='http:\/\/150.158.139.84\/wp-content\/uploads\/2026\/03\/image-11.png'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  decoding=\"async\" data-original=\"http:\/\/150.158.139.84\/wp-content\/uploads\/2026\/03\/image-11.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"\" style=\"aspect-ratio:2.3489317079564818;width:413px;height:auto\"\/><\/div><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='http:\/\/150.158.139.84\/wp-content\/uploads\/2026\/03\/image-12.png'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  decoding=\"async\" data-original=\"http:\/\/150.158.139.84\/wp-content\/uploads\/2026\/03\/image-12.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"\" style=\"width:400px;height:auto\"\/><\/div><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>PSC\u8bbe\u7f6e\u4e3a80-1\uff0c<\/strong>\u80fd\u83b7\u5f97\u66f4\u5927\u7684\u8ba1\u6570\uff1b<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u521d\u59cb\u5316\u4f7f\u80fd<code>HAL_TIM_IC_Start_IT(&amp;htimx, TIM_CHANNEL_x);<\/code><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u4f7f\u7528\u81ea\u5b9a\u4e49\u6d4b\u91cf\u5f15\u811a\u6d4b\u91cf\u8f93\u51fa\u7684PWM\u9891\u7387(PA7\u6d4b\u91cfPA1)<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u914d\u7f6ePA7\u4e3a\u8f93\u5165\u6355\u83b7\uff0cPSC=80-1\uff0c\u4f7f\u80fd\u4e2d\u65ad\uff1b<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>void HAL_TIM_IC_CaptureCallback(TIM_HandleTypeDef *htim)\n{\n    if(htim-&gt;Instance == TIM17)\n    {\n        capture_value = TIM17-&gt;CCR1;\n        \/\/capture_value = HAL_TIM_ReadCapturedValue(htim, TIM_CHANNEL_1);  \/\/\u5728\u6355\u83b7\u5230\u4e0a\u5347\u6cbf\u65f6\uff0c\u4f1a\u5c06CNT\u8d4b\u503c\u7ed9CCR \uff0c\u53ef\u5199\u6210capture_value = TIM17-&gt;CCR1;\n        TIM17-&gt;CNT = 0;\n        fre = 80000000\/(80*capture_value);\n    }\n}<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">\u4f7f\u7528\u539f\u7406\u56fe\u6307\u5b9a\u5f15\u811a\u6d4b\u91cf555\u5b9a\u65f6\u5668\u8f93\u51faPWM\u9891\u7387<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">XL555(555\u5b9a\u65f6\u5668)\u53ef\u8f93\u51fa\u4e00\u4e2a\u9891\u7387\u53ef\u8c03\u7684PWM\u6ce2\u9891\u7387\u53ef\u901a\u8fc7<code>R39<\/code>\u3001<code>R40<\/code>\u7b49\u7535\u4f4d\u5668\u8c03\u6574\uff1b\u53ef\u4ee5\u914d\u7f6e<code>PA15<\/code>\u6216\u8005<code>PB4<\/code>\u8fdb\u884c\u8f93\u5165\u6355\u83b7\u6d4b\u91cf<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='http:\/\/150.158.139.84\/wp-content\/uploads\/2026\/03\/image-13.png'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  decoding=\"async\" data-original=\"http:\/\/150.158.139.84\/wp-content\/uploads\/2026\/03\/image-13.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"\" style=\"aspect-ratio:2.04364023416711;width:438px;height:auto\"\/><\/div><\/figure>\n\n\n\n<pre class=\"wp-block-code\"><code>    LCD_Init();\n    LCD_Clear(Black);\n    LCD_SetBackColor(Black);\n    LCD_SetTextColor(White);\n    \n    HAL_TIM_IC_Start_IT(&amp;htim2, TIM_CHANNEL_1);\n    HAL_TIM_IC_Start_IT(&amp;htim16, TIM_CHANNEL_1);<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>void HAL_TIM_IC_CaptureCallback(TIM_HandleTypeDef *htim)\n{ \n    if(htim-&gt;Instance == TIM16) \/\/\u9891\u7387\u8f93\u51fa1 R39\n    {\n        \/\/\u5728\u6355\u83b7\u5230\u4e0a\u5347\u6cbf\u65f6\uff0c\u4f1a\u5c06CNT\u8d4b\u503c\u7ed9CCR \n        capture_value1 = TIM16-&gt;CCR1;\n        \/\/capture_value1 = HAL_TIM_ReadCapturedValue(htim, TIM_CHANNEL_1);  \n        \n        TIM16-&gt;CNT = 0;\n        fre1 = 80000000\/(80*capture_value1);\n    }\n    \n    if(htim-&gt;Instance == TIM2) \/\/\u9891\u7387\u8f93\u51fa2 R40\n    {\n        \/\/\u5728\u6355\u83b7\u5230\u4e0a\u5347\u6cbf\u65f6\uff0c\u4f1a\u5c06CNT\u8d4b\u503c\u7ed9CCR \n        capture_value2 = TIM2-&gt;CCR1;\n        \/\/capture_value2 = HAL_TIM_ReadCapturedValue(htim, TIM_CHANNEL_1);\n        \n        TIM2-&gt;CNT = 0;\n        fre2 = 80000000\/(80*capture_value2);\n    }\n}<\/code><\/pre>\n\n\n\n<h1 class=\"wp-block-heading\">05.ADC\u6d4b\u91cf<\/h1>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='http:\/\/150.158.139.84\/wp-content\/uploads\/2026\/03\/image-14.png'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  decoding=\"async\" data-original=\"http:\/\/150.158.139.84\/wp-content\/uploads\/2026\/03\/image-14.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"\" style=\"aspect-ratio:2.5721257356107365;width:469px;height:auto\"\/><\/div><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><code>PB15<\/code>\u3001<code>PB12<\/code>\u5f15\u811a\u914d\u7f6e\u4e3aADC\u8f93\u5165\u6a21\u5f0f\uff0c\u6d4b\u91cf\u65cb\u8f6c<code>R37<\/code>\u3001<code>R38<\/code>\u7535\u4f4d\u5668\u53d8\u5316\u7684\u7535\u538b\u503c<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='http:\/\/150.158.139.84\/wp-content\/uploads\/2026\/03\/image-15.png'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  decoding=\"async\" data-original=\"http:\/\/150.158.139.84\/wp-content\/uploads\/2026\/03\/image-15.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"\" style=\"width:389px;height:auto\"\/><\/div><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='http:\/\/150.158.139.84\/wp-content\/uploads\/2026\/03\/image-16.png'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  decoding=\"async\" data-original=\"http:\/\/150.158.139.84\/wp-content\/uploads\/2026\/03\/image-16.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"\" style=\"width:463px;height:auto\"\/><\/div><\/figure>\n\n\n\n<pre class=\"wp-block-code\"><code>double get_vol(ADC_HandleTypeDef *hadc)\n{\n    HAL_ADC_Start(hadc);\/\/ \u4e00\u5b9a\u4e0d\u80fd\u5fd8\u8bb0ADC\u6253\u5f00\u51fd\u6570\uff01\uff01\uff01\uff01\uff01\uff01\uff01\uff01\uff01\uff01\n    uint32_t adc_value = HAL_ADC_GetValue(hadc);\n    return 3.3*adc_value\/4096;\n}<\/code><\/pre>\n\n\n\n<h1 class=\"wp-block-heading\">06.\u4e32\u53e3\u53d1\u9001\u4e0e\u63a5\u6536<\/h1>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='http:\/\/150.158.139.84\/wp-content\/uploads\/2026\/03\/image-17.png'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  decoding=\"async\" data-original=\"http:\/\/150.158.139.84\/wp-content\/uploads\/2026\/03\/image-17.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"\" style=\"width:443px;height:auto\"\/><\/div><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u4f7f\u80fd\u4e2d\u65ad<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='http:\/\/150.158.139.84\/wp-content\/uploads\/2026\/03\/image-18.png'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  decoding=\"async\" data-original=\"http:\/\/150.158.139.84\/wp-content\/uploads\/2026\/03\/image-18.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"\" style=\"width:491px;height:auto\"\/><\/div><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">\u4e32\u53e3\u53d1\u9001<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>char text01&#91;20];\nsprintf(text01, \"Lan Qiao Bei\\r\\n\");\nHAL_UART_Transmit(&amp;huart1, (uint8_t *)text01, sizeof(text01), 50);\/\/ 50\u4e3aTimeout\u65f6\u95f4\nHAL_Delay(1000);<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">\u4e32\u53e3\u63a5\u6536<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">g4\u7684Rx\u5148\u63a5\u6536\u7535\u8111\u53d1\u8fc7\u6765\u7684\u6570\u636e\uff0c\u5b58\u653e\u5230<code>rec_data<\/code>\u4e2d\uff0c\u7136\u540e<code>HAL_UART_Transmit<\/code>\u4f20\u7ed9\u7535\u8111\uff0c\u518d\u4f7f\u7528<code>HAL_UART_Receive_IT<\/code>\u5f00\u542f\u4e0b\u4e00\u6b21\u63a5\u6536<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>HAL_UART_Receive_IT(&amp;huart1, &amp;rec_data, 1);<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>uint8_t rec_data;\n\nvoid HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)\n{\n    if(huart-&gt;Instance == USART1)\n    {\n        HAL_UART_Transmit(huart, &amp;rec_data, 1, 50);\n\n        HAL_UART_Receive_IT(huart, &amp;rec_data, 1);\n    }\n}<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">\u5229\u7528\u5b9a\u65f6\u5668\u8fdb\u884c\u4e32\u53e3\u4e0d\u5b9a\u957f\u6570\u636e\u63a5\u6536<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u4e32\u53e3\u63a5\u6536:<\/strong>\u6bcf\u6b21\u8fdb\u5165\u4e2d\u65ad\u53ea\u80fd\u63a5\u65361\u4e2a\u5b57\u8282\u7684\u6570\u636e\uff1b<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u8003\u8651\u9519\u8bef\u60c5\u51b5\uff1a<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">1.\u6bcf\u6b21\u63a5\u6536\u4e00\u4e2a\u5b57\u8282\u5c31\u8981\u5224\u65ad\u8be5\u5b57\u8282\u662f\u5426\u7b26\u5408\u8981\u6c42\uff08\u975e\u5e38\u590d\u6742\uff09<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">2.\u63a5\u6536\u5b8c\u6240\u6709\u5b57\u7b26,\u5224\u65ad\u5b57\u7b26\u4e32\u662f\u5426\u7b26\u5408\u8981\u6c42<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u89e3\u51b3\u65b9\u6cd5:<\/strong>\u5229\u7528\u5b9a\u65f6\u5668,\u5904\u7406\u4e32\u53e3\u63a5\u6536<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u4e32\u53e3\u6ce2\u7279\u7387 = 9600 bit\/s \u5c31\u662f1s\u53ef\u4ee5\u4f20\u8f939600bit<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u4e32\u53e3\u4f20\u8f93\u4e00\u6b21\u6570\u636e\u5305\u542b\u8d77\u59cb\u4f4d,\u6570\u636e\u4f4d,\u7ed3\u675f\u4f4d,\u4e00\u517110bit<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">10 * 1\/9600 = 0.00104 \u79d2 = 1.04 \u6beb\u79d2<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u6838\u5fc3\u601d\u60f3\uff1a<\/strong>PSC=8000-1\uff0c8000\/80000000=1\/10000,\u5373100us\u8ba1\u6570\u5668\u52a01\uff0c\u8ba1\u6570\u5668\u6570\u523015\uff0c1500us\uff0c1.5ms\uff0c\u5f53\u5b9a\u65f6\u5668\u5927\u4e8e1.5ms\u6ca1\u63a5\u6536\u5230\u6570\u636e\u65f6\u5224\u65ad\u6570\u636e\u63a5\u6536\u5b8c\u6210\u3002<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>HAL_UART_Receive_IT(&amp;huart1, &amp;rec_data, 1);\nHAL_TIM_Base_Start(&amp;htim4);<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>char send_buff&#91;20];\nuint8_t rec_data, count;\nuint8_t rec_flag;\nuint8_t rec_buff&#91;20];\n\nvoid HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)\n{\n    if(huart-&gt;Instance == USART1)\n    {\n        \/\/HAL_UART_Transmit(huart, &amp;rec_data, 1, 50);\n        TIM4-&gt;CNT = 0;\n        rec_flag = 1;\n        rec_buff&#91;count] = rec_data;\n        count++;\n        \/\/ \u51c6\u5907\u4e0b\u4e00\u6b21\u63a5\u6536\n        HAL_UART_Receive_IT(huart, &amp;rec_data, 1);\n    }\n}\n\nvoid uart_data_rec()\n{\n    if(rec_flag)\n    {\n        if(TIM4-&gt;CNT &gt; 15)  \/\/\u6570\u636e\u63a5\u6536\u5b8c\u6210\n        {\n            \/\/\u5904\u7406\u6570\u636e\n            if(rec_buff&#91;0] == 'l' &amp;&amp; rec_buff&#91;1] == 'a' &amp;&amp; rec_buff&#91;2] == 'n')   \/\/lan\n            {\n                sprintf(send_buff, \"lan\\r\\n\");\n                HAL_UART_Transmit(&amp;huart1, (uint8_t *)send_buff, sizeof(send_buff), 50);\n            }\n            \n            else if(rec_buff&#91;0] == 'q' &amp;&amp; rec_buff&#91;1] == 'i' &amp;&amp; rec_buff&#91;2] == 'a' &amp;&amp; rec_buff&#91;3] == 'o')  \/\/qiao\n            {\n                sprintf(send_buff, \"qiao\\r\\n\");\n                HAL_UART_Transmit(&amp;huart1, (uint8_t *)send_buff, sizeof(send_buff), 50);\n            }\n            \n            else if(rec_buff&#91;0] == 'b' &amp;&amp; rec_buff&#91;1] == 'e' &amp;&amp; rec_buff&#91;2] == 'i')  \/\/bei\n            {\n                sprintf(send_buff, \"bei\\r\\n\");\n                HAL_UART_Transmit(&amp;huart1, (uint8_t *)send_buff, sizeof(send_buff), 50);\n            }\n            \n            else\n            {\n                sprintf(send_buff, \"error!\\r\\n\");\n                HAL_UART_Transmit(&amp;huart1, (uint8_t *)send_buff, sizeof(send_buff), 50);                        \n            }\n            \n            rec_flag = 0;\n            for(int i=0; i&lt;count; i++)\n                    rec_buff&#91;i] = 0;\n            count = 0;\n        }\n    }\n}<\/code><\/pre>\n\n\n\n<h1 class=\"wp-block-heading\">07.eeprom\u8bfb\u5199<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">EEPROM\uff1a\u975e\u6613\u5931\u6027\u5b58\u50a8\u5668(\u6389\u7535\u540e\u6570\u636e\u4e0d\u4e22\u5931)<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u8bb0\u4f4f\u4e24\u70b9:<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">1.\u4e3b\u673a\u7ed9\u4ece\u673a\u53d1\u4fe1\u606f,\u4ece\u673a\u63a5\u5230\u4fe1\u606f\u540e\u8981\u7ed9\u4e3b\u673a\u56de\u5e94<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">2.\u4ece\u673a\u7ed9\u4e3b\u673a\u53d1\u4fe1\u606f,\u4e3b\u673a\u63a5\u5230\u4fe1\u606f\u540e\u4e5f\u8981\u7ed9\u4ece\u673a\u56de\u5e94<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">0XA0(\u5199)\/0XA1(\u8bfb)<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='http:\/\/150.158.139.84\/wp-content\/uploads\/2026\/03\/image-19.png'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  decoding=\"async\" data-original=\"http:\/\/150.158.139.84\/wp-content\/uploads\/2026\/03\/image-19.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"\" style=\"width:337px;height:auto\"\/><\/div><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='http:\/\/150.158.139.84\/wp-content\/uploads\/2026\/03\/image-20.png'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  decoding=\"async\" data-original=\"http:\/\/150.158.139.84\/wp-content\/uploads\/2026\/03\/image-20.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"\" style=\"width:218px;height:auto\"\/><\/div><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u8f6f\u4ef6I2C\uff1a<\/strong>\u8981\u5c06<code>PB6<\/code>\u3001<code>PB7<\/code>\u8bbe\u4e3a<code>OUTPUT<\/code>;<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>GPIO_InitStructure.Pin = GPIO_PIN_7 | GPIO_PIN_6;\nGPIO_InitStructure.Mode = GPIO_MODE_OUTPUT_PP; \/\/ \u63a8\u633d\u8f93\u51fa\nGPIO_InitStructure.Pull = GPIO_PULLUP;    \/\/ \u4e0a\u62c9\nGPIO_InitStructure.Speed = GPIO_SPEED_FREQ_HIGH;\nHAL_GPIO_Init(GPIOB, &amp;GPIO_InitStructure);<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>void eeprom_write(uint8_t addr, uint8_t dat)\n{\n        I2CStart();\n        I2CSendByte(0xa0);    \/\/ \u82af\u7247\u5730\u5740\n        I2CWaitAck();\n        I2CSendByte(addr);    \/\/ \u7247\u5185\u5730\u5740\n        I2CWaitAck();\n        I2CSendByte(dat);\n        I2CWaitAck();\n        I2CStop();\n        \n        HAL_Delay(20);\n}<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>uint8_t eeprom_read(uint8_t addr)\n{\n        \n        I2CStart();\n        I2CSendByte(0xa0);\n        I2CWaitAck();\n        I2CSendByte(addr);\n        I2CWaitAck();\n        I2CStop();        \n        \n        I2CStart();\n        I2CSendByte(0xa1);\n        I2CWaitAck();\n        uint8_t dat = I2CReceiveByte();\n        I2CSendNotAck();   \/\/\u4e3b\u673a\u4e0d\u5e94\u7b54 \u4ece\u673a\u4e0d\u518d\u53d1\u6570\u636e\n        I2CStop();        \n        \n        return dat;\n}<\/code><\/pre>\n\n\n\n<h1 class=\"wp-block-heading\">08.rtc\u5b9e\u65f6\u65f6\u949f<\/h1>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>\u57fa\u7840\u914d\u7f6e<\/strong><\/h2>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='http:\/\/150.158.139.84\/wp-content\/uploads\/2026\/03\/image-21.png'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  decoding=\"async\" data-original=\"http:\/\/150.158.139.84\/wp-content\/uploads\/2026\/03\/image-21.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"\" style=\"aspect-ratio:1.2942989214175655;width:463px;height:auto\"\/><\/div><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='http:\/\/150.158.139.84\/wp-content\/uploads\/2026\/03\/image-22.png'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  decoding=\"async\" data-original=\"http:\/\/150.158.139.84\/wp-content\/uploads\/2026\/03\/image-22.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"\" style=\"width:485px;height:auto\"\/><\/div><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">\u663e\u793a\u65f6\u95f4<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>char text&#91;20];\nRTC_TimeTypeDef sTime = {0};\nRTC_DateTypeDef sDate = {0};\nuint8_t led_mode;\nvoid lcd_show()\n{\n        HAL_RTC_GetTime(&amp;hrtc, &amp;sTime, RTC_FORMAT_BIN);\n        HAL_RTC_GetDate(&amp;hrtc, &amp;sDate, RTC_FORMAT_BIN);\n        sprintf(text, \"      test          \");\n        LCD_DisplayStringLine(Line0, (uint8_t *)text);\n        \n        sprintf(text, \"      %2d:%2d:%2d   \", sTime.Hours, sTime.Minutes, sTime.Seconds);\n        LCD_DisplayStringLine(Line1, (uint8_t *)text);\n        \n        sprintf(text, \"      %d-%d-%d-%d   \", sDate.Year, sDate.Month, sDate.Date, sDate.WeekDay);\n        LCD_DisplayStringLine(Line2, (uint8_t *)text);\n}<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">\u95f9\u949f\u4e2d\u65ad<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>char text&#91;20];\nRTC_TimeTypeDef sTime = {0};\nRTC_DateTypeDef sDate = {0};\nuint8_t led_mode;\nvoid lcd_show()\n{\n        HAL_RTC_GetTime(&amp;hrtc, &amp;sTime, RTC_FORMAT_BIN);\n        HAL_RTC_GetDate(&amp;hrtc, &amp;sDate, RTC_FORMAT_BIN);\n        sprintf(text, \"      test          \");\n        LCD_DisplayStringLine(Line0, (uint8_t *)text);\n        \n        sprintf(text, \"      %2d:%2d:%2d   \", sTime.Hours, sTime.Minutes, sTime.Seconds);\n        LCD_DisplayStringLine(Line1, (uint8_t *)text);\n        \n        sprintf(text, \"      %d-%d-%d-%d   \", sDate.Year, sDate.Month, sDate.Date, sDate.WeekDay);\n        LCD_DisplayStringLine(Line2, (uint8_t *)text);\n        \n        led_show(1, led_mode);\n}\n\nvoid HAL_RTC_AlarmAEventCallback(RTC_HandleTypeDef *hrtc)\n{\n        led_mode = 1;\n}<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>00.\u65b0\u5efa\u5de5\u7a0b(CubeMX) 1.Debug\u914d\u7f6e \u70b9\u51fb\u9b54\u672f\u68d2\uff0cdebug\u6539\u4e3acmsis\uff0csetting\u91cc\u8bbe\u7f6e [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":57,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-1","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-learning"],"_links":{"self":[{"href":"https:\/\/blog.echoxx.tech\/index.php\/wp-json\/wp\/v2\/posts\/1","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.echoxx.tech\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.echoxx.tech\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.echoxx.tech\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.echoxx.tech\/index.php\/wp-json\/wp\/v2\/comments?post=1"}],"version-history":[{"count":20,"href":"https:\/\/blog.echoxx.tech\/index.php\/wp-json\/wp\/v2\/posts\/1\/revisions"}],"predecessor-version":[{"id":151,"href":"https:\/\/blog.echoxx.tech\/index.php\/wp-json\/wp\/v2\/posts\/1\/revisions\/151"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blog.echoxx.tech\/index.php\/wp-json\/wp\/v2\/media\/57"}],"wp:attachment":[{"href":"https:\/\/blog.echoxx.tech\/index.php\/wp-json\/wp\/v2\/media?parent=1"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.echoxx.tech\/index.php\/wp-json\/wp\/v2\/categories?post=1"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.echoxx.tech\/index.php\/wp-json\/wp\/v2\/tags?post=1"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}