{"id":641,"date":"2022-12-26T18:47:50","date_gmt":"2022-12-26T10:47:50","guid":{"rendered":"http:\/\/www.huangrongzhen.ink\/?p=641"},"modified":"2023-03-04T20:05:02","modified_gmt":"2023-03-04T12:05:02","slug":"%e5%8d%95%e7%89%87%e6%9c%ba-gui-%e8%ae%be%e8%ae%a1%ef%bc%88%e4%ba%94%ef%bc%89-%e5%b8%a6%e8%83%8c%e6%99%af%e5%9b%be%e7%89%87%e7%9a%84%e6%8c%89%e9%94%ae%e6%8e%a7%e4%bb%b6%ef%bc%88%e6%ad%a3%e5%9c%a8","status":"publish","type":"post","link":"https:\/\/www.huangrongzhen.ink\/?p=641","title":{"rendered":"\u5355\u7247\u673a GUI \u8bbe\u8ba1\uff08\u4e94\uff09- \u5e26\u80cc\u666f\u56fe\u7247\u7684\u6309\u952e\u63a7\u4ef6"},"content":{"rendered":"<div class=\"wp-block-post-excerpt\"><p class=\"wp-block-post-excerpt__excerpt\">\u57fa\u4e8e GD32F303ZET6 \u82f9\u679c\u6d3e\u5f00\u53d1\u677f <\/p><\/div>\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"%E7%AE%80%E4%BB%8B\"><\/span>\u7b80\u4ecb<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>\u6309\u952e\uff0c\u53ef\u4ee5\u6709\u77e9\u5f62\u3001\u5706\u5f62\u3001\u661f\u5f62\u7b49\u5f62\u72b6\u3002\u673a\u5668\u505a\u6309\u952e\u626b\u63cf\u65f6\uff0c\u5f80\u5f80\u66f4\u503e\u5411\u4e8e\u626b\u63cf\u77e9\u5f62\u6309\u952e\uff0c\u56e0\u4e3a\u77e9\u5f62\u6309\u952e\u53ea\u9700\u8981\u901a\u8fc7\u7b80\u5355\u7684\u6bd4\u8f83\u5373\u53ef\u5f97\u77e5\u6309\u952e\u662f\u5426\u88ab\u6309\u4e0b\uff1b\u5706\u5f62\u6309\u952e\u626b\u63cf\u65f6\uff0c\u5f80\u5f80\u8981\u901a\u8fc7\u52fe\u80a1\u5b9a\u7406\u6c42\u5f97\u89e6\u70b9\u4e0e\u6309\u952e\u4e2d\u5fc3\u7684\u8ddd\u79bb\uff0c\u901f\u5ea6\u4e0a\u4f1a\u6162\u4e00\u4e9b\uff0c\u661f\u5f62\u7b49\u5176\u5b83\u56fe\u6848\u5219\u66f4\u6162\u4e86\u3002<\/p>\n\n\n\n<p>\u5728\u5b9e\u9645\u7684\u9879\u76ee\u4e2d\uff0c\u6211\u4eec\u4e0d\u53ef\u80fd\u50cf\u4e4b\u524d\u7684\u5b9e\u9a8c\u90a3\u6837\uff0c\u7528\u7b80\u5355\u7684\u84dd\u8272\u548c\u7eff\u8272\u533a\u5206\u6309\u952e\u6309\u4e0b\u4e0e\u5426\uff0c\u4e0d\u7136\u592a\u8fc7\u4e8e\u5355\u8c03\uff0c\u663e\u5f97\u4e0d\u662f\u7279\u522b\u9ad8\u7ea7\u3002\u7136\u800c\u7528\u753b\u70b9\u753b\u7ebf\u51fd\u6570\u5f88\u96be\u505a\u51fa\u60f3\u8981\u7684\u6548\u679c\uff0c\u4e0d\u662f\u592a\u7a81\u5140\uff0c\u5c31\u662f\u6bdb\u523a\u7279\u522b\u591a\uff0c\u663e\u793a\u6548\u679c\u4e0d\u597d\u3002\u8fd9\u65f6\u5019\u6211\u4eec\u53ef\u4ee5\u9009\u62e9\u4f7f\u7528\u56fe\u7247\u5305\u88c5\u7f8e\u5316\u6309\u952e\uff0c\u5728\u6309\u952e\u6240\u5728\u4f4d\u7f6e\u8d34\u4e0a\u4e00\u5f20\u56fe\u7247\u5373\u53ef\uff0c\u7b80\u5355\u53c8\u5b9e\u7528\u3002\u5982\u679c\u4f7f\u7528\u7684\u56fe\u7247\u662f 32 \u4f4d\u4f4d\u56fe\u6216 PNG \u56fe\u7247\uff0c\u8fd8\u53ef\u4ee5\u8ba9\u6309\u952e\u4e0e\u80cc\u666f\u5b8c\u7f8e\u878d\u5408\uff0c\u8fb9\u6cbf\u865a\u5316\u3001\u5706\u5f27\u6548\u679c\u90fd\u53ef\u4ee5\u5b9e\u73b0\u3002<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"%E6%8C%89%E9%94%AE%E6%8E%A7%E5%88%B6%E7%BB%93%E6%9E%84%E4%BD%93%E8%AE%BE%E8%AE%A1\"><\/span>\u6309\u952e\u63a7\u5236\u7ed3\u6784\u4f53\u8bbe\u8ba1<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>\u56e0\u4e3a\u5f15\u5165\u4e86\u56fe\u7247\uff0c\u539f\u5148\u7684\u6309\u952e\u63a7\u5236\u7ed3\u6784\u4f53\u4e0d\u518d\u9002\u7528\uff0c\u9700\u8981\u4fee\u6539\u4e00\u4e9b\uff0c\u5177\u4f53\u5c31\u662f\u589e\u52a0\u4e86\u4e09\u4e2a\u6210\u5458\u53d8\u91cf\u3002pressImage \u548c releaseImage\uff0c\u90fd\u662f void* \u7c7b\u578b\u6307\u9488\uff0c\u7528\u6765\u4fdd\u5b58\u6309\u952e\u56fe\u7247\u9996\u5730\u5740\uff0c\u8fd9\u91cc\u9ed8\u8ba4\u6309\u952e\u7684\u56fe\u7247\u7c7b\u578b\u4e3a\u4f4d\u56fe\u3002background \u7528\u4e8e\u4fdd\u5b58\u6309\u952e\u7684\u80cc\u666f\uff0c\u56e0\u4e3a\u6309\u952e\u63a7\u4ef6\u6d89\u53ca\u5230\u4e24\u5f20\u56fe\u7247\uff0c\u5206\u522b\u662f\u6309\u4e0b\u65f6\u548c\u62ac\u8d77\u65f6\u663e\u793a\u7684\u56fe\u7247\uff0c\u5982\u679c\u4e24\u5f20\u56fe\u7247\u5747\u4f7f\u7528\u4f4d\u56fe\u6216 PNG\uff0c\u90a3\u4e48\u5c31\u5bb9\u6613\u4ea7\u751f\u6df7\u53e0\uff0c\u548c\u7ed8\u5236\u6587\u5b57\u65f6\u6df7\u53e0\u4e00\u6837\uff0c\u6b64\u65f6\u9700\u8981\u5c06\u80cc\u666f\u63d0\u524d\u4fdd\u5b58\u4e0b\u6765\uff0c\u6bcf\u6b21\u5237\u65b0\u56fe\u7247\u663e\u793a\u4e4b\u524d\uff0c\u9996\u5148\u586b\u5145\u80cc\u666f\uff0c\u8fd9\u6837\u5c31\u80fd\u907f\u514d\u6df7\u53e0\u3002<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"cpp\" class=\"language-cpp\">\/\/\u6309\u952e\u63a7\u4ef6\ntypedef struct\n{\n  u16   x, y, width, height;  \/\/\u539f\u70b9\u3001\u5bbd\u5ea6\u3001\u9ad8\u5ea6\n  char* text;                 \/\/\u6309\u952e\u540d\u5b57\n  u8    textSize;             \/\/\u5b57\u4f53\u5927\u5c0f\uff0c\u53ef\u4ee5\u662f 12\u300116\u300124\n  u16   textColor;            \/\/\u5b57\u4f53\u989c\u8272\n  u8    lastState;            \/\/\u6309\u952e\u4e0a\u4e00\u4e2a\u72b6\u6001\uff0c0-\u6309\u4e0b\uff0c1-\u62ac\u8d77\n  u16   pressColor;           \/\/\u6309\u952e\u6309\u4e0b\u65f6\u7684\u989c\u8272\n  u16   releaseColor;         \/\/\u6309\u952e\u62ac\u8d77\u65f6\u663e\u793a\u7684\u989c\u8272\n  void* pressImage;           \/\/\u6309\u952e\u6309\u4e0b\u65f6\u663e\u793a\u7684\u56fe\u7247\uff0c\u4e0d\u7528\u65f6\u8bf7\u586b\u5165 NULL\n  void* releaseImage;         \/\/\u6309\u952e\u62ac\u8d77\u65f6\u663e\u793a\u7684\u56fe\u7247\uff0c\u4e0d\u7528\u65f6\u8bf7\u586b\u5165 NULL\n  u16*  background;           \/\/\u6309\u952e\u80cc\u666f\n}StructButton;<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"%E6%8C%89%E9%94%AE%E5%88%9B%E5%BB%BA%E5%87%BD%E6%95%B0\"><\/span>\u6309\u952e\u521b\u5efa\u51fd\u6570<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>\u6309\u952e\u521b\u5efa\u51fd\u6570\uff0c\u5373 ButtonCreate \u9700\u8981\u505a\u51fa\u4fee\u6539\uff0c\u5982\u679c\u7528\u6237\u9009\u7528\u4e86\u56fe\u7247\u5305\u88c5\uff0c\u90a3\u4e48\u5c31\u663e\u793a\u6309\u952e\u62ac\u8d77\u56fe\u7247\u3002<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"cpp\" class=\"language-cpp\">\/\/\u521b\u5efa\u6309\u952e\nvoid ButtonCreate(StructButton* widget)\n{\n  u16 x, y, x0, y0, x1, y1, i;\n  \n  \/\/\u8ba1\u7b97\u6309\u952e\u8d77\u70b9\u548c\u7ec8\u70b9\n  x0 = widget-&gt;x;\n  y0 = widget-&gt;y;\n  x1 = x0 + widget-&gt;width - 1;\n  y1 = y0 + widget-&gt;height - 1;\n\n  \/\/\u4fdd\u5b58\u6309\u952e\u80cc\u666f\n  if((NULL != widget-&gt;pressImage) || (NULL != widget-&gt;releaseImage))\n  {\n    \/\/\u4e3a\u80cc\u666f\u7533\u8bf7\u52a8\u6001\u5185\u5b58\n    widget-&gt;background = (u16*)malloc(widget-&gt;width * widget-&gt;height * 2);\n    \n    \/\/\u4fdd\u5b58\u6309\u952e\u80cc\u666f\n    i = 0;\n    for(y = y0; y &lt;= y1; y++)\n    {\n      for(x = x0; x &lt; x1; x++)\n      {\n        widget-&gt;background[i++] = LCDReadPoint(x, y);\n      }\n    }\n  }\n  else\n  {\n    widget-&gt;background = NULL;\n  }\n\n  \/\/\u8bbe\u7f6e\u6309\u952e\u521d\u59cb\u72b6\u6001\n  widget-&gt;lastState = 0;\n  if(NULL != widget-&gt;releaseImage)\n  {\n    DrawBMP(widget-&gt;releaseImage, x0, y0);\n  }\n  else\n  {\n    LCDFill(x0, y0, x1, y1, widget-&gt;releaseColor);\n  }\n  \n  \/\/\u5237\u65b0\u540d\u5b57\u663e\u793a\n  ShowText(widget);\n}<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"%E6%8C%89%E9%94%AE%E6%89%AB%E6%8F%8F%E5%87%BD%E6%95%B0\"><\/span>\u6309\u952e\u626b\u63cf\u51fd\u6570<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>\u540c\u6837\u7684\uff0c\u6309\u952e\u626b\u63cf\u51fd\u6570\u4e5f\u8981\u505a\u51fa\u4fee\u6539\uff0c\u7528\u4ee5\u652f\u6301\u56fe\u7247\u5305\u88c5\u3002<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"cpp\" class=\"language-cpp\">\/\/\u6309\u952e\u626b\u63cf\uff0c\u8fd4\u56de\uff1a1-\u68c0\u6d4b\u5230\u6309\u952e\u6309\u4e0b\uff0c0-\u672a\u68c0\u6d4b\u5230\u6309\u952e\u6309\u4e0b\nu8 ButtonScan(StructButton* widget)\n{\n  u16 x, y, x0, y0, x1, y1, i;\n  u8 currentState;\n  u8 ret;\n  \n  \/\/\u9ed8\u8ba4\u8fd4\u56de 0\n  ret = 0;\n  \n  \/\/\u8ba1\u7b97\u6309\u952e\u8d77\u70b9\u548c\u7ec8\u70b9\n  x0 = widget-&gt;x;\n  y0 = widget-&gt;y;\n  x1 = x0 + widget-&gt;width - 1;\n  y1 = y0 + widget-&gt;height - 1;\n  \n  \/\/\u89e6\u5c4f\u626b\u63cf\n  currentState = 0;\n  if(ScanTouch(&amp;x, &amp;y))\n  {\n    \/\/\u89e6\u70b9\u843d\u5728\u4e86\u76ee\u6807\u533a\u57df\n    if((x &gt;= x0) &amp;&amp; (x &lt;= x1) &amp;&amp; (y &gt;= y0) &amp;&amp; (y &lt;= y1))\n    {\n      currentState = 1;\n    }\n    else\n    {\n      currentState = 0;\n    }\n  }\n  \n  \/\/\u4e0a\u4e00\u4e2a\u72b6\u6001\u662f\u62ac\u8d77\u800c\u5f53\u524d\u72b6\u6001\u4e3a\u6309\u4e0b\uff0c\u8868\u793a\u6355\u6349\u5230\u4e86\u4e00\u4e2a\u6309\u4e0b\u4e8b\u4ef6\n  if((0 == widget-&gt;lastState) &amp;&amp; (1 == currentState))\n  {\n    \/\/\u9700\u8981\u7ed8\u5236\u56fe\u7247\n    if(NULL != widget-&gt;pressImage)\n    {\n      \/\/\u7ed8\u5236\u80cc\u666f\n      i = 0;\n      for(x = x0; x &lt;= x1; x++)\n      {\n        for(y = y0; y &lt; y1; y++)\n        {\n          LCDFastDrawPoint(x, y, widget-&gt;background[i++]);\n        }\n      }\n\n      \/\/\u7ed8\u5236\u56fe\u7247\n      DrawBMP(widget-&gt;pressImage, x0, y0);\n    }\n\n    \/\/\u4e0d\u9700\u8981\u7ed8\u5236\u56fe\u7247\n    else\n    {\n      LCDFill(x0, y0, x1, y1, widget-&gt;pressColor);\n    }\n\n    ret = 1;\n  }\n    \n  \/\/\u4e0a\u4e00\u4e2a\u72b6\u6001\u662f\u6309\u4e0b\u800c\u5f53\u524d\u72b6\u6001\u4e3a\u62ac\u8d77\uff0c\u8868\u793a\u6355\u6349\u5230\u4e86\u4e00\u4e2a\u62ac\u8d77\u4e8b\u4ef6\n  else if((1 == widget-&gt;lastState) &amp;&amp; (0 == currentState))\n  {\n    \/\/\u9700\u8981\u7ed8\u5236\u56fe\u7247\n    if(NULL != widget-&gt;releaseImage)\n    {\n      \/\/\u7ed8\u5236\u80cc\u666f\n      i = 0;\n      for(x = x0; x &lt;= x1; x++)\n      {\n        for(y = y0; y &lt; y1; y++)\n        {\n          LCDFastDrawPoint(x, y, widget-&gt;background[i++]);\n        }\n      }\n\n      \/\/\u7ed8\u5236\u56fe\u7247\n      DrawBMP(widget-&gt;releaseImage, x0, y0);\n    }\n\n    \/\/\u4e0d\u9700\u8981\u7ed8\u5236\u56fe\u7247\n    else\n    {\n      LCDFill(x0, y0, x1, y1, widget-&gt;releaseColor);\n    }\n\n    ret = 0;\n  }\n  \n  \/\/\u4fdd\u5b58\u5f53\u524d\u72b6\u6001\n  widget-&gt;lastState = currentState;\n  \n  \/\/\u5237\u65b0\u540d\u5b57\u663e\u793a\n  ShowText(widget);\n  \n  \/\/\u8fd4\u56de\u6d4b\u91cf\u7ed3\u679c\n  return ret;\n}<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"%E6%B5%8B%E8%AF%95\"><\/span>\u6d4b\u8bd5<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>\u7ecf\u8fc7\u7b80\u5355\u7684\u4fee\u6539\uff0c\u6211\u4eec\u7684\u6309\u952e\u9a71\u52a8\u5c31\u652f\u6301\u4e86\u56fe\u7247\u5c01\u88c5\uff0c\u524d\u63d0\u662f\u5de5\u7a0b\u91cc\u8981\u63d0\u524d\u79fb\u690d\u597d\u56fe\u7247\u663e\u793a\u9a71\u52a8\u3002\u7528\u4e8e\u5305\u88c5\u6309\u952e\u7684\u56fe\u7247\u53ef\u4ee5\u662f BMP\u3001PNG\uff0c\u751a\u81f3\u662f JPEG \u548c GIF\uff0c\u5728\u8fd9\u91cc\u6211\u4eec\u9650\u5b9a\u4e86\u53ea\u80fd\u662f BMP\uff0c\u5b9e\u9645\u4e0a\uff0c\u6211\u4eec\u53ef\u4ee5\u66f4\u6539\u4e3a\u5176\u5b83\u4efb\u4f55\u7c7b\u578b\u7684\u56fe\u7247\u3002\u5728\u8fd9\u91cc\u63a8\u8350\u4f7f\u7528\u535a\u4e3b\u63d0\u4f9b\u7684 AnythingToC \u5c0f\u5de5\u5177\uff0c\u53ef\u4ee5\u5c06\u4efb\u610f\u6587\u4ef6\u8f6c\u6362\u6210 C \u8bed\u8a00\u6570\u7ec4\uff0c\u65b9\u4fbf\u7528\u6237\u5c06\u56fe\u7247\u3001\u97f3\u9891\u7b49\u5185\u5d4c\u5230\u5355\u7247\u673a\u7684 Flash \u4e2d\u3002<\/p>\n\n\n\n<p>\u6d4b\u8bd5\u4ee3\u7801\u5982\u4e0b\u6240\u793a\u3002<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"cpp\" class=\"language-cpp\">void main(void)\n{\n  extern const unsigned char s_arrKeyPressBmpImage[20138];\n  extern const unsigned char s_arrKeyReleaseBmpImage[20138];\n  static StructButton s_structButton;\n\n  \/\/\u521d\u59cb\u5316\n  ...\n\n  \/\/\u521b\u5efa\u6309\u952e\n  s_structButton.x = 350;\n  s_structButton.y = 215;\n  s_structButton.width = 100;\n  s_structButton.height = 50;\n  s_structButton.text = \"BUTTON\";\n  s_structButton.textSize = 24;\n  s_structButton.textColor = BLACK;\n  s_structButton.pressColor = BLUE;\n  s_structButton.releaseColor = GREEN;\n  s_structButton.pressImage = (void*)s_arrKeyPressBmpImage;\n  s_structButton.releaseImage = (void*)s_arrKeyReleaseBmpImage;\n  ButtonCreate(&amp;s_structButton);\n\n  \/\/\u4e3b\u5faa\u73af\n  while(1)\n  {\n    \/\/LED \u95ea\u70c1\n    LEDFlicker(50);\n\n    \/\/\u6309\u952e\u626b\u63cf\n    if(1 == ButtonScan(&amp;s_structButton))\n    {\n      printf(\"Button press\\r\\n\");\n    }\n\n    \/\/\u5ef6\u65f6 10 ms\n    DelayNms(10);\n  }\n}<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"%E5%AE%9E%E9%AA%8C%E7%BB%93%E6%9E%9C\"><\/span>\u5b9e\u9a8c\u7ed3\u679c<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>\u5b9e\u9a8c\u7ed3\u679c\u5982\u4e0b\u6240\u793a\u3002\u70b9\u51fb\u6309\u952e\u65f6\uff0c\u4f1a\u51fa\u73b0\u95ea\u70c1\u7684\u60c5\u51b5\uff0c\u4e3b\u8981\u662f\u56e0\u4e3a\u6309\u952e\u5207\u6362\u72b6\u6001\u65f6\uff0c\u9996\u5148\u5237\u65b0\u80cc\u666f\uff0c\u5373\u80cc\u666f\u91cd\u7ed8\uff0c\u7136\u540e\u624d\u663e\u793a\u6309\u952e\u7684\u80cc\u666f\u56fe\u7247\u3002\u4e3a\u4e86\u907f\u514d\u6309\u952e\u95ea\u70c1\uff0c\u6211\u4eec\u4e5f\u53ef\u4ee5\u91c7\u6837 JPEG \u56fe\u7247\u88c5\u9970\u6309\u952e\u3002\u56e0\u4e3a JPEG \u6ca1\u6709\u900f\u660e\u5ea6\uff0c\u6240\u4ee5\u53ef\u4ee5\u76f4\u63a5\u7ed8\u56fe\uff0c\u56e0\u4e3a\u65e0\u9700\u505a\u80cc\u666f\u91cd\u7ed8\uff0c\u6240\u4ee5\u95ea\u70c1\u73b0\u8c61\u81ea\u7136\u5c31\u6d88\u5931\u4e86\u3002<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img decoding=\"async\" loading=\"lazy\" width=\"1024\" height=\"768\" src=\"http:\/\/www.huangrongzhen.ink\/wp-content\/uploads\/2023\/03\/\u5355\u7247\u673a-GUI-\u8bbe\u8ba1\uff08\u4e94\uff09-\u5e26\u80cc\u666f\u56fe\u7247\u7684\u6309\u952e\u63a7\u4ef6-\u5b9e\u9a8c\u7ed3\u679c-20230304-1024x768.jpg\" alt=\"\" class=\"wp-image-1118\" srcset=\"https:\/\/www.huangrongzhen.ink\/wp-content\/uploads\/2023\/03\/\u5355\u7247\u673a-GUI-\u8bbe\u8ba1\uff08\u4e94\uff09-\u5e26\u80cc\u666f\u56fe\u7247\u7684\u6309\u952e\u63a7\u4ef6-\u5b9e\u9a8c\u7ed3\u679c-20230304-1024x768.jpg 1024w, https:\/\/www.huangrongzhen.ink\/wp-content\/uploads\/2023\/03\/\u5355\u7247\u673a-GUI-\u8bbe\u8ba1\uff08\u4e94\uff09-\u5e26\u80cc\u666f\u56fe\u7247\u7684\u6309\u952e\u63a7\u4ef6-\u5b9e\u9a8c\u7ed3\u679c-20230304-300x225.jpg 300w, https:\/\/www.huangrongzhen.ink\/wp-content\/uploads\/2023\/03\/\u5355\u7247\u673a-GUI-\u8bbe\u8ba1\uff08\u4e94\uff09-\u5e26\u80cc\u666f\u56fe\u7247\u7684\u6309\u952e\u63a7\u4ef6-\u5b9e\u9a8c\u7ed3\u679c-20230304-768x576.jpg 768w, https:\/\/www.huangrongzhen.ink\/wp-content\/uploads\/2023\/03\/\u5355\u7247\u673a-GUI-\u8bbe\u8ba1\uff08\u4e94\uff09-\u5e26\u80cc\u666f\u56fe\u7247\u7684\u6309\u952e\u63a7\u4ef6-\u5b9e\u9a8c\u7ed3\u679c-20230304-1536x1152.jpg 1536w, https:\/\/www.huangrongzhen.ink\/wp-content\/uploads\/2023\/03\/\u5355\u7247\u673a-GUI-\u8bbe\u8ba1\uff08\u4e94\uff09-\u5e26\u80cc\u666f\u56fe\u7247\u7684\u6309\u952e\u63a7\u4ef6-\u5b9e\u9a8c\u7ed3\u679c-20230304-2048x1536.jpg 2048w, https:\/\/www.huangrongzhen.ink\/wp-content\/uploads\/2023\/03\/\u5355\u7247\u673a-GUI-\u8bbe\u8ba1\uff08\u4e94\uff09-\u5e26\u80cc\u666f\u56fe\u7247\u7684\u6309\u952e\u63a7\u4ef6-\u5b9e\u9a8c\u7ed3\u679c-20230304-400x300.jpg 400w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure><\/div>\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"%E6%BA%90%E7%A0%81\"><\/span>\u6e90\u7801<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>\u672c\u7ae0\u8282\u4e2d\u7684\u6e90\u7801\u8bf7\u53c2\u8003\u300a<em><a href=\"http:\/\/www.huangrongzhen.ink\/?p=451\">\u5355\u7247\u673a GUI \u8bbe\u8ba1\uff08\u96f6\uff09- \u5927\u7eb2<\/a><\/em>\u300b<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u57fa\u4e8e GD32F303ZET6 \u82f9\u679c\u6d3e\u5f00\u53d1\u677f<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[13],"tags":[],"_links":{"self":[{"href":"https:\/\/www.huangrongzhen.ink\/index.php?rest_route=\/wp\/v2\/posts\/641"}],"collection":[{"href":"https:\/\/www.huangrongzhen.ink\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.huangrongzhen.ink\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.huangrongzhen.ink\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.huangrongzhen.ink\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=641"}],"version-history":[{"count":25,"href":"https:\/\/www.huangrongzhen.ink\/index.php?rest_route=\/wp\/v2\/posts\/641\/revisions"}],"predecessor-version":[{"id":1138,"href":"https:\/\/www.huangrongzhen.ink\/index.php?rest_route=\/wp\/v2\/posts\/641\/revisions\/1138"}],"wp:attachment":[{"href":"https:\/\/www.huangrongzhen.ink\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=641"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.huangrongzhen.ink\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=641"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.huangrongzhen.ink\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=641"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}