{"id":55,"date":"2025-05-14T13:07:16","date_gmt":"2025-05-14T05:07:16","guid":{"rendered":"http:\/\/47.111.133.139\/?p=55"},"modified":"2025-05-16T00:02:26","modified_gmt":"2025-05-15T16:02:26","slug":"uart","status":"publish","type":"post","link":"https:\/\/yin.nnneri.me\/?p=55","title":{"rendered":"uart"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\">\u4f7f\u7528\u7684\u5e93<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>\"driver\/uart.h\"<\/code><\/li>\n\n\n\n<li><code>\"esp_log.h\"<\/code><\/li>\n\n\n\n<li><code>\"esp_err.h\"<\/code><\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading has-text-align-left\">\u521d\u59cb\u5316<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>uart_param_config()<\/code> \u51fd\u6570\u914d\u7f6euart\u4fe1\u606f<br><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-luminous-vivid-amber-color\">\u4f7f\u7528UART0\u8bf7\u7559\u610f\u662f\u5426\u88ab\u7ec8\u7aef\u5360\u7528<\/mark><\/li>\n\n\n\n<li><code>uart_set_pin()<\/code> \u8bbe\u7f6eGPIO<br><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-luminous-vivid-amber-color\">\u4e0d\u7528\u7684\u63a5\u53e3\u8d4b\u503c -1<\/mark><\/li>\n\n\n\n<li><code>uart_driver_install()<\/code> \u8bbe\u7f6e\u63a5\u53d7\u961f\u5217\uff0c\u53d1\u9001\u4e0e\u63a5\u6536\u7f13\u51b2\u533a\u5927\u5c0f<br><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-luminous-vivid-amber-color\">\u53d1\u9001\u7f13\u51b2\u533a\u53ef\u4ee5\u4e3a0\uff0c\u53d1\u9001\u65f6\u51fd\u6570\u963b\u585e\u3002<\/mark><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-luminous-vivid-orange-color\">\u82e5\u4e0d\u4e3a\u96f6\uff0c\u5fc5\u987b\u6ee1\u8db3\u7f13\u51b2\u533a\u5927\u5c0f\u5927\u4e8e\u7b49\u4e8e<code>UART_HW_FIFO_LEN<\/code><br>\u63a5\u6536\u7f13\u51b2\u533a\u5927\u5c0f\u5fc5\u987b\u5927\u4e8e\u7b49\u4e8e<code>UART_HW_FIFO_LEN<\/code><\/mark><\/li>\n\n\n\n<li><code>uart_set_rx_timeout()<\/code> \u8bbe\u7f6e\u8d85\u65f6\u65f6\u95f4<\/li>\n<\/ul>\n\n\n\n<p><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u793a\u4f8b<\/h3>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#f6f6f4;--cbp-line-number-width:calc(2 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#333545;color:#ebebe6\">C<\/span><span role=\"button\" tabindex=\"0\" data-code=\"void uart1Init()\n{\n    uart_config_t UartConfig = {\n        .baud_rate = baudrate, \/*TODO \u81ea\u884c\u786e\u8ba4\u6ce2\u7279\u7387*\/\n        .data_bits = UART_DATA_8_BITS,\n        .flow_ctrl = UART_HW_FLOWCTRL_CTS_RTS,\n        \/\/.flow_ctrl = UART_HW_FLOWCTRL_DISABLE,\n        .parity = UART_PARITY_DISABLE,\n        .stop_bits = UART_STOP_BITS_1,\n        .rx_flow_ctrl_thresh = 1,\n    };\n    ESP_ERROR_CHECK(uart_param_config(UART_NUM_1, &amp;UartConfig));\n    uart_set_pin(UART_NUM_1, UART1_TXD, UART1_RXD, UART_PIN_NO_CHANGE, UART_PIN_NO_CHANGE);\/*TODO \u81ea\u884c\u66f4\u6362GPIO\u7ed1\u5b9a*\/\n    uart_driver_install(UART_NUM_1, 512, 512, 10, &amp;Uart1Queue, 0);\/*TODO \u81ea\u884c\u66f4\u6362\u961f\u5217\u53e5\u67c4*\/\n    uart_set_rx_timeout(UART_NUM_1,4);\n}\" style=\"color:#f6f6f4;display:none\" aria-label=\"\u590d\u5236\" class=\"code-block-pro-copy-button\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M4.5 12.75l6 6 9-13.5\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6\"><\/path><\/svg><\/span><pre class=\"shiki dracula-soft\" style=\"background-color: #282A36\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #F286C4\">void<\/span><span style=\"color: #F6F6F4\"> <\/span><span style=\"color: #62E884\">uart1Init<\/span><span style=\"color: #F6F6F4\">()<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">    <\/span><span style=\"color: #97E1F1; font-style: italic\">uart_config_t<\/span><span style=\"color: #F6F6F4\"> UartConfig <\/span><span style=\"color: #F286C4\">=<\/span><span style=\"color: #F6F6F4\"> {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">        .baud_rate <\/span><span style=\"color: #F286C4\">=<\/span><span style=\"color: #F6F6F4\"> baudrate,<\/span><span style=\"color: #7B7F8B\"> \/*TODO \u81ea\u884c\u786e\u8ba4\u6ce2\u7279\u7387*\/<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">        .data_bits <\/span><span style=\"color: #F286C4\">=<\/span><span style=\"color: #F6F6F4\"> UART_DATA_8_BITS,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">        .flow_ctrl <\/span><span style=\"color: #F286C4\">=<\/span><span style=\"color: #F6F6F4\"> UART_HW_FLOWCTRL_CTS_RTS,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">        <\/span><span style=\"color: #7B7F8B\">\/\/.flow_ctrl = UART_HW_FLOWCTRL_DISABLE,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">        .parity <\/span><span style=\"color: #F286C4\">=<\/span><span style=\"color: #F6F6F4\"> UART_PARITY_DISABLE,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">        .stop_bits <\/span><span style=\"color: #F286C4\">=<\/span><span style=\"color: #F6F6F4\"> UART_STOP_BITS_1,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">        .rx_flow_ctrl_thresh <\/span><span style=\"color: #F286C4\">=<\/span><span style=\"color: #F6F6F4\"> <\/span><span style=\"color: #BF9EEE\">1<\/span><span style=\"color: #F6F6F4\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">    };<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">    <\/span><span style=\"color: #62E884\">ESP_ERROR_CHECK<\/span><span style=\"color: #F6F6F4\">(<\/span><span style=\"color: #62E884\">uart_param_config<\/span><span style=\"color: #F6F6F4\">(UART_NUM_1, <\/span><span style=\"color: #F286C4\">&amp;<\/span><span style=\"color: #F6F6F4\">UartConfig));<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">    <\/span><span style=\"color: #62E884\">uart_set_pin<\/span><span style=\"color: #F6F6F4\">(UART_NUM_1, UART1_TXD, UART1_RXD, UART_PIN_NO_CHANGE, UART_PIN_NO_CHANGE);<\/span><span style=\"color: #7B7F8B\">\/*TODO \u81ea\u884c\u66f4\u6362GPIO\u7ed1\u5b9a*\/<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">    <\/span><span style=\"color: #62E884\">uart_driver_install<\/span><span style=\"color: #F6F6F4\">(UART_NUM_1, <\/span><span style=\"color: #BF9EEE\">512<\/span><span style=\"color: #F6F6F4\">, <\/span><span style=\"color: #BF9EEE\">512<\/span><span style=\"color: #F6F6F4\">, <\/span><span style=\"color: #BF9EEE\">10<\/span><span style=\"color: #F6F6F4\">, <\/span><span style=\"color: #F286C4\">&amp;<\/span><span style=\"color: #F6F6F4\">Uart1Queue, <\/span><span style=\"color: #BF9EEE\">0<\/span><span style=\"color: #F6F6F4\">);<\/span><span style=\"color: #7B7F8B\">\/*TODO \u81ea\u884c\u66f4\u6362\u961f\u5217\u53e5\u67c4*\/<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">    <\/span><span style=\"color: #62E884\">uart_set_rx_timeout<\/span><span style=\"color: #F6F6F4\">(UART_NUM_1,<\/span><span style=\"color: #BF9EEE\">4<\/span><span style=\"color: #F6F6F4\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">}<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">\u53d1\u9001<\/h2>\n\n\n\n<p>\u4f7f\u7528<code>uart_write_bytes()<\/code>\u53d1\u9001\u6570\u636e<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u793a\u4f8b<\/h3>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#f6f6f4;--cbp-line-number-width:calc(1 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#333545;color:#ebebe6\">C<\/span><span role=\"button\" tabindex=\"0\" data-code=\"uart_write_bytes(UART_NUM_1, (const char *)data, length);\" style=\"color:#f6f6f4;display:none\" aria-label=\"\u590d\u5236\" class=\"code-block-pro-copy-button\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M4.5 12.75l6 6 9-13.5\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6\"><\/path><\/svg><\/span><pre class=\"shiki dracula-soft\" style=\"background-color: #282A36\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #62E884\">uart_write_bytes<\/span><span style=\"color: #F6F6F4\">(UART_NUM_1, (<\/span><span style=\"color: #F286C4\">const<\/span><span style=\"color: #F6F6F4\"> <\/span><span style=\"color: #F286C4\">char<\/span><span style=\"color: #F6F6F4\"> <\/span><span style=\"color: #F286C4\">*<\/span><span style=\"color: #F6F6F4\">)<\/span><span style=\"color: #FFB86C; font-style: italic\">data<\/span><span style=\"color: #F6F6F4\">, length);<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">\u63a5\u6536<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u4f7f\u7528<code>xQueueReceive()<\/code>\u63a5\u6536\u961f\u5217\u4fe1\u606f\uff0c\u5e76\u4f7f\u7528<code>uart_event_t<\/code>\u7c7b\u578b\u53d8\u91cf\u63a5\u4f4f<\/li>\n\n\n\n<li>\u5224\u65ad\u4fe1\u606f\u7c7b\u578b\uff0c\u82e5\u4e3aUART_DATA\u5219\u63a5\u6536<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">\u793a\u4f8b<\/h3>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#f6f6f4;--cbp-line-number-width:calc(2 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#333545;color:#ebebe6\">C<\/span><span role=\"button\" tabindex=\"0\" data-code=\"void uart1EventTask()\n{\n    uart_event_t UartEvent;\n    uint8_t RecvBuf[520];\n    size_t RecvLen = 0;\n    while (true) {\n        if (xQueueReceive(Uart1Queue,&amp;UartEvent,portMAX_DELAY)) {\n            switch (UartEvent.type) {\n                case UART_DATA:\n                    uart_get_buffered_data_len(UART_NUM_1,&amp;RecvLen);\n                    if (RecvLen &gt; 0) {\n                        RecvLen = uart_read_bytes(UART_NUM_1,RecvBuf,RecvLen,0);\n                        RecvBuf[RecvLen] = 0;\n                        \/*TODO \u63a5\u6536\u540e\u7684\u52a8\u4f5c*\/\n                    }\n                    break;\n                    default:\n                    break;\n            }\n        }\n    }\n}\" style=\"color:#f6f6f4;display:none\" aria-label=\"\u590d\u5236\" class=\"code-block-pro-copy-button\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M4.5 12.75l6 6 9-13.5\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6\"><\/path><\/svg><\/span><pre class=\"shiki dracula-soft\" style=\"background-color: #282A36\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #F286C4\">void<\/span><span style=\"color: #F6F6F4\"> <\/span><span style=\"color: #62E884\">uart1EventTask<\/span><span style=\"color: #F6F6F4\">()<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">    <\/span><span style=\"color: #97E1F1; font-style: italic\">uart_event_t<\/span><span style=\"color: #F6F6F4\"> UartEvent;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">    <\/span><span style=\"color: #F286C4\">uint8_t<\/span><span style=\"color: #F6F6F4\"> RecvBuf[<\/span><span style=\"color: #BF9EEE\">520<\/span><span style=\"color: #F6F6F4\">];<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">    <\/span><span style=\"color: #F286C4\">size_t<\/span><span style=\"color: #F6F6F4\"> RecvLen <\/span><span style=\"color: #F286C4\">=<\/span><span style=\"color: #F6F6F4\"> <\/span><span style=\"color: #BF9EEE\">0<\/span><span style=\"color: #F6F6F4\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">    <\/span><span style=\"color: #F286C4\">while<\/span><span style=\"color: #F6F6F4\"> (<\/span><span style=\"color: #BF9EEE\">true<\/span><span style=\"color: #F6F6F4\">) {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">        <\/span><span style=\"color: #F286C4\">if<\/span><span style=\"color: #F6F6F4\"> (<\/span><span style=\"color: #62E884\">xQueueReceive<\/span><span style=\"color: #F6F6F4\">(Uart1Queue,<\/span><span style=\"color: #F286C4\">&amp;<\/span><span style=\"color: #F6F6F4\">UartEvent,portMAX_DELAY)) {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">            <\/span><span style=\"color: #F286C4\">switch<\/span><span style=\"color: #F6F6F4\"> (UartEvent.type) {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">                <\/span><span style=\"color: #F286C4\">case<\/span><span style=\"color: #F6F6F4\"> UART_DATA:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">                    <\/span><span style=\"color: #62E884\">uart_get_buffered_data_len<\/span><span style=\"color: #F6F6F4\">(UART_NUM_1,<\/span><span style=\"color: #F286C4\">&amp;<\/span><span style=\"color: #FFB86C; font-style: italic\">RecvLen<\/span><span style=\"color: #F6F6F4\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">                    <\/span><span style=\"color: #F286C4\">if<\/span><span style=\"color: #F6F6F4\"> (RecvLen <\/span><span style=\"color: #F286C4\">&gt;<\/span><span style=\"color: #F6F6F4\"> <\/span><span style=\"color: #BF9EEE\">0<\/span><span style=\"color: #F6F6F4\">) {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">                        RecvLen <\/span><span style=\"color: #F286C4\">=<\/span><span style=\"color: #F6F6F4\"> <\/span><span style=\"color: #62E884\">uart_read_bytes<\/span><span style=\"color: #F6F6F4\">(UART_NUM_1,RecvBuf,RecvLen,<\/span><span style=\"color: #BF9EEE\">0<\/span><span style=\"color: #F6F6F4\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">                        RecvBuf[RecvLen] <\/span><span style=\"color: #F286C4\">=<\/span><span style=\"color: #F6F6F4\"> <\/span><span style=\"color: #BF9EEE\">0<\/span><span style=\"color: #F6F6F4\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #7B7F8B\">                        \/*TODO \u63a5\u6536\u540e\u7684\u52a8\u4f5c*\/<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">                    }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">                    <\/span><span style=\"color: #F286C4\">break<\/span><span style=\"color: #F6F6F4\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">                    <\/span><span style=\"color: #F286C4\">default<\/span><span style=\"color: #F6F6F4\">:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">                    <\/span><span style=\"color: #F286C4\">break<\/span><span style=\"color: #F6F6F4\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">            }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">        }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">    }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">}<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u4f7f\u7528\u7684\u5e93 \u521d\u59cb\u5316 \u793a\u4f8b \u53d1\u9001 \u4f7f\u7528uart_write_bytes()\u53d1\u9001\u6570\u636e \u793a\u4f8b \u63a5\u6536 \u793a\u4f8b<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"emotion":"","emotion_color":"","title_style":"","license":"","footnotes":"[]"},"categories":[4],"tags":[],"class_list":["post-55","post","type-post","status-publish","format-standard","hentry","category-esp32"],"_links":{"self":[{"href":"https:\/\/yin.nnneri.me\/index.php?rest_route=\/wp\/v2\/posts\/55","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/yin.nnneri.me\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/yin.nnneri.me\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/yin.nnneri.me\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/yin.nnneri.me\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=55"}],"version-history":[{"count":36,"href":"https:\/\/yin.nnneri.me\/index.php?rest_route=\/wp\/v2\/posts\/55\/revisions"}],"predecessor-version":[{"id":164,"href":"https:\/\/yin.nnneri.me\/index.php?rest_route=\/wp\/v2\/posts\/55\/revisions\/164"}],"wp:attachment":[{"href":"https:\/\/yin.nnneri.me\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=55"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/yin.nnneri.me\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=55"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/yin.nnneri.me\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=55"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}