{"id":59790,"date":"2026-01-14T13:57:22","date_gmt":"2026-01-14T05:57:22","guid":{"rendered":"https:\/\/www.wsisp.com\/helps\/59790.html"},"modified":"2026-01-14T13:57:22","modified_gmt":"2026-01-14T05:57:22","slug":"%e5%9f%ba%e4%ba%8estm32l4xx%e7%9a%84lcd%e6%b6%b2%e6%99%b6%e6%98%be%e7%a4%ba%e5%b1%8f%ef%bc%88hs12864tg10b%ef%bc%89%e9%a9%b1%e5%8a%a8c%e7%a8%8b%e5%ba%8f%e8%ae%be%e8%ae%a1","status":"publish","type":"post","link":"https:\/\/www.wsisp.com\/helps\/59790.html","title":{"rendered":"\u57fa\u4e8eSTM32L4XX\u7684LCD\u6db2\u6676\u663e\u793a\u5c4f\uff08HS12864TG10B\uff09\u9a71\u52a8C\u7a0b\u5e8f\u8bbe\u8ba1"},"content":{"rendered":"<p>\u4e00\u3001\u7b80\u4ecb&#xff1a;<\/p>\n<p>\u00a0 \u00a0 HS12864TG10B \u578bLCD\u6db2\u6676\u663e\u793a\u5c4f\u53ef\u4ee5\u663e\u793a 128 \u5217*64 \u884c \u70b9\u9635\u5355\u8272\u56fe\u7247&#xff0c;\u6216\u663e\u793a 8 \u4e2a\/\u884c*4 \u884c 16*16 \u70b9\u9635\u7684\u6c49\u5b57&#xff0c;\u6216\u663e\u793a 16 \u4e2a\/\u884c*8 \u884c 8*8 \u70b9\u9635\u7684\u82f1\u6587\u3001\u6570\u5b57\u3001\u7b26 \u53f7\u3002\u8f93\u5165\u6307\u4ee4\u5f3a&#xff0c;\u53ef\u7ec4\u5408\u6210\u5404\u79cd\u8f93\u5165\u3001\u663e\u793a\u3001\u4f4d\u79fb\u65b9\u5f0f\u4ee5\u6ee1\u8db3\u4e0d\u540c\u7684\u8981\u6c42\u3002\u53ef\u5e7f\u6cdb\u5e94\u7528\u4e8e\u5404\u79cd\u4eea\u5668\u4eea\u8868\u3001PM2.5 \u68c0\u6d4b\u4eea&#xff0c;POS \u5237\u5361\u673a&#xff0c;\u8003\u52e4\u7cfb\u7edf\u3001\u95e8\u7981\u7cfb\u7edf\u7b49\u3002<\/p>\n<p>\u4e8c\u3001\u4e3b\u8981\u6280\u672f\u7279\u6027&#xff1a;<\/p>\n<p>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u25b3 \u4ea7\u54c1\u8584\u3001\u8f7b\u3001\u7ed3\u6784\u7262\u3001FPC\u3001\u63d2\u63a5\u5de5\u827a\u3002<\/p>\n<p>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u25b3 COG \u5de5\u827a&#xff0c;IC \u91c7\u7528 ST7567,\u529f\u80fd\u5f3a\u5927,\u7a33\u5b9a\u6027\u597d\u3002<\/p>\n<p>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u25b3 \u663e\u793a\u5185\u5bb9:<\/p>\n<p>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u25cf128*64 \u70b9\u9635\u5355\u8272\u56fe\u7247;<\/p>\n<p>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u25cf\u53ef\u9009\u7528 16*16 \u70b9\u9635\u6216\u5176\u4ed6\u70b9\u9635\u7684\u56fe\u7247\u6765\u81ea\u7f16\u6c49\u5b57&#xff0c;\u6309\u7167 16*16 \u70b9\u9635\u6c49\u5b57\u6765\u8ba1\u7b97\u53ef\u663e\u793a 8 \u5b57\/\u884c*4 \u884c\u3002<\/p>\n<p>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u25b3 \u6307\u4ee4\u529f\u80fd\u5f3a:\u53ef\u7ec4\u5408\u6210\u5404\u79cd\u8f93\u5165\u3001\u663e\u793a\u3001\u79fb\u4f4d\u65b9\u5f0f\u4ee5\u6ee1\u8db3\u4e0d\u540c\u7684\u8981\u6c42;<\/p>\n<p>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u25b3 \u63a5\u53e3\u7b80\u5355\u65b9\u4fbf:\u4e32\u884c\u63a5\u53e3\u3002<\/p>\n<p>\u4e09\u3001\u57fa\u672c\u53c2\u6570&#xff1a;<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" alt=\"\" height=\"383\" src=\"https:\/\/www.wsisp.com\/helps\/wp-content\/uploads\/2026\/01\/20260114055721-69673041008e1.png\" width=\"734\" \/><\/p>\n<p>\u56db\u3001\u5916\u5f62\u5c3a\u5bf8\u56fe&#xff1a;<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" alt=\"\" height=\"539\" src=\"https:\/\/www.wsisp.com\/helps\/wp-content\/uploads\/2026\/01\/20260114055721-696730411e98b.png\" width=\"882\" \/><\/p>\n<p>\u4e94\u3001\u63a5\u53e3\u5b9a\u4e49&#xff1a;<\/p>\n<table>\n<tr>\u5e8f\u53f7\u540d\u79f0\u529f\u80fd\u8bf4\u660e<\/tr>\n<tbody>\n<tr>\n<td>1<\/td>\n<td>VG<\/td>\n<td>LCD\u500d\u538b\u8f93\u51fa&#xff0c;\u4e0eVSS\u4e4b\u95f4\u63a5\u4e00\u4e2a\u7535\u5bb9<\/td>\n<\/tr>\n<tr>\n<td>2<\/td>\n<td>XVO<\/td>\n<td>\u500d\u538b\u7535\u8def&#xff0c;\u4e24\u7ebf\u4e4b\u95f4\u63a5\u7535\u5bb9<\/td>\n<\/tr>\n<tr>\n<td>3<\/td>\n<td>VO<\/td>\n<td>\u500d\u538b\u7535\u8def&#xff0c;\u4e24\u7ebf\u4e4b\u95f4\u63a5\u7535\u5bb9<\/td>\n<\/tr>\n<tr>\n<td>4<\/td>\n<td>VO<\/td>\n<td>\u500d\u538b\u7535\u8def&#xff0c;\u4e24\u7ebf\u4e4b\u95f4\u63a5\u7535\u5bb9<\/td>\n<\/tr>\n<tr>\n<td>5<\/td>\n<td>XVO<\/td>\n<td>\u500d\u538b\u7535\u8def&#xff0c;\u4e24\u7ebf\u4e4b\u95f4\u63a5\u7535\u5bb9<\/td>\n<\/tr>\n<tr>\n<td>6<\/td>\n<td>VSS<\/td>\n<td>\u63a5\u5730<\/td>\n<\/tr>\n<tr>\n<td>7<\/td>\n<td>VDD<\/td>\n<td>3.3V\u4f9b\u7535<\/td>\n<\/tr>\n<tr>\n<td>8<\/td>\n<td>D7 (SDA)<\/td>\n<td>\u4e32\u884c\u6570\u636e\u8f93\u5165&#xff0c;\u9ad8\/\u4f4e\u7535\u5e73<\/td>\n<\/tr>\n<tr>\n<td>9<\/td>\n<td>D6 (SCL)<\/td>\n<td>\u4e32\u884c\u65f6\u949f\u8f93\u5165&#xff0c;\u9ad8\/\u4f4e\u7535\u5e73<\/td>\n<\/tr>\n<tr>\n<td>10<\/td>\n<td>A0<\/td>\n<td>\u6307\u4ee4\u548c\u6570\u636e\u9009\u62e9\u7aef\u53e3&#xff1a;A0&#061;H\u65f6\u4e3a\u663e\u793a\u6570\u636e&#xff0c;A0&#061;L\u65f6\u4e3a\u63a7\u5236\u6307\u4ee4<\/td>\n<\/tr>\n<tr>\n<td>11<\/td>\n<td>RES<\/td>\n<td>\u786c\u4ef6\u590d\u4f4d\u8f93\u5165\u5f15\u811a&#xff0c;\u4f4e\u7535\u5e73\u590d\u4f4d<\/td>\n<\/tr>\n<tr>\n<td>12<\/td>\n<td>CS<\/td>\n<td>\u7247\u9009\u8f93\u5165\u5f15\u811a&#xff0c;\u4f4e\u7535\u5e73\u4f7f\u80fd<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>\u516d\u3001\u5178\u578b\u5e94\u7528\u7535\u8def&#xff1a;<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" alt=\"\" height=\"432\" src=\"https:\/\/www.wsisp.com\/helps\/wp-content\/uploads\/2026\/01\/20260114055721-69673041530b3.png\" width=\"761\" \/><\/p>\n<p>\u4e03\u3001\u901a\u7528\u6307\u4ee4\u8868&#xff1a;<\/p>\n<table>\n<tr>\u6307\u4ee4\u540d\u79f0A0R\/WD7D6D5D4D3D2D1D0\u8bf4\u660e<\/tr>\n<tbody>\n<tr>\n<td>\u663e\u793a\u5f00\u5173\u00a0(display on\/off)<\/td>\n<td>0<\/td>\n<td>0<\/td>\n<td>1<\/td>\n<td>0<\/td>\n<td>1<\/td>\n<td>0<\/td>\n<td>1<\/td>\n<td>1<\/td>\n<td>1<\/td>\n<td>D<\/td>\n<td>D&#061;1&#xff1a;\u663e\u793a\u5f00<br \/>\nD&#061;0&#xff1a;\u663e\u793a\u5173<\/td>\n<\/tr>\n<tr>\n<td>\u8bbe\u7f6e\u8d77\u59cb\u884c\u00a0(set start line)<\/td>\n<td>0<\/td>\n<td>0<\/td>\n<td>0<\/td>\n<td>1<\/td>\n<td>S5<\/td>\n<td>S4<\/td>\n<td>S3<\/td>\n<td>S2<\/td>\n<td>S1<\/td>\n<td>S0<\/td>\n<td>\u8bbe\u7f6e\u663e\u793a\u8d77\u59cb\u884c<\/td>\n<\/tr>\n<tr>\n<td>\u8bbe\u7f6e\u9875\u5730\u5740\u00a0(page address)<\/td>\n<td>0<\/td>\n<td>0<\/td>\n<td>1<\/td>\n<td>1<\/td>\n<td>Y3<\/td>\n<td>Y2<\/td>\n<td>Y1<\/td>\n<td>Y0<\/td>\n<td>0<\/td>\n<td>0<\/td>\n<td>\u8bbe\u7f6e\u9875\u5730\u5740<\/td>\n<\/tr>\n<tr>\n<td>\u8bbe\u7f6e\u5217\u5730\u5740&#xff08;\u9ad8\u4f4d&#xff09;<\/td>\n<td>0<\/td>\n<td>0<\/td>\n<td>0<\/td>\n<td>0<\/td>\n<td>X7<\/td>\n<td>X6<\/td>\n<td>X5<\/td>\n<td>X4<\/td>\n<td>0<\/td>\n<td>0<\/td>\n<td>\u8bbe\u7f6e\u5217\u5730\u5740\u9ad84\u4f4d<\/td>\n<\/tr>\n<tr>\n<td>\u8bbe\u7f6e\u5217\u5730\u5740&#xff08;\u4f4e\u4f4d&#xff09;<\/td>\n<td>0<\/td>\n<td>0<\/td>\n<td>0<\/td>\n<td>0<\/td>\n<td>X3<\/td>\n<td>X2<\/td>\n<td>X1<\/td>\n<td>X0<\/td>\n<td>0<\/td>\n<td>0<\/td>\n<td>\u8bbe\u7f6e\u5217\u5730\u5740\u4f4e4\u4f4d<\/td>\n<\/tr>\n<tr>\n<td>\u8bfb\u72b6\u6001\u00a0(read status)<\/td>\n<td>0<\/td>\n<td>1<\/td>\n<td>0<\/td>\n<td>M\/X<\/td>\n<td>D<\/td>\n<td>RST<\/td>\n<td>0<\/td>\n<td>0<\/td>\n<td>0<\/td>\n<td>0<\/td>\n<td>\u8bfb\u53d6IC\u72b6\u6001<\/td>\n<\/tr>\n<tr>\n<td>\u5199\u6570\u636e\u00a0(write data)<\/td>\n<td>1<\/td>\n<td>0<\/td>\n<td>D7<\/td>\n<td>D6<\/td>\n<td>D5<\/td>\n<td>D4<\/td>\n<td>D3<\/td>\n<td>D2<\/td>\n<td>D1<\/td>\n<td>D0<\/td>\n<td>\u5411DDRAM\u5199\u5165\u6570\u636e<\/td>\n<\/tr>\n<tr>\n<td>\u8bfb\u6570\u636e\u00a0(read data)<\/td>\n<td>1<\/td>\n<td>1<\/td>\n<td>D7<\/td>\n<td>D6<\/td>\n<td>D5<\/td>\n<td>D4<\/td>\n<td>D3<\/td>\n<td>D2<\/td>\n<td>D1<\/td>\n<td>D0<\/td>\n<td>\u4eceDDRAM\u8bfb\u53d6\u6570\u636e<\/td>\n<\/tr>\n<tr>\n<td>SEG\u626b\u63cf\u65b9\u5411\u00a0(seg direction)<\/td>\n<td>0<\/td>\n<td>0<\/td>\n<td>1<\/td>\n<td>0<\/td>\n<td>1<\/td>\n<td>0<\/td>\n<td>0<\/td>\n<td>0<\/td>\n<td>0<\/td>\n<td>MX<\/td>\n<td>MX&#061;1&#xff1a;\u5de6\u53f3\u98a0\u5012<br \/>\nMX&#061;0&#xff1a;\u6b63\u5e38<\/td>\n<\/tr>\n<tr>\n<td>\u53cd\u663e\u00a0(inverse display)<\/td>\n<td>0<\/td>\n<td>0<\/td>\n<td>1<\/td>\n<td>0<\/td>\n<td>1<\/td>\n<td>0<\/td>\n<td>0<\/td>\n<td>1<\/td>\n<td>1<\/td>\n<td>INV<\/td>\n<td>INV&#061;1&#xff1a;\u53cd\u663e<br \/>\nINV&#061;0&#xff1a;\u6b63\u5e38<\/td>\n<\/tr>\n<tr>\n<td>\u5168\u5c4f\u70b9\u4eae\u00a0(all pixel on)<\/td>\n<td>0<\/td>\n<td>0<\/td>\n<td>1<\/td>\n<td>0<\/td>\n<td>1<\/td>\n<td>0<\/td>\n<td>0<\/td>\n<td>1<\/td>\n<td>0<\/td>\n<td>AP<\/td>\n<td>AP&#061;1&#xff1a;\u5168\u4eae<br \/>\nAP&#061;0&#xff1a;\u6b63\u5e38<\/td>\n<\/tr>\n<tr>\n<td>\u504f\u7f6e\u9009\u62e9\u00a0(bias select)<\/td>\n<td>0<\/td>\n<td>0<\/td>\n<td>1<\/td>\n<td>0<\/td>\n<td>1<\/td>\n<td>0<\/td>\n<td>0<\/td>\n<td>1<\/td>\n<td>1<\/td>\n<td>BS<\/td>\n<td>BS&#061;0&#xff1a;1\/9<br \/>\nBS&#061;1&#xff1a;1\/7&#xff08;1\/65\u5360\u7a7a\u6bd4&#xff09;<\/td>\n<\/tr>\n<tr>\n<td>\u8bfb-\u6539-\u5199\u6a21\u5f0f\u00a0(read-modify-write)<\/td>\n<td>0<\/td>\n<td>0<\/td>\n<td>1<\/td>\n<td>1<\/td>\n<td>1<\/td>\n<td>0<\/td>\n<td>0<\/td>\n<td>0<\/td>\n<td>0<\/td>\n<td>0<\/td>\n<td>\u884c\u5730\u5740\u589e\u91cf&#xff1a;\u8bfb&#061;0&#xff0c;\u5199&#061;&#043;1<\/td>\n<\/tr>\n<tr>\n<td>\u8bfb-\u6539-\u5199\u7ed3\u675f\u00a0(end)<\/td>\n<td>0<\/td>\n<td>0<\/td>\n<td>1<\/td>\n<td>1<\/td>\n<td>1<\/td>\n<td>0<\/td>\n<td>1<\/td>\n<td>1<\/td>\n<td>1<\/td>\n<td>0<\/td>\n<td>\u9000\u51fa\u8bfb-\u6539-\u5199\u6a21\u5f0f<\/td>\n<\/tr>\n<tr>\n<td>\u590d\u4f4d\u00a0(reset)<\/td>\n<td>0<\/td>\n<td>0<\/td>\n<td>1<\/td>\n<td>1<\/td>\n<td>1<\/td>\n<td>0<\/td>\n<td>0<\/td>\n<td>0<\/td>\n<td>0<\/td>\n<td>0<\/td>\n<td>\u8f6f\u4ef6\u590d\u4f4d<\/td>\n<\/tr>\n<tr>\n<td>COM\u626b\u63cf\u65b9\u5411\u00a0(com direction)<\/td>\n<td>0<\/td>\n<td>0<\/td>\n<td>1<\/td>\n<td>1<\/td>\n<td>1<\/td>\n<td>0<\/td>\n<td>0<\/td>\n<td>MY<\/td>\n<td>0<\/td>\n<td>0<\/td>\n<td>MY&#061;1&#xff1a;\u4e0a\u4e0b\u98a0\u5012<br \/>\nMY&#061;0&#xff1a;\u6b63\u5e38<\/td>\n<\/tr>\n<tr>\n<td>\u7535\u6e90\u63a7\u5236\u00a0(power control)<\/td>\n<td>0<\/td>\n<td>0<\/td>\n<td>0<\/td>\n<td>0<\/td>\n<td>1<\/td>\n<td>0<\/td>\n<td>1<\/td>\n<td>VB<\/td>\n<td>VR<\/td>\n<td>VF<\/td>\n<td>\u7535\u6e90\u7ba1\u7406\u8bbe\u7f6e<\/td>\n<\/tr>\n<tr>\n<td>RR\u8bbe\u7f6e\u00a0(regulation ratio)<\/td>\n<td>0<\/td>\n<td>0<\/td>\n<td>0<\/td>\n<td>0<\/td>\n<td>0<\/td>\n<td>1<\/td>\n<td>0<\/td>\n<td>RR2<\/td>\n<td>RR1<\/td>\n<td>RR0<\/td>\n<td>\u9009\u62e9\u7535\u963b\u8c03\u8282\u8303\u56f4<\/td>\n<\/tr>\n<tr>\n<td>EV\u8bbe\u7f6e\u00a0(set EV)<\/td>\n<td>0<\/td>\n<td>0<\/td>\n<td>0<\/td>\n<td>0<\/td>\n<td>0<\/td>\n<td>1<\/td>\n<td>0<\/td>\n<td>EV3<\/td>\n<td>EV2<\/td>\n<td>EV1<\/td>\n<td>\u7535\u5b50\u97f3\u91cf\u7b49\u7ea7\u8bbe\u7f6e<\/td>\n<\/tr>\n<tr>\n<td>\u500d\u538b\u8bbe\u7f6e\u00a0(set booster)<\/td>\n<td>0<\/td>\n<td>0<\/td>\n<td>0<\/td>\n<td>0<\/td>\n<td>0<\/td>\n<td>1<\/td>\n<td>0<\/td>\n<td>EV3<\/td>\n<td>EV2<\/td>\n<td>EV1<\/td>\n<td>BL&#061;0&#xff1a;4\u500d<br \/>\nBL&#061;1&#xff1a;5\u500d<\/td>\n<\/tr>\n<tr>\n<td>\u7701\u7535\u6a21\u5f0f\u00a0(power save)<\/td>\n<td>0<\/td>\n<td>0<\/td>\n<td>0<\/td>\n<td>0<\/td>\n<td>0<\/td>\n<td>0<\/td>\n<td>1<\/td>\n<td>0<\/td>\n<td>0<\/td>\n<td>0<\/td>\n<td>\u663e\u793a\u5173\u95ed &#043; \u5168\u5c4f\u70b9\u4eae<\/td>\n<\/tr>\n<tr>\n<td>\u7a7a\u64cd\u4f5c\u00a0(nop)<\/td>\n<td>0<\/td>\n<td>0<\/td>\n<td>1<\/td>\n<td>1<\/td>\n<td>1<\/td>\n<td>1<\/td>\n<td>0<\/td>\n<td>0<\/td>\n<td>0<\/td>\n<td>0<\/td>\n<td>\u4e0d\u6267\u884c\u64cd\u4f5c<\/td>\n<\/tr>\n<tr>\n<td>\u6d4b\u8bd5\u6307\u4ee4\u00a0(test)<\/td>\n<td>0<\/td>\n<td>0<\/td>\n<td>1<\/td>\n<td>1<\/td>\n<td>1<\/td>\n<td>1<\/td>\n<td>1<\/td>\n<td>0<\/td>\n<td>1<\/td>\n<td>1<\/td>\n<td>\u6d4b\u8bd5\u6a21\u5f0f<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>\u516b\u3001\u5934\u6587\u4ef6&#xff1a;<\/p>\n<p>#ifndef __ST7567_H<br \/>\n#define __ST7567_H<\/p>\n<p>#include &#034;main.h&#034;<br \/>\n#include &lt;stdint.h&gt;<\/p>\n<p>\/\/ \u5c4f\u5e55\u5c3a\u5bf8\u5b9a\u4e49<br \/>\n#define LCD_WIDTH \u00a0 \u00a0 \u00a0 128<br \/>\n#define LCD_HEIGHT \u00a0 \u00a0 \u00a064<br \/>\n#define LCD_PAGES \u00a0 \u00a0 \u00a0 8 \u00a0 \u00a0 \u00a0\/\/ 64\/8 &#061; 8\u9875<\/p>\n<p>\/\/ \u547d\u4ee4\u5b9a\u4e49<br \/>\n#define DISPLAY_ON \u00a0 \u00a0 \u00a00xAF<br \/>\n#define DISPLAY_OFF \u00a0 \u00a0 0xAE<br \/>\n#define SET_START_LINE \u00a00x40<br \/>\n#define PAGE_ADDRESS \u00a0 \u00a00xB0<br \/>\n#define COLUMN_ADDRESS \u00a00x10<br \/>\n#define ADC_NORMAL \u00a0 \u00a0 \u00a00xA0<br \/>\n#define ADC_REVERSE \u00a0 \u00a0 0xA1<br \/>\n#define DISPLAY_NORMAL \u00a00xA6<br \/>\n#define DISPLAY_REVERSE 0xA7<br \/>\n#define DISPLAY_ALL_ON \u00a00xA5<br \/>\n#define DISPLAY_ALL_OFF 0xA4<br \/>\n#define LCD_BIAS_9 \u00a0 \u00a0 \u00a00xA2<br \/>\n#define LCD_BIAS_7 \u00a0 \u00a0 \u00a00xA3<br \/>\n#define RESET \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 0xE2<br \/>\n#define COM_NORMAL \u00a0 \u00a0 \u00a00xC0<br \/>\n#define COM_REVERSE \u00a0 \u00a0 0xC8<br \/>\n#define POWER_CTRL \u00a0 \u00a0 \u00a00x28<br \/>\n#define REG_RES_RATIO \u00a0 0x20<br \/>\n#define ELECTRONIC_VOLUME 0x81<br \/>\n#define BOOSTER_RATIO \u00a0 0xF8<br \/>\n#define READ_MODIFY_WRITE 0xE0<br \/>\n#define END \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 0xEE<br \/>\n#define NOP \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 0xE3<\/p>\n<p>\/\/ \u5f15\u811a\u5b9a\u4e49&#xff08;\u6839\u636e\u5b9e\u9645\u786c\u4ef6\u8fde\u63a5\u4fee\u6539&#xff09;<br \/>\n#define LCD_CS_PORT \u00a0 \u00a0 GPIOA<br \/>\n#define LCD_CS_PIN \u00a0 \u00a0 \u00a0GPIO_PIN_4<br \/>\n#define LCD_RESET_PORT \u00a0GPIOA<br \/>\n#define LCD_RESET_PIN \u00a0 GPIO_PIN_3<br \/>\n#define LCD_A0_PORT \u00a0 \u00a0 GPIOA<br \/>\n#define LCD_A0_PIN \u00a0 \u00a0 \u00a0GPIO_PIN_2<br \/>\n#define LCD_SCL_PORT \u00a0 \u00a0GPIOA<br \/>\n#define LCD_SCL_PIN \u00a0 \u00a0 GPIO_PIN_5<br \/>\n#define LCD_SDA_PORT \u00a0 \u00a0GPIOA<br \/>\n#define LCD_SDA_PIN \u00a0 \u00a0 GPIO_PIN_7<\/p>\n<p>\/\/ \u51fd\u6570\u58f0\u660e<br \/>\nvoid LCD_Init(void);<br \/>\nvoid LCD_Clear(void);<br \/>\nvoid LCD_Refresh(void);<br \/>\nvoid LCD_SetContrast(uint8_t contrast);<br \/>\nvoid LCD_SetCursor(uint8_t x, uint8_t y);<br \/>\nvoid LCD_PutPixel(uint8_t x, uint8_t y, uint8_t color);<br \/>\nvoid LCD_DrawLine(uint8_t x1, uint8_t y1, uint8_t x2, uint8_t y2, uint8_t color);<br \/>\nvoid LCD_DrawRectangle(uint8_t x1, uint8_t y1, uint8_t x2, uint8_t y2, uint8_t color);<br \/>\nvoid LCD_DrawFilledRectangle(uint8_t x1, uint8_t y1, uint8_t x2, uint8_t y2, uint8_t color);<br \/>\nvoid LCD_DrawCircle(uint8_t x0, uint8_t y0, uint8_t r, uint8_t color);<br \/>\nvoid LCD_PrintChar(uint8_t x, uint8_t y, char ch);<br \/>\nvoid LCD_PrintString(uint8_t x, uint8_t y, const char *str);<br \/>\nvoid LCD_DrawBitmap(uint8_t x, uint8_t y, uint8_t width, uint8_t height, const uint8_t *bitmap);<\/p>\n<p>\/\/ \u5e95\u5c42\u786c\u4ef6\u63a5\u53e3\u51fd\u6570<br \/>\nstatic void LCD_WriteCommand(uint8_t cmd);<br \/>\nstatic void LCD_WriteData(uint8_t data);<br \/>\nstatic void LCD_Delay(uint32_t delay);<\/p>\n<p>#endif \/* __ST7567_H *\/<\/p>\n<p>\u4e5d\u3001\u6e90\u6587\u4ef6&#xff1a;<\/p>\n<p>#include &#034;st7567.h&#034;<\/p>\n<p>\/\/ \u663e\u793a\u7f13\u5b58&#xff08;128&#215;64 &#061; 1024 bits &#061; 128 bytes x 8 pages&#xff09;<br \/>\nstatic uint8_t framebuffer[LCD_PAGES][LCD_WIDTH];<\/p>\n<p>\/\/ 6&#215;8 ASCII\u5b57\u7b26\u96c6&#xff08;\u57fa\u672c\u5b57\u7b26&#xff09;<br \/>\nstatic const uint8_t font6x8[][6] &#061; {<br \/>\n\u00a0 \u00a0 {0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, \/\/ \u7a7a\u683c<br \/>\n\u00a0 \u00a0 {0x00, 0x00, 0x5F, 0x00, 0x00, 0x00}, \/\/ !<br \/>\n\u00a0 \u00a0 {0x00, 0x03, 0x00, 0x03, 0x00, 0x00}, \/\/ &#034;<br \/>\n\u00a0 \u00a0 {0x14, 0x7F, 0x14, 0x7F, 0x14, 0x00}, \/\/ #<br \/>\n\u00a0 \u00a0 {0x24, 0x2A, 0x7F, 0x2A, 0x12, 0x00}, \/\/ $<br \/>\n\u00a0 \u00a0 {0x23, 0x13, 0x08, 0x64, 0x62, 0x00}, \/\/ %<br \/>\n\u00a0 \u00a0 {0x36, 0x49, 0x55, 0x22, 0x50, 0x00}, \/\/ &amp;<br \/>\n\u00a0 \u00a0 {0x00, 0x05, 0x03, 0x00, 0x00, 0x00}, \/\/ &#039;<br \/>\n\u00a0 \u00a0 {0x00, 0x1C, 0x22, 0x41, 0x00, 0x00}, \/\/ (<br \/>\n\u00a0 \u00a0 {0x00, 0x41, 0x22, 0x1C, 0x00, 0x00}, \/\/ )<br \/>\n\u00a0 \u00a0 {0x14, 0x08, 0x3E, 0x08, 0x14, 0x00}, \/\/ *<br \/>\n\u00a0 \u00a0 {0x08, 0x08, 0x3E, 0x08, 0x08, 0x00}, \/\/ &#043;<br \/>\n\u00a0 \u00a0 {0x00, 0x50, 0x30, 0x00, 0x00, 0x00}, \/\/ ,<br \/>\n\u00a0 \u00a0 {0x08, 0x08, 0x08, 0x08, 0x08, 0x00}, \/\/ &#8211;<br \/>\n\u00a0 \u00a0 {0x00, 0x60, 0x60, 0x00, 0x00, 0x00}, \/\/ .<br \/>\n\u00a0 \u00a0 {0x20, 0x10, 0x08, 0x04, 0x02, 0x00}, \/\/ \/<br \/>\n\u00a0 \u00a0 {0x3E, 0x51, 0x49, 0x45, 0x3E, 0x00}, \/\/ 0<br \/>\n\u00a0 \u00a0 {0x00, 0x42, 0x7F, 0x40, 0x00, 0x00}, \/\/ 1<br \/>\n\u00a0 \u00a0 {0x42, 0x61, 0x51, 0x49, 0x46, 0x00}, \/\/ 2<br \/>\n\u00a0 \u00a0 {0x21, 0x41, 0x45, 0x4B, 0x31, 0x00}, \/\/ 3<br \/>\n\u00a0 \u00a0 {0x18, 0x14, 0x12, 0x7F, 0x10, 0x00}, \/\/ 4<br \/>\n\u00a0 \u00a0 {0x27, 0x45, 0x45, 0x45, 0x39, 0x00}, \/\/ 5<br \/>\n\u00a0 \u00a0 {0x3C, 0x4A, 0x49, 0x49, 0x30, 0x00}, \/\/ 6<br \/>\n\u00a0 \u00a0 {0x01, 0x71, 0x09, 0x05, 0x03, 0x00}, \/\/ 7<br \/>\n\u00a0 \u00a0 {0x36, 0x49, 0x49, 0x49, 0x36, 0x00}, \/\/ 8<br \/>\n\u00a0 \u00a0 {0x06, 0x49, 0x49, 0x29, 0x1E, 0x00}, \/\/ 9<br \/>\n\u00a0 \u00a0 {0x00, 0x36, 0x36, 0x00, 0x00, 0x00}, \/\/ :<br \/>\n\u00a0 \u00a0 {0x00, 0x56, 0x36, 0x00, 0x00, 0x00}, \/\/ ;<br \/>\n\u00a0 \u00a0 {0x08, 0x14, 0x22, 0x41, 0x00, 0x00}, \/\/ &lt;<br \/>\n\u00a0 \u00a0 {0x14, 0x14, 0x14, 0x14, 0x14, 0x00}, \/\/ &#061;<br \/>\n\u00a0 \u00a0 {0x00, 0x41, 0x22, 0x14, 0x08, 0x00}, \/\/ &gt;<br \/>\n\u00a0 \u00a0 {0x02, 0x01, 0x51, 0x09, 0x06, 0x00}, \/\/ ?<br \/>\n\u00a0 \u00a0 {0x32, 0x49, 0x79, 0x41, 0x3E, 0x00}, \/\/ &#064;<br \/>\n\u00a0 \u00a0 {0x7E, 0x11, 0x11, 0x11, 0x7E, 0x00}, \/\/ A<br \/>\n\u00a0 \u00a0 {0x7F, 0x49, 0x49, 0x49, 0x36, 0x00}, \/\/ B<br \/>\n\u00a0 \u00a0 {0x3E, 0x41, 0x41, 0x41, 0x22, 0x00}, \/\/ C<br \/>\n\u00a0 \u00a0 {0x7F, 0x41, 0x41, 0x22, 0x1C, 0x00}, \/\/ D<br \/>\n\u00a0 \u00a0 {0x7F, 0x49, 0x49, 0x49, 0x41, 0x00}, \/\/ E<br \/>\n\u00a0 \u00a0 {0x7F, 0x09, 0x09, 0x09, 0x01, 0x00}, \/\/ F<br \/>\n\u00a0 \u00a0 {0x3E, 0x41, 0x49, 0x49, 0x7A, 0x00}, \/\/ G<br \/>\n\u00a0 \u00a0 {0x7F, 0x08, 0x08, 0x08, 0x7F, 0x00}, \/\/ H<br \/>\n\u00a0 \u00a0 {0x00, 0x41, 0x7F, 0x41, 0x00, 0x00}, \/\/ I<br \/>\n\u00a0 \u00a0 {0x20, 0x40, 0x41, 0x3F, 0x01, 0x00}, \/\/ J<br \/>\n\u00a0 \u00a0 {0x7F, 0x08, 0x14, 0x22, 0x41, 0x00}, \/\/ K<br \/>\n\u00a0 \u00a0 {0x7F, 0x40, 0x40, 0x40, 0x40, 0x00}, \/\/ L<br \/>\n\u00a0 \u00a0 {0x7F, 0x02, 0x0C, 0x02, 0x7F, 0x00}, \/\/ M<br \/>\n\u00a0 \u00a0 {0x7F, 0x04, 0x08, 0x10, 0x7F, 0x00}, \/\/ N<br \/>\n\u00a0 \u00a0 {0x3E, 0x41, 0x41, 0x41, 0x3E, 0x00}, \/\/ O<br \/>\n\u00a0 \u00a0 {0x7F, 0x09, 0x09, 0x09, 0x06, 0x00}, \/\/ P<br \/>\n\u00a0 \u00a0 {0x3E, 0x41, 0x51, 0x21, 0x5E, 0x00}, \/\/ Q<br \/>\n\u00a0 \u00a0 {0x7F, 0x09, 0x19, 0x29, 0x46, 0x00}, \/\/ R<br \/>\n\u00a0 \u00a0 {0x46, 0x49, 0x49, 0x49, 0x31, 0x00}, \/\/ S<br \/>\n\u00a0 \u00a0 {0x01, 0x01, 0x7F, 0x01, 0x01, 0x00}, \/\/ T<br \/>\n\u00a0 \u00a0 {0x3F, 0x40, 0x40, 0x40, 0x3F, 0x00}, \/\/ U<br \/>\n\u00a0 \u00a0 {0x1F, 0x20, 0x40, 0x20, 0x1F, 0x00}, \/\/ V<br \/>\n\u00a0 \u00a0 {0x3F, 0x40, 0x38, 0x40, 0x3F, 0x00}, \/\/ W<br \/>\n\u00a0 \u00a0 {0x63, 0x14, 0x08, 0x14, 0x63, 0x00}, \/\/ X<br \/>\n\u00a0 \u00a0 {0x07, 0x08, 0x70, 0x08, 0x07, 0x00}, \/\/ Y<br \/>\n\u00a0 \u00a0 {0x61, 0x51, 0x49, 0x45, 0x43, 0x00}, \/\/ Z<br \/>\n\u00a0 \u00a0 \/\/ \u53ef\u4ee5\u7ee7\u7eed\u6dfb\u52a0\u66f4\u591a\u5b57\u7b26&#8230;<br \/>\n};<\/p>\n<p>\/\/ \u5e95\u5c42\u786c\u4ef6\u63a7\u5236\u51fd\u6570<br \/>\nstatic void LCD_Delay(uint32_t delay)<br \/>\n{<br \/>\n\u00a0 \u00a0 HAL_Delay(delay);<br \/>\n}<\/p>\n<p>static void LCD_CS_Low(void)<br \/>\n{<br \/>\n\u00a0 \u00a0 HAL_GPIO_WritePin(LCD_CS_PORT, LCD_CS_PIN, GPIO_PIN_RESET);<br \/>\n}<\/p>\n<p>static void LCD_CS_High(void)<br \/>\n{<br \/>\n\u00a0 \u00a0 HAL_GPIO_WritePin(LCD_CS_PORT, LCD_CS_PIN, GPIO_PIN_SET);<br \/>\n}<\/p>\n<p>static void LCD_A0_Low(void)<br \/>\n{<br \/>\n\u00a0 \u00a0 HAL_GPIO_WritePin(LCD_A0_PORT, LCD_A0_PIN, GPIO_PIN_RESET);<br \/>\n}<\/p>\n<p>static void LCD_A0_High(void)<br \/>\n{<br \/>\n\u00a0 \u00a0 HAL_GPIO_WritePin(LCD_A0_PORT, LCD_A0_PIN, GPIO_PIN_SET);<br \/>\n}<\/p>\n<p>static void LCD_RESET_Low(void)<br \/>\n{<br \/>\n\u00a0 \u00a0 HAL_GPIO_WritePin(LCD_RESET_PORT, LCD_RESET_PIN, GPIO_PIN_RESET);<br \/>\n}<\/p>\n<p>static void LCD_RESET_High(void)<br \/>\n{<br \/>\n\u00a0 \u00a0 HAL_GPIO_WritePin(LCD_RESET_PORT, LCD_RESET_PIN, GPIO_PIN_SET);<br \/>\n}<\/p>\n<p>static void LCD_WriteByte(uint8_t data)<br \/>\n{<br \/>\n\u00a0 \u00a0 \/\/ \u8fd9\u91cc\u4f7f\u7528\u8f6f\u4ef6\u6a21\u62dfSPI&#xff0c;\u4e5f\u53ef\u4ee5\u4f7f\u7528\u786c\u4ef6SPI<br \/>\n\u00a0 \u00a0 for(uint8_t i &#061; 0; i &lt; 8; i&#043;&#043;) {<br \/>\n\u00a0 \u00a0 \u00a0 \u00a0 HAL_GPIO_WritePin(LCD_SCL_PORT, LCD_SCL_PIN, GPIO_PIN_RESET);<br \/>\n\u00a0 \u00a0 \u00a0 \u00a0\u00a0<br \/>\n\u00a0 \u00a0 \u00a0 \u00a0 if(data &amp; 0x80) {<br \/>\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 HAL_GPIO_WritePin(LCD_SDA_PORT, LCD_SDA_PIN, GPIO_PIN_SET);<br \/>\n\u00a0 \u00a0 \u00a0 \u00a0 } else {<br \/>\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 HAL_GPIO_WritePin(LCD_SDA_PORT, LCD_SDA_PIN, GPIO_PIN_RESET);<br \/>\n\u00a0 \u00a0 \u00a0 \u00a0 }<br \/>\n\u00a0 \u00a0 \u00a0 \u00a0\u00a0<br \/>\n\u00a0 \u00a0 \u00a0 \u00a0 data &lt;&lt;&#061; 1;<br \/>\n\u00a0 \u00a0 \u00a0 \u00a0 LCD_Delay(1);<br \/>\n\u00a0 \u00a0 \u00a0 \u00a0 HAL_GPIO_WritePin(LCD_SCL_PORT, LCD_SCL_PIN, GPIO_PIN_SET);<br \/>\n\u00a0 \u00a0 \u00a0 \u00a0 LCD_Delay(1);<br \/>\n\u00a0 \u00a0 }<br \/>\n}<\/p>\n<p>static void LCD_WriteCommand(uint8_t cmd)<br \/>\n{<br \/>\n\u00a0 \u00a0 LCD_CS_Low();<br \/>\n\u00a0 \u00a0 LCD_A0_Low();<br \/>\n\u00a0 \u00a0 LCD_WriteByte(cmd);<br \/>\n\u00a0 \u00a0 LCD_CS_High();<br \/>\n}<\/p>\n<p>static void LCD_WriteData(uint8_t data)<br \/>\n{<br \/>\n\u00a0 \u00a0 LCD_CS_Low();<br \/>\n\u00a0 \u00a0 LCD_A0_High();<br \/>\n\u00a0 \u00a0 LCD_WriteByte(data);<br \/>\n\u00a0 \u00a0 LCD_CS_High();<br \/>\n}<\/p>\n<p>\/\/ \u521d\u59cb\u5316LCD<br \/>\nvoid LCD_Init(void)<br \/>\n{<br \/>\n\u00a0 \u00a0 \/\/ \u786c\u4ef6\u590d\u4f4d<br \/>\n\u00a0 \u00a0 LCD_RESET_Low();<br \/>\n\u00a0 \u00a0 LCD_Delay(50);<br \/>\n\u00a0 \u00a0 LCD_RESET_High();<br \/>\n\u00a0 \u00a0 LCD_Delay(50);<br \/>\n\u00a0 \u00a0\u00a0<br \/>\n\u00a0 \u00a0 \/\/ \u521d\u59cb\u5316\u5e8f\u5217<br \/>\n\u00a0 \u00a0 LCD_WriteCommand(DISPLAY_OFF); \u00a0 \u00a0 \u00a0 \u00a0 \u00a0\/\/ \u5173\u95ed\u663e\u793a<br \/>\n\u00a0 \u00a0 LCD_WriteCommand(SET_START_LINE); \u00a0 \u00a0 \u00a0 \/\/ \u8bbe\u7f6e\u8d77\u59cb\u884c<br \/>\n\u00a0 \u00a0 LCD_WriteCommand(ADC_NORMAL); \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \/\/ \u6b63\u5e38ADC<br \/>\n\u00a0 \u00a0 LCD_WriteCommand(DISPLAY_NORMAL); \u00a0 \u00a0 \u00a0 \/\/ \u6b63\u5e38\u663e\u793a<br \/>\n\u00a0 \u00a0 LCD_WriteCommand(DISPLAY_ALL_OFF); \u00a0 \u00a0 \u00a0\/\/ \u5168\u5c4f\u663e\u793a\u5173\u95ed<br \/>\n\u00a0 \u00a0 LCD_WriteCommand(LCD_BIAS_9); \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \/\/ 1\/9\u504f\u538b<br \/>\n\u00a0 \u00a0 LCD_WriteCommand(COM_NORMAL); \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \/\/ \u6b63\u5e38COM\u626b\u63cf<br \/>\n\u00a0 \u00a0 LCD_WriteCommand(REG_RES_RATIO | 0x5); \u00a0\/\/ \u5185\u90e8\u7535\u963b\u6bd4\u4f8b<br \/>\n\u00a0 \u00a0\u00a0<br \/>\n\u00a0 \u00a0 \/\/ \u7535\u6e90\u63a7\u5236\u8bbe\u7f6e<br \/>\n\u00a0 \u00a0 LCD_WriteCommand(POWER_CTRL | 0x7); \u00a0 \u00a0 \/\/ \u6240\u6709\u7535\u6e90\u8bbe\u7f6e\u5f00\u542f<br \/>\n\u00a0 \u00a0\u00a0<br \/>\n\u00a0 \u00a0 \/\/ \u8bbe\u7f6e\u5bf9\u6bd4\u5ea6<br \/>\n\u00a0 \u00a0 LCD_WriteCommand(ELECTRONIC_VOLUME);<br \/>\n\u00a0 \u00a0 LCD_WriteCommand(0x1F); \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \/\/ \u5bf9\u6bd4\u5ea6\u503c (0-63)<br \/>\n\u00a0 \u00a0\u00a0<br \/>\n\u00a0 \u00a0 \/\/ \u5f00\u542f\u663e\u793a<br \/>\n\u00a0 \u00a0 LCD_WriteCommand(DISPLAY_ON);<br \/>\n\u00a0 \u00a0 LCD_Delay(100);<br \/>\n\u00a0 \u00a0\u00a0<br \/>\n\u00a0 \u00a0 \/\/ \u6e05\u5c4f<br \/>\n\u00a0 \u00a0 LCD_Clear();<br \/>\n}<\/p>\n<p>\/\/ \u6e05\u5c4f<br \/>\nvoid LCD_Clear(void)<br \/>\n{<br \/>\n\u00a0 \u00a0 for(uint8_t page &#061; 0; page &lt; LCD_PAGES; page&#043;&#043;) {<br \/>\n\u00a0 \u00a0 \u00a0 \u00a0 for(uint8_t col &#061; 0; col &lt; LCD_WIDTH; col&#043;&#043;) {<br \/>\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 framebuffer[page][col] &#061; 0x00;<br \/>\n\u00a0 \u00a0 \u00a0 \u00a0 }<br \/>\n\u00a0 \u00a0 }<br \/>\n\u00a0 \u00a0 LCD_Refresh();<br \/>\n}<\/p>\n<p>\/\/ \u5237\u65b0\u663e\u793a<br \/>\nvoid LCD_Refresh(void)<br \/>\n{<br \/>\n\u00a0 \u00a0 for(uint8_t page &#061; 0; page &lt; LCD_PAGES; page&#043;&#043;) {<br \/>\n\u00a0 \u00a0 \u00a0 \u00a0 LCD_WriteCommand(PAGE_ADDRESS | page); \u00a0 \u00a0 \u00a0\/\/ \u8bbe\u7f6e\u9875\u5730\u5740<br \/>\n\u00a0 \u00a0 \u00a0 \u00a0 LCD_WriteCommand(COLUMN_ADDRESS | 0); \u00a0 \u00a0 \u00a0 \/\/ \u8bbe\u7f6e\u5217\u5730\u5740\u9ad84\u4f4d<br \/>\n\u00a0 \u00a0 \u00a0 \u00a0 LCD_WriteCommand(0x00); \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \/\/ \u8bbe\u7f6e\u5217\u5730\u5740\u4f4e4\u4f4d<br \/>\n\u00a0 \u00a0 \u00a0 \u00a0\u00a0<br \/>\n\u00a0 \u00a0 \u00a0 \u00a0 for(uint8_t col &#061; 0; col &lt; LCD_WIDTH; col&#043;&#043;) {<br \/>\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 LCD_WriteData(framebuffer[page][col]);<br \/>\n\u00a0 \u00a0 \u00a0 \u00a0 }<br \/>\n\u00a0 \u00a0 }<br \/>\n}<\/p>\n<p>\/\/ \u8bbe\u7f6e\u5bf9\u6bd4\u5ea6<br \/>\nvoid LCD_SetContrast(uint8_t contrast)<br \/>\n{<br \/>\n\u00a0 \u00a0 if(contrast &gt; 63) contrast &#061; 63;<br \/>\n\u00a0 \u00a0\u00a0<br \/>\n\u00a0 \u00a0 LCD_WriteCommand(ELECTRONIC_VOLUME);<br \/>\n\u00a0 \u00a0 LCD_WriteCommand(contrast);<br \/>\n}<\/p>\n<p>\/\/ \u8bbe\u7f6e\u5149\u6807\u4f4d\u7f6e<br \/>\nvoid LCD_SetCursor(uint8_t x, uint8_t y)<br \/>\n{<br \/>\n\u00a0 \u00a0 if(x &gt;&#061; LCD_WIDTH) x &#061; LCD_WIDTH &#8211; 1;<br \/>\n\u00a0 \u00a0 if(y &gt;&#061; LCD_HEIGHT) y &#061; LCD_HEIGHT &#8211; 1;<br \/>\n\u00a0 \u00a0\u00a0<br \/>\n\u00a0 \u00a0 uint8_t page &#061; y \/ 8;<br \/>\n\u00a0 \u00a0 uint8_t col &#061; x;<br \/>\n\u00a0 \u00a0\u00a0<br \/>\n\u00a0 \u00a0 LCD_WriteCommand(PAGE_ADDRESS | page);<br \/>\n\u00a0 \u00a0 LCD_WriteCommand(COLUMN_ADDRESS | (col &gt;&gt; 4));<br \/>\n\u00a0 \u00a0 LCD_WriteCommand(col &amp; 0x0F);<br \/>\n}<\/p>\n<p>\/\/ \u753b\u70b9<br \/>\nvoid LCD_PutPixel(uint8_t x, uint8_t y, uint8_t color)<br \/>\n{<br \/>\n\u00a0 \u00a0 if(x &gt;&#061; LCD_WIDTH || y &gt;&#061; LCD_HEIGHT) return;<br \/>\n\u00a0 \u00a0\u00a0<br \/>\n\u00a0 \u00a0 uint8_t page &#061; y \/ 8;<br \/>\n\u00a0 \u00a0 uint8_t bit &#061; y % 8;<br \/>\n\u00a0 \u00a0\u00a0<br \/>\n\u00a0 \u00a0 if(color) {<br \/>\n\u00a0 \u00a0 \u00a0 \u00a0 framebuffer[page][x] |&#061; (1 &lt;&lt; bit);<br \/>\n\u00a0 \u00a0 } else {<br \/>\n\u00a0 \u00a0 \u00a0 \u00a0 framebuffer[page][x] &amp;&#061; ~(1 &lt;&lt; bit);<br \/>\n\u00a0 \u00a0 }<br \/>\n}<\/p>\n<p>\/\/ \u753b\u7ebf<br \/>\nvoid LCD_DrawLine(uint8_t x1, uint8_t y1, uint8_t x2, uint8_t y2, uint8_t color)<br \/>\n{<br \/>\n\u00a0 \u00a0 int16_t dx &#061; abs(x2 &#8211; x1);<br \/>\n\u00a0 \u00a0 int16_t dy &#061; abs(y2 &#8211; y1);<br \/>\n\u00a0 \u00a0 int16_t sx &#061; (x1 &lt; x2) ? 1 : -1;<br \/>\n\u00a0 \u00a0 int16_t sy &#061; (y1 &lt; y2) ? 1 : -1;<br \/>\n\u00a0 \u00a0 int16_t err &#061; dx &#8211; dy;<br \/>\n\u00a0 \u00a0\u00a0<br \/>\n\u00a0 \u00a0 while(1) {<br \/>\n\u00a0 \u00a0 \u00a0 \u00a0 LCD_PutPixel(x1, y1, color);<br \/>\n\u00a0 \u00a0 \u00a0 \u00a0\u00a0<br \/>\n\u00a0 \u00a0 \u00a0 \u00a0 if(x1 &#061;&#061; x2 &amp;&amp; y1 &#061;&#061; y2) break;<br \/>\n\u00a0 \u00a0 \u00a0 \u00a0\u00a0<br \/>\n\u00a0 \u00a0 \u00a0 \u00a0 int16_t e2 &#061; 2 * err;<br \/>\n\u00a0 \u00a0 \u00a0 \u00a0 if(e2 &gt; -dy) {<br \/>\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 err -&#061; dy;<br \/>\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 x1 &#043;&#061; sx;<br \/>\n\u00a0 \u00a0 \u00a0 \u00a0 }<br \/>\n\u00a0 \u00a0 \u00a0 \u00a0 if(e2 &lt; dx) {<br \/>\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 err &#043;&#061; dx;<br \/>\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 y1 &#043;&#061; sy;<br \/>\n\u00a0 \u00a0 \u00a0 \u00a0 }<br \/>\n\u00a0 \u00a0 }<br \/>\n}<\/p>\n<p>\/\/ \u753b\u77e9\u5f62<br \/>\nvoid LCD_DrawRectangle(uint8_t x1, uint8_t y1, uint8_t x2, uint8_t y2, uint8_t color)<br \/>\n{<br \/>\n\u00a0 \u00a0 LCD_DrawLine(x1, y1, x2, y1, color); \/\/ \u4e0a\u8fb9<br \/>\n\u00a0 \u00a0 LCD_DrawLine(x1, y2, x2, y2, color); \/\/ \u4e0b\u8fb9<br \/>\n\u00a0 \u00a0 LCD_DrawLine(x1, y1, x1, y2, color); \/\/ \u5de6\u8fb9<br \/>\n\u00a0 \u00a0 LCD_DrawLine(x2, y1, x2, y2, color); \/\/ \u53f3\u8fb9<br \/>\n}<\/p>\n<p>\/\/ \u753b\u5b9e\u5fc3\u77e9\u5f62<br \/>\nvoid LCD_DrawFilledRectangle(uint8_t x1, uint8_t y1, uint8_t x2, uint8_t y2, uint8_t color)<br \/>\n{<br \/>\n\u00a0 \u00a0 for(uint8_t y &#061; y1; y &lt;&#061; y2; y&#043;&#043;) {<br \/>\n\u00a0 \u00a0 \u00a0 \u00a0 for(uint8_t x &#061; x1; x &lt;&#061; x2; x&#043;&#043;) {<br \/>\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 LCD_PutPixel(x, y, color);<br \/>\n\u00a0 \u00a0 \u00a0 \u00a0 }<br \/>\n\u00a0 \u00a0 }<br \/>\n}<\/p>\n<p>\/\/ \u753b\u5706<br \/>\nvoid LCD_DrawCircle(uint8_t x0, uint8_t y0, uint8_t r, uint8_t color)<br \/>\n{<br \/>\n\u00a0 \u00a0 int16_t f &#061; 1 &#8211; r;<br \/>\n\u00a0 \u00a0 int16_t ddF_x &#061; 1;<br \/>\n\u00a0 \u00a0 int16_t ddF_y &#061; -2 * r;<br \/>\n\u00a0 \u00a0 int16_t x &#061; 0;<br \/>\n\u00a0 \u00a0 int16_t y &#061; r;<br \/>\n\u00a0 \u00a0\u00a0<br \/>\n\u00a0 \u00a0 LCD_PutPixel(x0, y0 &#043; r, color);<br \/>\n\u00a0 \u00a0 LCD_PutPixel(x0, y0 &#8211; r, color);<br \/>\n\u00a0 \u00a0 LCD_PutPixel(x0 &#043; r, y0, color);<br \/>\n\u00a0 \u00a0 LCD_PutPixel(x0 &#8211; r, y0, color);<br \/>\n\u00a0 \u00a0\u00a0<br \/>\n\u00a0 \u00a0 while(x &lt; y) {<br \/>\n\u00a0 \u00a0 \u00a0 \u00a0 if(f &gt;&#061; 0) {<br \/>\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 y&#8211;;<br \/>\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 ddF_y &#043;&#061; 2;<br \/>\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 f &#043;&#061; ddF_y;<br \/>\n\u00a0 \u00a0 \u00a0 \u00a0 }<br \/>\n\u00a0 \u00a0 \u00a0 \u00a0 x&#043;&#043;;<br \/>\n\u00a0 \u00a0 \u00a0 \u00a0 ddF_x &#043;&#061; 2;<br \/>\n\u00a0 \u00a0 \u00a0 \u00a0 f &#043;&#061; ddF_x;<br \/>\n\u00a0 \u00a0 \u00a0 \u00a0\u00a0<br \/>\n\u00a0 \u00a0 \u00a0 \u00a0 LCD_PutPixel(x0 &#043; x, y0 &#043; y, color);<br \/>\n\u00a0 \u00a0 \u00a0 \u00a0 LCD_PutPixel(x0 &#8211; x, y0 &#043; y, color);<br \/>\n\u00a0 \u00a0 \u00a0 \u00a0 LCD_PutPixel(x0 &#043; x, y0 &#8211; y, color);<br \/>\n\u00a0 \u00a0 \u00a0 \u00a0 LCD_PutPixel(x0 &#8211; x, y0 &#8211; y, color);<br \/>\n\u00a0 \u00a0 \u00a0 \u00a0 LCD_PutPixel(x0 &#043; y, y0 &#043; x, color);<br \/>\n\u00a0 \u00a0 \u00a0 \u00a0 LCD_PutPixel(x0 &#8211; y, y0 &#043; x, color);<br \/>\n\u00a0 \u00a0 \u00a0 \u00a0 LCD_PutPixel(x0 &#043; y, y0 &#8211; x, color);<br \/>\n\u00a0 \u00a0 \u00a0 \u00a0 LCD_PutPixel(x0 &#8211; y, y0 &#8211; x, color);<br \/>\n\u00a0 \u00a0 }<br \/>\n}<\/p>\n<p>\/\/ \u663e\u793a\u5b57\u7b26<br \/>\nvoid LCD_PrintChar(uint8_t x, uint8_t y, char ch)<br \/>\n{<br \/>\n\u00a0 \u00a0 if(ch &lt; 32 || ch &gt; 126) ch &#061; 32; \/\/ \u53ea\u652f\u6301\u53ef\u6253\u5370\u5b57\u7b26<br \/>\n\u00a0 \u00a0\u00a0<br \/>\n\u00a0 \u00a0 uint8_t index &#061; ch &#8211; 32;<br \/>\n\u00a0 \u00a0 const uint8_t *font &#061; font6x8[index];<br \/>\n\u00a0 \u00a0\u00a0<br \/>\n\u00a0 \u00a0 for(uint8_t i &#061; 0; i &lt; 6; i&#043;&#043;) {<br \/>\n\u00a0 \u00a0 \u00a0 \u00a0 uint8_t data &#061; font[i];<br \/>\n\u00a0 \u00a0 \u00a0 \u00a0 for(uint8_t j &#061; 0; j &lt; 8; j&#043;&#043;) {<br \/>\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 if(data &amp; (1 &lt;&lt; j)) {<br \/>\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 LCD_PutPixel(x &#043; i, y &#043; j, 1);<br \/>\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 }<br \/>\n\u00a0 \u00a0 \u00a0 \u00a0 }<br \/>\n\u00a0 \u00a0 }<br \/>\n}<\/p>\n<p>\/\/ \u663e\u793a\u5b57\u7b26\u4e32<br \/>\nvoid LCD_PrintString(uint8_t x, uint8_t y, const char *str)<br \/>\n{<br \/>\n\u00a0 \u00a0 uint8_t x_pos &#061; x;<br \/>\n\u00a0 \u00a0 while(*str) {<br \/>\n\u00a0 \u00a0 \u00a0 \u00a0 LCD_PrintChar(x_pos, y, *str&#043;&#043;);<br \/>\n\u00a0 \u00a0 \u00a0 \u00a0 x_pos &#043;&#061; 6; \/\/ 6\u50cf\u7d20\u5bbd\u5b57\u7b26<br \/>\n\u00a0 \u00a0 \u00a0 \u00a0\u00a0<br \/>\n\u00a0 \u00a0 \u00a0 \u00a0 if(x_pos &gt; LCD_WIDTH &#8211; 6) {<br \/>\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 x_pos &#061; 0;<br \/>\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 y &#043;&#061; 8; \/\/ \u6362\u884c<br \/>\n\u00a0 \u00a0 \u00a0 \u00a0 }<br \/>\n\u00a0 \u00a0 }<br \/>\n}<\/p>\n<p>\/\/ \u663e\u793a\u4f4d\u56fe<br \/>\nvoid LCD_DrawBitmap(uint8_t x, uint8_t y, uint8_t width, uint8_t height, const uint8_t *bitmap)<br \/>\n{<br \/>\n\u00a0 \u00a0 for(uint8_t j &#061; 0; j &lt; height; j&#043;&#043;) {<br \/>\n\u00a0 \u00a0 \u00a0 \u00a0 for(uint8_t i &#061; 0; i &lt; width; i&#043;&#043;) {<br \/>\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 uint8_t byte &#061; bitmap[(j * width &#043; i) \/ 8];<br \/>\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 uint8_t bit &#061; (j * width &#043; i) % 8;<br \/>\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0\u00a0<br \/>\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 if(byte &amp; (1 &lt;&lt; bit)) {<br \/>\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 LCD_PutPixel(x &#043; i, y &#043; j, 1);<br \/>\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 }<br \/>\n\u00a0 \u00a0 \u00a0 \u00a0 }<br \/>\n\u00a0 \u00a0 }<br \/>\n}<\/p>\n<p>\u5341\u3001\u6d4b\u8bd5\u793a\u4f8b&#xff1a;<\/p>\n<p>#include &#034;st7567.h&#034;<br \/>\n#include &#034;main.h&#034;<\/p>\n<p>\/\/ \u793a\u4f8b\u4f4d\u56fe\u6570\u636e&#xff08;16&#215;16\u50cf\u7d20&#xff09;<br \/>\nconst uint8_t logo_bmp[] &#061; {<br \/>\n\u00a0 \u00a0 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,<br \/>\n\u00a0 \u00a0 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,<br \/>\n\u00a0 \u00a0 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,<br \/>\n\u00a0 \u00a0 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00<br \/>\n};<\/p>\n<p>int main(void)<br \/>\n{<br \/>\n\u00a0 \u00a0 \/\/ HAL\u5e93\u521d\u59cb\u5316&#xff08;\u5047\u8bbe\u4f7f\u7528STM32 HAL&#xff09;<br \/>\n\u00a0 \u00a0 HAL_Init();<br \/>\n\u00a0 \u00a0 SystemClock_Config();<br \/>\n\u00a0 \u00a0\u00a0<br \/>\n\u00a0 \u00a0 \/\/ GPIO\u521d\u59cb\u5316<br \/>\n\u00a0 \u00a0 MX_GPIO_Init();<br \/>\n\u00a0 \u00a0\u00a0<br \/>\n\u00a0 \u00a0 \/\/ LCD\u521d\u59cb\u5316<br \/>\n\u00a0 \u00a0 LCD_Init();<br \/>\n\u00a0 \u00a0\u00a0<br \/>\n\u00a0 \u00a0 \/\/ \u8bbe\u7f6e\u5bf9\u6bd4\u5ea6<br \/>\n\u00a0 \u00a0 LCD_SetContrast(0x1F);<br \/>\n\u00a0 \u00a0\u00a0<br \/>\n\u00a0 \u00a0 \/\/ \u663e\u793a\u793a\u4f8b\u5185\u5bb9<br \/>\n\u00a0 \u00a0 LCD_Clear();<br \/>\n\u00a0 \u00a0\u00a0<br \/>\n\u00a0 \u00a0 \/\/ \u663e\u793a\u6807\u9898<br \/>\n\u00a0 \u00a0 LCD_PrintString(10, 0, &#034;HS12864 TEST&#034;);<br \/>\n\u00a0 \u00a0 LCD_DrawLine(0, 10, 127, 10, 1);<br \/>\n\u00a0 \u00a0\u00a0<br \/>\n\u00a0 \u00a0 \/\/ \u663e\u793a\u56fe\u5f62<br \/>\n\u00a0 \u00a0 LCD_DrawRectangle(20, 15, 60, 40, 1);<br \/>\n\u00a0 \u00a0 LCD_DrawFilledRectangle(70, 15, 110, 40, 1);<br \/>\n\u00a0 \u00a0 LCD_DrawCircle(65, 55, 10, 1);<br \/>\n\u00a0 \u00a0\u00a0<br \/>\n\u00a0 \u00a0 \/\/ \u663e\u793a\u6587\u5b57<br \/>\n\u00a0 \u00a0 LCD_PrintString(5, 25, &#034;Hello&#034;);<br \/>\n\u00a0 \u00a0 LCD_PrintString(75, 25, &#034;World!&#034;);<br \/>\n\u00a0 \u00a0\u00a0<br \/>\n\u00a0 \u00a0 \/\/ \u663e\u793a\u4f4d\u56fe<br \/>\n\u00a0 \u00a0 LCD_DrawBitmap(100, 50, 16, 16, logo_bmp);<br \/>\n\u00a0 \u00a0\u00a0<br \/>\n\u00a0 \u00a0 \/\/ \u5237\u65b0\u663e\u793a<br \/>\n\u00a0 \u00a0 LCD_Refresh();<br \/>\n\u00a0 \u00a0\u00a0<br \/>\n\u00a0 \u00a0 \/\/ \u52a8\u753b\u793a\u4f8b<br \/>\n\u00a0 \u00a0 uint8_t x &#061; 0;<br \/>\n\u00a0 \u00a0 while(1) {<br \/>\n\u00a0 \u00a0 \u00a0 \u00a0 \/\/ \u79fb\u52a8\u7684\u65b9\u5757<br \/>\n\u00a0 \u00a0 \u00a0 \u00a0 LCD_DrawFilledRectangle(x, 45, x &#043; 5, 50, 1);<br \/>\n\u00a0 \u00a0 \u00a0 \u00a0 LCD_Refresh();<br \/>\n\u00a0 \u00a0 \u00a0 \u00a0 HAL_Delay(50);<br \/>\n\u00a0 \u00a0 \u00a0 \u00a0 LCD_DrawFilledRectangle(x, 45, x &#043; 5, 50, 0);<br \/>\n\u00a0 \u00a0 \u00a0 \u00a0\u00a0<br \/>\n\u00a0 \u00a0 \u00a0 \u00a0 x&#043;&#043;;<br \/>\n\u00a0 \u00a0 \u00a0 \u00a0 if(x &gt; 123) x &#061; 0;<br \/>\n\u00a0 \u00a0 \u00a0 \u00a0\u00a0<br \/>\n\u00a0 \u00a0 \u00a0 \u00a0 \/\/ \u6309\u952e\u68c0\u6d4b\u7b49\u5e94\u7528\u4ee3\u7801&#8230;<br \/>\n\u00a0 \u00a0 }<br \/>\n}<\/p>\n<p>\/\/ \u7b80\u5355\u7684GPIO\u521d\u59cb\u5316\u51fd\u6570<br \/>\nvoid MX_GPIO_Init(void)<br \/>\n{<br \/>\n\u00a0 \u00a0 GPIO_InitTypeDef GPIO_InitStruct &#061; {0};<br \/>\n\u00a0 \u00a0\u00a0<br \/>\n\u00a0 \u00a0 \/\/ \u4f7f\u80fdGPIO\u65f6\u949f<br \/>\n\u00a0 \u00a0 __HAL_RCC_GPIOA_CLK_ENABLE();<br \/>\n\u00a0 \u00a0\u00a0<br \/>\n\u00a0 \u00a0 \/\/ \u914d\u7f6eLCD\u63a7\u5236\u5f15\u811a<br \/>\n\u00a0 \u00a0 \/\/ CS\u5f15\u811a<br \/>\n\u00a0 \u00a0 GPIO_InitStruct.Pin &#061; LCD_CS_PIN;<br \/>\n\u00a0 \u00a0 GPIO_InitStruct.Mode &#061; GPIO_MODE_OUTPUT_PP;<br \/>\n\u00a0 \u00a0 GPIO_InitStruct.Pull &#061; GPIO_NOPULL;<br \/>\n\u00a0 \u00a0 GPIO_InitStruct.Speed &#061; GPIO_SPEED_FREQ_LOW;<br \/>\n\u00a0 \u00a0 HAL_GPIO_Init(LCD_CS_PORT, &amp;GPIO_InitStruct);<br \/>\n\u00a0 \u00a0\u00a0<br \/>\n\u00a0 \u00a0 \/\/ A0\u5f15\u811a<br \/>\n\u00a0 \u00a0 GPIO_InitStruct.Pin &#061; LCD_A0_PIN;<br \/>\n\u00a0 \u00a0 HAL_GPIO_Init(LCD_A0_PORT, &amp;GPIO_InitStruct);<br \/>\n\u00a0 \u00a0\u00a0<br \/>\n\u00a0 \u00a0 \/\/ RESET\u5f15\u811a<br \/>\n\u00a0 \u00a0 GPIO_InitStruct.Pin &#061; LCD_RESET_PIN;<br \/>\n\u00a0 \u00a0 HAL_GPIO_Init(LCD_RESET_PORT, &amp;GPIO_InitStruct);<br \/>\n\u00a0 \u00a0\u00a0<br \/>\n\u00a0 \u00a0 \/\/ SCL\u5f15\u811a<br \/>\n\u00a0 \u00a0 GPIO_InitStruct.Pin &#061; LCD_SCL_PIN;<br \/>\n\u00a0 \u00a0 HAL_GPIO_Init(LCD_SCL_PORT, &amp;GPIO_InitStruct);<br \/>\n\u00a0 \u00a0\u00a0<br \/>\n\u00a0 \u00a0 \/\/ SDA\u5f15\u811a<br \/>\n\u00a0 \u00a0 GPIO_InitStruct.Pin &#061; LCD_SDA_PIN;<br \/>\n\u00a0 \u00a0 HAL_GPIO_Init(LCD_SDA_PORT, &amp;GPIO_InitStruct);<br \/>\n\u00a0 \u00a0\u00a0<br \/>\n\u00a0 \u00a0 \/\/ \u521d\u59cb\u72b6\u6001<br \/>\n\u00a0 \u00a0 HAL_GPIO_WritePin(LCD_CS_PORT, LCD_CS_PIN, GPIO_PIN_SET);<br \/>\n\u00a0 \u00a0 HAL_GPIO_WritePin(LCD_RESET_PORT, LCD_RESET_PIN, GPIO_PIN_SET);<br \/>\n}<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u4e00\u3001\u7b80\u4ecb&#xff1a;HS12864TG10B \u578bLCD\u6db2\u6676\u663e\u793a\u5c4f\u53ef\u4ee5\u663e\u793a 128 \u5217*64 \u884c \u70b9\u9635\u5355\u8272\u56fe\u7247&#xff0c;\u6216\u663e\u793a 8 \u4e2a\/\u884c*4 \u884c 16*16 \u70b9\u9635\u7684\u6c49\u5b57&#xff0c;\u6216\u663e\u793a 16 \u4e2a\/\u884c*8 \u884c 8*8 \u70b9\u9635\u7684\u82f1\u6587\u3001\u6570\u5b57\u3001\u7b26 \u53f7\u3002\u8f93\u5165\u6307\u4ee4\u5f3a&#xff0c;\u53ef\u7ec4\u5408\u6210\u5404\u79cd\u8f93\u5165\u3001\u663e\u793a\u3001\u4f4d\u79fb\u65b9\u5f0f\u4ee5\u6ee1\u8db3\u4e0d\u540c\u7684\u8981\u6c42\u3002\u53ef\u5e7f\u6cdb\u5e94\u7528\u4e8e\u5404\u79cd\u4eea\u5668\u4eea\u8868\u3001PM2.5 \u68c0\u6d4b\u4eea&#xff0c;POS \u5237\u5361\u673a&#xff0c;\u8003\u52e4\u7cfb\u7edf\u3001\u95e8\u7981\u7cfb\u7edf\u7b49\u3002\u4e8c\u3001\u4e3b\u8981\u6280\u672f\u7279\u6027&#xff1a;\u25b3<\/p>\n","protected":false},"author":2,"featured_media":59787,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[217,270,269],"topic":[],"class_list":["post-59790","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-server","tag-stm32","tag-270","tag-269"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v20.3 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>\u57fa\u4e8eSTM32L4XX\u7684LCD\u6db2\u6676\u663e\u793a\u5c4f\uff08HS12864TG10B\uff09\u9a71\u52a8C\u7a0b\u5e8f\u8bbe\u8ba1 - \u7f51\u7855\u4e92\u8054\u5e2e\u52a9\u4e2d\u5fc3<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.wsisp.com\/helps\/59790.html\" \/>\n<meta property=\"og:locale\" content=\"zh_CN\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"\u57fa\u4e8eSTM32L4XX\u7684LCD\u6db2\u6676\u663e\u793a\u5c4f\uff08HS12864TG10B\uff09\u9a71\u52a8C\u7a0b\u5e8f\u8bbe\u8ba1 - \u7f51\u7855\u4e92\u8054\u5e2e\u52a9\u4e2d\u5fc3\" \/>\n<meta property=\"og:description\" content=\"\u4e00\u3001\u7b80\u4ecb&#xff1a;HS12864TG10B \u578bLCD\u6db2\u6676\u663e\u793a\u5c4f\u53ef\u4ee5\u663e\u793a 128 \u5217*64 \u884c \u70b9\u9635\u5355\u8272\u56fe\u7247&#xff0c;\u6216\u663e\u793a 8 \u4e2a\/\u884c*4 \u884c 16*16 \u70b9\u9635\u7684\u6c49\u5b57&#xff0c;\u6216\u663e\u793a 16 \u4e2a\/\u884c*8 \u884c 8*8 \u70b9\u9635\u7684\u82f1\u6587\u3001\u6570\u5b57\u3001\u7b26 \u53f7\u3002\u8f93\u5165\u6307\u4ee4\u5f3a&#xff0c;\u53ef\u7ec4\u5408\u6210\u5404\u79cd\u8f93\u5165\u3001\u663e\u793a\u3001\u4f4d\u79fb\u65b9\u5f0f\u4ee5\u6ee1\u8db3\u4e0d\u540c\u7684\u8981\u6c42\u3002\u53ef\u5e7f\u6cdb\u5e94\u7528\u4e8e\u5404\u79cd\u4eea\u5668\u4eea\u8868\u3001PM2.5 \u68c0\u6d4b\u4eea&#xff0c;POS \u5237\u5361\u673a&#xff0c;\u8003\u52e4\u7cfb\u7edf\u3001\u95e8\u7981\u7cfb\u7edf\u7b49\u3002\u4e8c\u3001\u4e3b\u8981\u6280\u672f\u7279\u6027&#xff1a;\u25b3\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.wsisp.com\/helps\/59790.html\" \/>\n<meta property=\"og:site_name\" content=\"\u7f51\u7855\u4e92\u8054\u5e2e\u52a9\u4e2d\u5fc3\" \/>\n<meta property=\"article:published_time\" content=\"2026-01-14T05:57:22+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.wsisp.com\/helps\/wp-content\/uploads\/2026\/01\/20260114055721-69673041008e1.png\" \/>\n<meta name=\"author\" content=\"admin\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"\u4f5c\u8005\" \/>\n\t<meta name=\"twitter:data1\" content=\"admin\" \/>\n\t<meta name=\"twitter:label2\" content=\"\u9884\u8ba1\u9605\u8bfb\u65f6\u95f4\" \/>\n\t<meta name=\"twitter:data2\" content=\"11 \u5206\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.wsisp.com\/helps\/59790.html\",\"url\":\"https:\/\/www.wsisp.com\/helps\/59790.html\",\"name\":\"\u57fa\u4e8eSTM32L4XX\u7684LCD\u6db2\u6676\u663e\u793a\u5c4f\uff08HS12864TG10B\uff09\u9a71\u52a8C\u7a0b\u5e8f\u8bbe\u8ba1 - \u7f51\u7855\u4e92\u8054\u5e2e\u52a9\u4e2d\u5fc3\",\"isPartOf\":{\"@id\":\"https:\/\/www.wsisp.com\/helps\/#website\"},\"datePublished\":\"2026-01-14T05:57:22+00:00\",\"dateModified\":\"2026-01-14T05:57:22+00:00\",\"author\":{\"@id\":\"https:\/\/www.wsisp.com\/helps\/#\/schema\/person\/358e386c577a3ab51c4493330a20ad41\"},\"breadcrumb\":{\"@id\":\"https:\/\/www.wsisp.com\/helps\/59790.html#breadcrumb\"},\"inLanguage\":\"zh-Hans\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.wsisp.com\/helps\/59790.html\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.wsisp.com\/helps\/59790.html#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"\u9996\u9875\",\"item\":\"https:\/\/www.wsisp.com\/helps\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"\u57fa\u4e8eSTM32L4XX\u7684LCD\u6db2\u6676\u663e\u793a\u5c4f\uff08HS12864TG10B\uff09\u9a71\u52a8C\u7a0b\u5e8f\u8bbe\u8ba1\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.wsisp.com\/helps\/#website\",\"url\":\"https:\/\/www.wsisp.com\/helps\/\",\"name\":\"\u7f51\u7855\u4e92\u8054\u5e2e\u52a9\u4e2d\u5fc3\",\"description\":\"\u9999\u6e2f\u670d\u52a1\u5668_\u9999\u6e2f\u4e91\u670d\u52a1\u5668\u8d44\u8baf_\u670d\u52a1\u5668\u5e2e\u52a9\u6587\u6863_\u670d\u52a1\u5668\u6559\u7a0b\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.wsisp.com\/helps\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"zh-Hans\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.wsisp.com\/helps\/#\/schema\/person\/358e386c577a3ab51c4493330a20ad41\",\"name\":\"admin\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"zh-Hans\",\"@id\":\"https:\/\/www.wsisp.com\/helps\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/gravatar.wp-china-yes.net\/avatar\/?s=96&d=mystery\",\"contentUrl\":\"https:\/\/gravatar.wp-china-yes.net\/avatar\/?s=96&d=mystery\",\"caption\":\"admin\"},\"sameAs\":[\"http:\/\/wp.wsisp.com\"],\"url\":\"https:\/\/www.wsisp.com\/helps\/author\/admin\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"\u57fa\u4e8eSTM32L4XX\u7684LCD\u6db2\u6676\u663e\u793a\u5c4f\uff08HS12864TG10B\uff09\u9a71\u52a8C\u7a0b\u5e8f\u8bbe\u8ba1 - \u7f51\u7855\u4e92\u8054\u5e2e\u52a9\u4e2d\u5fc3","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.wsisp.com\/helps\/59790.html","og_locale":"zh_CN","og_type":"article","og_title":"\u57fa\u4e8eSTM32L4XX\u7684LCD\u6db2\u6676\u663e\u793a\u5c4f\uff08HS12864TG10B\uff09\u9a71\u52a8C\u7a0b\u5e8f\u8bbe\u8ba1 - \u7f51\u7855\u4e92\u8054\u5e2e\u52a9\u4e2d\u5fc3","og_description":"\u4e00\u3001\u7b80\u4ecb&#xff1a;HS12864TG10B \u578bLCD\u6db2\u6676\u663e\u793a\u5c4f\u53ef\u4ee5\u663e\u793a 128 \u5217*64 \u884c \u70b9\u9635\u5355\u8272\u56fe\u7247&#xff0c;\u6216\u663e\u793a 8 \u4e2a\/\u884c*4 \u884c 16*16 \u70b9\u9635\u7684\u6c49\u5b57&#xff0c;\u6216\u663e\u793a 16 \u4e2a\/\u884c*8 \u884c 8*8 \u70b9\u9635\u7684\u82f1\u6587\u3001\u6570\u5b57\u3001\u7b26 \u53f7\u3002\u8f93\u5165\u6307\u4ee4\u5f3a&#xff0c;\u53ef\u7ec4\u5408\u6210\u5404\u79cd\u8f93\u5165\u3001\u663e\u793a\u3001\u4f4d\u79fb\u65b9\u5f0f\u4ee5\u6ee1\u8db3\u4e0d\u540c\u7684\u8981\u6c42\u3002\u53ef\u5e7f\u6cdb\u5e94\u7528\u4e8e\u5404\u79cd\u4eea\u5668\u4eea\u8868\u3001PM2.5 \u68c0\u6d4b\u4eea&#xff0c;POS \u5237\u5361\u673a&#xff0c;\u8003\u52e4\u7cfb\u7edf\u3001\u95e8\u7981\u7cfb\u7edf\u7b49\u3002\u4e8c\u3001\u4e3b\u8981\u6280\u672f\u7279\u6027&#xff1a;\u25b3","og_url":"https:\/\/www.wsisp.com\/helps\/59790.html","og_site_name":"\u7f51\u7855\u4e92\u8054\u5e2e\u52a9\u4e2d\u5fc3","article_published_time":"2026-01-14T05:57:22+00:00","og_image":[{"url":"https:\/\/www.wsisp.com\/helps\/wp-content\/uploads\/2026\/01\/20260114055721-69673041008e1.png"}],"author":"admin","twitter_card":"summary_large_image","twitter_misc":{"\u4f5c\u8005":"admin","\u9884\u8ba1\u9605\u8bfb\u65f6\u95f4":"11 \u5206"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.wsisp.com\/helps\/59790.html","url":"https:\/\/www.wsisp.com\/helps\/59790.html","name":"\u57fa\u4e8eSTM32L4XX\u7684LCD\u6db2\u6676\u663e\u793a\u5c4f\uff08HS12864TG10B\uff09\u9a71\u52a8C\u7a0b\u5e8f\u8bbe\u8ba1 - \u7f51\u7855\u4e92\u8054\u5e2e\u52a9\u4e2d\u5fc3","isPartOf":{"@id":"https:\/\/www.wsisp.com\/helps\/#website"},"datePublished":"2026-01-14T05:57:22+00:00","dateModified":"2026-01-14T05:57:22+00:00","author":{"@id":"https:\/\/www.wsisp.com\/helps\/#\/schema\/person\/358e386c577a3ab51c4493330a20ad41"},"breadcrumb":{"@id":"https:\/\/www.wsisp.com\/helps\/59790.html#breadcrumb"},"inLanguage":"zh-Hans","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.wsisp.com\/helps\/59790.html"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.wsisp.com\/helps\/59790.html#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"\u9996\u9875","item":"https:\/\/www.wsisp.com\/helps"},{"@type":"ListItem","position":2,"name":"\u57fa\u4e8eSTM32L4XX\u7684LCD\u6db2\u6676\u663e\u793a\u5c4f\uff08HS12864TG10B\uff09\u9a71\u52a8C\u7a0b\u5e8f\u8bbe\u8ba1"}]},{"@type":"WebSite","@id":"https:\/\/www.wsisp.com\/helps\/#website","url":"https:\/\/www.wsisp.com\/helps\/","name":"\u7f51\u7855\u4e92\u8054\u5e2e\u52a9\u4e2d\u5fc3","description":"\u9999\u6e2f\u670d\u52a1\u5668_\u9999\u6e2f\u4e91\u670d\u52a1\u5668\u8d44\u8baf_\u670d\u52a1\u5668\u5e2e\u52a9\u6587\u6863_\u670d\u52a1\u5668\u6559\u7a0b","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.wsisp.com\/helps\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"zh-Hans"},{"@type":"Person","@id":"https:\/\/www.wsisp.com\/helps\/#\/schema\/person\/358e386c577a3ab51c4493330a20ad41","name":"admin","image":{"@type":"ImageObject","inLanguage":"zh-Hans","@id":"https:\/\/www.wsisp.com\/helps\/#\/schema\/person\/image\/","url":"https:\/\/gravatar.wp-china-yes.net\/avatar\/?s=96&d=mystery","contentUrl":"https:\/\/gravatar.wp-china-yes.net\/avatar\/?s=96&d=mystery","caption":"admin"},"sameAs":["http:\/\/wp.wsisp.com"],"url":"https:\/\/www.wsisp.com\/helps\/author\/admin"}]}},"_links":{"self":[{"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/posts\/59790","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/comments?post=59790"}],"version-history":[{"count":0,"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/posts\/59790\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/media\/59787"}],"wp:attachment":[{"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/media?parent=59790"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/categories?post=59790"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/tags?post=59790"},{"taxonomy":"topic","embeddable":true,"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/topic?post=59790"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}