{"id":89809,"date":"2026-08-03T21:01:19","date_gmt":"2026-08-03T13:01:19","guid":{"rendered":"https:\/\/www.wsisp.com\/helps\/89809.html"},"modified":"2026-08-03T21:01:19","modified_gmt":"2026-08-03T13:01:19","slug":"stm32f103-%e9%a9%b1%e5%8a%a8adxl345%e4%b8%89%e8%bd%b4%e5%8a%a0%e9%80%9f%e5%ba%a6%e4%bc%a0%e6%84%9f%e5%99%a8%e8%bd%af%e4%bb%b6i2coled%e5%ae%9e%e6%97%b6%e6%98%be%e7%a4%ba","status":"publish","type":"post","link":"https:\/\/www.wsisp.com\/helps\/89809.html","title":{"rendered":"STM32F103 \u9a71\u52a8ADXL345\u4e09\u8f74\u52a0\u901f\u5ea6\u4f20\u611f\u5668(\u8f6f\u4ef6I2C+OLED\u5b9e\u65f6\u663e\u793a)"},"content":{"rendered":"<h3 style=\"background-color:transparent\">\u4e00\u3001\u524d\u8a00<\/h3>\n<p>\u672c\u6587\u5b8c\u6574\u8bb2\u89e3\u57fa\u4e8e STM32F103C8T6 &#043; ADXL345 MEMS \u4e09\u8f74\u52a0\u901f\u5ea6\u4f20\u611f\u5668 &#043; 0.96 \u5bf8 I2C OLED \u7684\u6574\u5957\u5de5\u7a0b\u539f\u7406\u3001\u786c\u4ef6\u63a5\u7ebf\u3001\u5bc4\u5b58\u5668\u914d\u7f6e\u3001\u6570\u636e\u6362\u7b97\u4e0e\u73b0\u8c61\u5206\u6790&#xff0c;\u91c7\u7528\u8f6f\u4ef6\u6a21\u62df I2C\u901a\u4fe1&#xff0c;\u65e0\u9700\u786c\u4ef6 I2C \u5916\u8bbe&#xff0c;\u65b0\u624b\u53cb\u597d&#xff0c;\u9002\u5408\u5355\u7247\u673a\u8bfe\u7a0b\u6559\u5b66\u3001\u59ff\u6001\u68c0\u6d4b\u5165\u95e8\u5b9e\u9a8c\u3002<\/p>\n<p class=\"img-center\"><img loading=\"lazy\" decoding=\"async\" alt=\"\" height=\"378\" src=\"https:\/\/www.wsisp.com\/helps\/wp-content\/uploads\/2026\/08\/20260803130116-6a70911c01274.png\" width=\"562\" \/><\/p>\n<p>\u6574\u5957\u5de5\u7a0b\u5b9e\u73b0\u903b\u8f91&#xff1a; \u6a21\u5757\u59ff\u6001 \/ \u632f\u52a8 \/ \u8fd0\u52a8\u6539\u53d8 \u2192 ADXL345 \u5185\u90e8 MEMS \u91c7\u96c6\u52a0\u901f\u5ea6 \u2192 \u8f6f\u4ef6 I2C \u8bfb\u53d6\u4e09\u8f74\u539f\u59cb\u6570\u636e \u2192 \u8f6c\u6362\u4e3a mg \u5355\u4f4d \u2192 OLED \u5b9e\u65f6\u6253\u5370 X\/Y\/Z \u4e09\u8f74\u52a0\u901f\u5ea6\u6570\u503c<\/p>\n<p>\u89c6\u9891\u8bb2\u89e3&#xff1a;<span class=\"link-card-box\"><span class=\"link-title\">STM32F103 \u9a71\u52a8ADXL345\u4e09\u8f74\u52a0\u901f\u5ea6\u4f20\u611f\u5668(\u8f6f\u4ef6I2C&#043;OLED\u5b9e\u65f6\u663e\u793a)<\/span><span class=\"link-link\"><img decoding=\"async\" class=\"link-link-icon\" src=\"https:\/\/www.wsisp.com\/helps\/wp-content\/uploads\/2026\/08\/20260803130116-6a70911c311e2.png\" \/>https:\/\/www.bilibili.com\/video\/BV1wjMd6EEDW\/?share_source&#061;copy_web&amp;vd_source&#061;91b967b41a17a5686913521545a8c3fb<\/span><\/span><\/p>\n<h3>\u4e8c\u3001\u786c\u4ef6\u63a5\u7ebf\u8bf4\u660e<\/h3>\n<h4>2.1 \u5668\u4ef6\u5f15\u811a\u5bf9\u5e94\u8868<\/h4>\n<table>\n<tr>ADXL345 \u6a21\u5757\u5f15\u811aSTM32F103 \u5f15\u811a\u529f\u80fd\u8bf4\u660e<\/tr>\n<tbody>\n<tr>\n<td>SDA<\/td>\n<td>PA0<\/td>\n<td>\u8f6f\u4ef6 I2C \u6570\u636e\u7ebf<\/td>\n<\/tr>\n<tr>\n<td>SCK(SCL)<\/td>\n<td>PA1<\/td>\n<td>\u8f6f\u4ef6 I2C \u65f6\u949f\u7ebf&#xff08;SPI \u6807 SCK&#xff0c;I2C \u6a21\u5f0f\u7b49\u6548 SCL&#xff09;<\/td>\n<\/tr>\n<tr>\n<td>CS<\/td>\n<td>3.3V<\/td>\n<td>\u62c9\u9ad8\u5207\u6362\u81f3 I2C \u901a\u4fe1\u6a21\u5f0f<\/td>\n<\/tr>\n<tr>\n<td>SDO\/ALT ADDRESS<\/td>\n<td>GND<\/td>\n<td>I2C \u4ece\u673a\u5730\u5740 0x53<\/td>\n<\/tr>\n<tr>\n<td>VCC<\/td>\n<td>3.3V<\/td>\n<td>\u4f20\u611f\u5668\u4f9b\u7535&#xff08;\u4e25\u7981\u76f4\u8fde 5V&#xff0c;\u65e0\u7a33\u538b\u6a21\u5757\u4ec5\u652f\u6301 2~3.6V&#xff09;<\/td>\n<\/tr>\n<tr>\n<td>GND<\/td>\n<td>GND<\/td>\n<td>\u5355\u7247\u673a\u4e0e\u4f20\u611f\u5668\u5171\u5730&#xff0c;\u901a\u4fe1\u7a33\u5b9a\u524d\u63d0<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<table>\n<tr>OLED \u5c4f\u5e55\u5f15\u811aSTM32F103 \u5f15\u811a\u529f\u80fd\u8bf4\u660e<\/tr>\n<tbody>\n<tr>\n<td>SCL<\/td>\n<td>PB8<\/td>\n<td>OLED \u8f6f\u4ef6 I2C \u65f6\u949f<\/td>\n<\/tr>\n<tr>\n<td>SDA<\/td>\n<td>PB9<\/td>\n<td>OLED \u8f6f\u4ef6 I2C \u6570\u636e<\/td>\n<\/tr>\n<tr>\n<td>VCC<\/td>\n<td>3.3V<\/td>\n<td>\u5c4f\u5e55\u4f9b\u7535<\/td>\n<\/tr>\n<tr>\n<td>GND<\/td>\n<td>GND<\/td>\n<td>\u5171\u5730<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h4>2.2 \u5173\u952e\u5f15\u811a\u8865\u5145\u8bf4\u660e<\/h4>\n<li>CS \u5f15\u811a \u62c9\u9ad8\u65f6 ADXL345 \u5de5\u4f5c\u5728 I2C \u6a21\u5f0f&#xff1b;\u82e5\u62c9\u4f4e\u5219\u5207\u6362 SPI \u901a\u4fe1&#xff0c;\u672c\u5de5\u7a0b\u5168\u7a0b\u4f7f\u7528 I2C&#xff0c;\u5fc5\u987b\u63a5 3.3V\u3002<\/li>\n<li>SDO \u5730\u5740\u9009\u62e9\u5f15\u811a<\/li>\n<ul>\n<li>\u63a5\u5730&#xff1a;7 \u4f4d I2C \u5730\u57400x53&#xff0c;\u5199\u5730\u57400xA6&#xff0c;\u8bfb\u5730\u57400xA7&#xff08;\u672c\u5de5\u7a0b\u4f7f\u7528&#xff09;<\/li>\n<li>\u63a5 3.3V&#xff1a;7 \u4f4d\u5730\u5740\u53d8\u4e3a0x1D&#xff0c;\u4ee3\u7801\u9700\u8981\u540c\u6b65\u4fee\u6539&#xff0c;\u5426\u5219\u8bfb\u4e0d\u5230\u6570\u636e<\/li>\n<\/ul>\n<li>I2C \u4e0a\u62c9\u7535\u963b I2C \u4e3a\u5f00\u6f0f\u603b\u7ebf&#xff0c;\u6807\u51c6\u9700\u8981 4.7k\u03a9 \u4e0a\u62c9\u81f3 3.3V&#xff1b;\u5e02\u9762\u4e0a\u6210\u54c1 ADXL345 \u6a21\u5757\u5927\u591a\u81ea\u5e26\u677f\u8f7d\u4e0a\u62c9\u7535\u963b&#xff0c;\u82e5\u51fa\u73b0\u6570\u636e\u4e71\u8df3\u3001\u901a\u4fe1\u5931\u8d25&#xff0c;\u81ea\u884c\u589e\u52a0\u4e0a\u62c9\u7535\u963b\u6392\u67e5\u3002<\/li>\n<li>\u4f9b\u7535\u8981\u6c42 \u82af\u7247\u989d\u5b9a\u7535\u538b 2.0~3.6V&#xff0c;\u53ea\u6709\u81ea\u5e26\u7a33\u538b\u3001\u7535\u5e73\u8f6c\u6362\u7684 5V \u517c\u5bb9\u6a21\u5757\u624d\u80fd\u63a5 5V&#xff0c;\u6559\u5b66\u5b9e\u9a8c\u7edf\u4e00\u63a8\u8350 3.3V \u4f9b\u7535\u907f\u514d\u70e7\u574f\u4f20\u611f\u5668\u3002<\/li>\n<h3>\u4e09\u3001ADXL345 \u6838\u5fc3\u5de5\u4f5c\u539f\u7406<\/h3>\n<p>ADXL345 \u662f\u6570\u5b57\u8f93\u51fa MEMS \u4e09\u8f74\u52a0\u901f\u5ea6\u4f20\u611f\u5668&#xff0c;\u6838\u5fc3\u662f\u82af\u7247\u5185\u90e8\u5fae\u578b\u673a\u68b0\u8d28\u91cf\u5757\u7ed3\u6784\u3002<\/p>\n<h4>3.1 \u4fe1\u53f7\u8f6c\u6362\u6d41\u7a0b<\/h4>\n<p>\u59ff\u6001 \/ \u6643\u52a8 \/ \u632f\u52a8 \u2192 \u60ef\u6027\u4f7f\u5185\u90e8\u8d28\u91cf\u5757\u4ea7\u751f\u5fae\u5c0f\u4f4d\u79fb \u2192 \u4e24\u4fa7\u5dee\u5206\u7535\u5bb9\u5bb9\u91cf\u53d1\u751f\u53d8\u5316 \u2192 \u5185\u90e8\u7535\u8def\u653e\u5927\u3001\u6ee4\u6ce2\u3001ADC \u6a21\u6570\u8f6c\u6362 \u2192 \u8f93\u51fa X\/Y\/Z \u4e09\u8f74\u6570\u5b57\u52a0\u901f\u5ea6\u503c<\/p>\n<p>\u53ef\u68c0\u6d4b\u4e24\u79cd\u52a0\u901f\u5ea6&#xff1a;<\/p>\n<li>\u9759\u6001\u52a0\u901f\u5ea6&#xff08;\u91cd\u529b&#xff09;&#xff1a;\u4f20\u611f\u5668\u9759\u6b62\u65f6\u4ec5\u53d7\u91cd\u529b&#xff0c;\u7528\u4e8e\u5224\u65ad\u503e\u659c\u89d2\u5ea6\u3001\u8bbe\u5907\u59ff\u6001&#xff1b;<\/li>\n<li>\u52a8\u6001\u52a0\u901f\u5ea6&#xff1a;\u6643\u52a8\u3001\u649e\u51fb\u3001\u8fd0\u52a8\u4ea7\u751f&#xff0c;\u53ef\u505a\u632f\u52a8\u68c0\u6d4b\u3001\u6572\u51fb\u8bc6\u522b\u3002<\/li>\n<p>\u91cd\u70b9\u77e5\u8bc6\u70b9&#xff1a;\u4f20\u611f\u5668\u53ea\u91c7\u96c6\u52a0\u901f\u5ea6&#xff0c;\u65e0\u6cd5\u76f4\u63a5\u83b7\u53d6\u4f4d\u79fb\u3001\u901f\u5ea6&#xff1b;\u4ec5\u5355\u6b21\u8bfb\u6570\u4e0d\u80fd\u63a8\u7b97\u79fb\u52a8\u8ddd\u79bb\u3002<\/p>\n<h4>3.2 \u9759\u6b62\u65f6\u6570\u503c\u89c4\u5f8b<\/h4>\n<p>\u5730\u7403\u6052\u5b9a\u5b58\u5728 1g \u91cd\u529b\u52a0\u901f\u5ea6&#xff08;1000mg&#xff09;&#xff0c;\u8bbe\u5907\u5e73\u653e\u9759\u6b62\u65f6&#xff1a;<\/p>\n<ul>\n<li>Z \u8f74\u5782\u76f4\u5730\u9762&#xff1a;Z\u2248\u00b11000mg&#xff1b;<\/li>\n<li>X\u3001Y \u5e73\u884c\u5730\u9762&#xff1a;X\u3001Y\u22480mg&#xff1b; \u7ffb\u8f6c\u4f20\u611f\u5668\u540e\u5750\u6807\u8f74\u6b63\u8d1f\u53f7\u53cd\u8f6c&#xff1b;\u4efb\u610f\u503e\u659c\u72b6\u6001\u4e0b\u4e09\u8f74\u77e2\u91cf\u5408\u52a0\u901f\u5ea6\u7ea6\u7b49\u4e8e 1000mg\u3002<\/li>\n<\/ul>\n<p>\u81ea\u7531\u843d\u4f53\u7279\u6b8a\u73b0\u8c61&#xff1a;\u5b8c\u5168\u5931\u91cd\u72b6\u6001\u4e0b X\/Y\/Z \u4e09\u8f74\u8bfb\u6570\u5168\u90e8\u8d8b\u8fd1 0mg\u3002<\/p>\n<h3>\u56db\u3001\u8f6f\u4ef6 I2C \u901a\u4fe1\u4e0e\u4e09\u8f74\u6570\u636e\u8bfb\u53d6\u903b\u8f91<\/h3>\n<p>\u672c\u5de5\u7a0b\u4e0d\u4f7f\u7528 STM32 \u786c\u4ef6 I2C \u5916\u8bbe&#xff0c;\u5c06 PA0\u3001PA1 \u914d\u7f6e\u4e3a\u5f00\u6f0f\u8f93\u51fa&#xff0c;\u901a\u8fc7\u7ffb\u8f6c GPIO \u7535\u5e73\u6a21\u62df\u6807\u51c6 I2C \u65f6\u5e8f\u3002<\/p>\n<h4>4.1 I2C \u57fa\u7840\u901a\u4fe1\u65f6\u5e8f<\/h4>\n<p>\u5355\u6b21\u5bc4\u5b58\u5668\u8bfb\u5199\u5b8c\u6574\u6d41\u7a0b&#xff1a; \u8d77\u59cb\u4fe1\u53f7 \u2192 \u4ece\u673a\u5730\u5740 &#043; \u8bfb\u5199\u4f4d \u2192 \u5bc4\u5b58\u5668\u5730\u5740 \u2192 \u8bfb\u5199\u6570\u636e \u2192 \u505c\u6b62\u4fe1\u53f7<\/p>\n<ul>\n<li>\u8d77\u59cb&#xff1a;SCL \u9ad8\u7535\u5e73&#xff0c;SDA \u7531\u9ad8\u62c9\u4f4e&#xff1b;<\/li>\n<li>\u5e94\u7b54 ACK&#xff1a;\u6bcf\u4f20\u8f93 8bit \u6570\u636e&#xff0c;\u4ece\u673a\u62c9\u4f4e SDA \u4ea7\u751f\u7b2c 9 \u4f4d\u5e94\u7b54&#xff1b;<\/li>\n<li>\u505c\u6b62&#xff1a;SCL \u9ad8\u7535\u5e73&#xff0c;SDA \u7531\u4f4e\u62c9\u9ad8&#xff1b;<\/li>\n<li>\u5bc4\u5b58\u5668\u8bfb\u64cd\u4f5c&#xff1a;\u5148\u53d1\u5199\u6307\u4ee4\u6307\u5b9a\u5bc4\u5b58\u5668&#xff0c;\u91cd\u590d\u8d77\u59cb\u4fe1\u53f7\u540e\u5207\u6362\u8bfb\u6a21\u5f0f\u63a5\u6536\u6570\u636e\u3002<\/li>\n<\/ul>\n<h4>4.2 \u8fde\u7eed\u8bfb\u53d6 6 \u5b57\u8282\u6570\u636e\u539f\u56e0<\/h4>\n<p>ADXL345 \u4e09\u8f74\u6570\u636e\u5bc4\u5b58\u5668\u5730\u5740\u8fde\u7eed\u6392\u5e03&#xff0c;\u4ece0x32\u5f00\u59cb\u4f9d\u6b21\u5b58\u50a8 X \u4f4e\u3001X \u9ad8\u3001Y \u4f4e\u3001Y \u9ad8\u3001Z \u4f4e\u3001Z \u9ad8&#xff1a;<\/p>\n<table>\n<tr>\u5bc4\u5b58\u5668\u5730\u5740\u5bc4\u5b58\u5668\u540d\u5b58\u50a8\u5185\u5bb9<\/tr>\n<tbody>\n<tr>\n<td>0x32<\/td>\n<td>DATAX0<\/td>\n<td>X \u8f74\u4f4e\u5b57\u8282<\/td>\n<\/tr>\n<tr>\n<td>0x33<\/td>\n<td>DATAX1<\/td>\n<td>X \u8f74\u9ad8\u5b57\u8282<\/td>\n<\/tr>\n<tr>\n<td>0x34<\/td>\n<td>DATAY0<\/td>\n<td>Y \u8f74\u4f4e\u5b57\u8282<\/td>\n<\/tr>\n<tr>\n<td>0x35<\/td>\n<td>DATAY1<\/td>\n<td>Y \u8f74\u9ad8\u5b57\u8282<\/td>\n<\/tr>\n<tr>\n<td>0x36<\/td>\n<td>DATAZ0<\/td>\n<td>Z \u8f74\u4f4e\u5b57\u8282<\/td>\n<\/tr>\n<tr>\n<td>0x37<\/td>\n<td>DATAZ1<\/td>\n<td>Z \u8f74\u9ad8\u5b57\u8282<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>\u4e00\u6b21\u6027\u8fde\u7eed\u8bfb\u53d6 6 \u5b57\u8282&#xff0c;\u4fdd\u8bc1 X\/Y\/Z \u4e09\u8f74\u6570\u636e\u6765\u81ea\u540c\u4e00\u91c7\u6837\u5468\u671f&#xff0c;\u5206\u5f00\u5355\u8f74\u8bfb\u53d6\u4f1a\u5b58\u5728\u91c7\u6837\u65f6\u95f4\u5dee&#xff0c;\u59ff\u6001\u6570\u636e\u5931\u771f\u3002<\/p>\n<h4>4.3 16 \u4f4d\u6709\u7b26\u53f7\u539f\u59cb\u503c\u5408\u6210\u89c4\u5219<\/h4>\n<p>\u6570\u636e\u5b58\u50a8\u683c\u5f0f&#xff1a;\u4f4e\u5b57\u8282\u5728\u524d&#xff0c;\u9ad8\u5b57\u8282\u5728\u540e&#xff0c;\u91c7\u7528\u4e8c\u8fdb\u5236\u8865\u7801\u5b58\u50a8\u6b63\u8d1f\u52a0\u901f\u5ea6&#xff0c;C \u8bed\u8a00\u5904\u7406\u4ee3\u7801&#xff1a;<\/p>\n<p>s16 x &#061; (s16)((X\u9ad8\u5b57\u8282 &lt;&lt; 8) | X\u4f4e\u5b57\u8282);<br \/>\ns16 y &#061; (s16)((Y\u9ad8\u5b57\u8282 &lt;&lt; 8) | Y\u4f4e\u5b57\u8282);<br \/>\ns16 z &#061; (s16)((Z\u9ad8\u5b57\u8282 &lt;&lt; 8) | Z\u4f4e\u5b57\u8282); <\/p>\n<h3 style=\"background-color:transparent\">\u4e94\u3001\u5bc4\u5b58\u5668\u521d\u59cb\u5316\u914d\u7f6e\u4e0e\u5355\u4f4d\u6362\u7b97<\/h3>\n<h4>5.1 \u5173\u952e\u5bc4\u5b58\u5668\u914d\u7f6e\u8868<\/h4>\n<p>\u4e0a\u7535\u521d\u59cb\u5316\u4e25\u683c\u6309\u7167\u4e0b\u8868\u914d\u7f6e&#xff0c;\u5f00\u542f\u6d4b\u91cf\u6a21\u5f0f\u540e\u624d\u80fd\u8bfb\u53d6\u6709\u6548\u52a0\u901f\u5ea6&#xff1a;<\/p>\n<table>\n<tr>\u5bc4\u5b58\u5668\u540d\u5730\u5740\u5199\u5165\u503c\u529f\u80fd\u4f5c\u7528<\/tr>\n<tbody>\n<tr>\n<td>DEVID<\/td>\n<td>0x00<\/td>\n<td>\u53ea\u8bfb<\/td>\n<td>\u6821\u9a8c\u4f20\u611f\u5668 ID&#xff0c;\u6b63\u786e\u503c 0xE5&#xff0c;\u901a\u4fe1\u6545\u969c\u8bc6\u522b\u4f9d\u636e<\/td>\n<\/tr>\n<tr>\n<td>POWER_CTL<\/td>\n<td>0x2D<\/td>\n<td>0x00<\/td>\n<td>\u914d\u7f6e\u53c2\u6570\u524d\u8fdb\u5165\u5f85\u673a\u6a21\u5f0f<\/td>\n<\/tr>\n<tr>\n<td>DATA_FORMAT<\/td>\n<td>0x31<\/td>\n<td>0x0B<\/td>\n<td>\u5f00\u542f\u5168\u5206\u8fa8\u7387&#xff0c;\u91cf\u7a0b \u00b116g<\/td>\n<\/tr>\n<tr>\n<td>BW_RATE<\/td>\n<td>0x2C<\/td>\n<td>0x0A<\/td>\n<td>\u6b63\u5e38\u529f\u8017&#xff0c;\u4f20\u611f\u5668\u8f93\u51fa\u901f\u7387 100Hz<\/td>\n<\/tr>\n<tr>\n<td>OFSX\/OFSY\/OFSZ<\/td>\n<td>0x1E~0x20<\/td>\n<td>0x00<\/td>\n<td>\u4e09\u8f74\u786c\u4ef6\u504f\u79fb\u5bc4\u5b58\u5668&#xff0c;\u9ed8\u8ba4\u4e0d\u6821\u51c6<\/td>\n<\/tr>\n<tr>\n<td>INT_ENABLE<\/td>\n<td>0x2E<\/td>\n<td>0x00<\/td>\n<td>\u5173\u95ed\u6240\u6709\u4e2d\u65ad&#xff0c;\u91c7\u7528\u8f6e\u8be2\u8bfb\u53d6\u6570\u636e<\/td>\n<\/tr>\n<tr>\n<td>FIFO_CTL<\/td>\n<td>0x38<\/td>\n<td>0x00<\/td>\n<td>\u4e0d\u4f7f\u7528 FIFO \u7f13\u5b58<\/td>\n<\/tr>\n<tr>\n<td>POWER_CTL<\/td>\n<td>0x2D<\/td>\n<td>0x08<\/td>\n<td>MEASURE \u4f4d\u7f6e 1&#xff0c;\u4f20\u611f\u5668\u542f\u52a8\u6d4b\u91cf<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h4>5.2 \u539f\u59cb\u503c\u8f6c mg \u5355\u4f4d\u8ba1\u7b97<\/h4>\n<p>\u5de5\u7a0b\u914d\u7f6e \u00b116g \u5168\u5206\u8fa8\u7387\u6a21\u5f0f&#xff0c;\u5206\u8fa8\u7387\u53c2\u6570&#xff1a;1 LSB &#061; 3.9mg \u6362\u7b97\u516c\u5f0f&#xff1a;\u52a0\u901f\u5ea6(mg) &#061; \u539f\u59cb\u91c7\u6837\u503c \u00d7 3.9<\/p>\n<p>\u5355\u7247\u673a\u907f\u514d\u6d6e\u70b9\u8fd0\u7b97&#xff0c;\u4f7f\u7528\u6574\u6570\u7b49\u6548\u8ba1\u7b97&#xff1a;<\/p>\n<p>int mg &#061; raw_value * 39 \/ 10; <\/p>\n<p>\u5355\u4f4d\u8bf4\u660e&#xff1a;\u6587\u4e2d mg \u4ee3\u8868\u6beb\u91cd\u529b\u52a0\u901f\u5ea6&#xff0c;\u548c\u8d28\u91cf\u5355\u4f4d\u6beb\u514b\u65e0\u5173&#xff0c;\u6362\u7b97\u5173\u7cfb 1000mg &#061; 1g \u2248 9.8m\/s\u00b2<\/p>\n<p>\u6362\u7b97\u793a\u4f8b&#xff1a;<\/p>\n<table>\n<tr>\u539f\u59cb\u91c7\u6837\u503c\u8ba1\u7b97\u540e mg \u6570\u503c\u7b49\u6548\u91cd\u529b<\/tr>\n<tbody>\n<tr>\n<td>0<\/td>\n<td>0mg<\/td>\n<td>0g<\/td>\n<\/tr>\n<tr>\n<td>128<\/td>\n<td>499mg<\/td>\n<td>0.5g<\/td>\n<\/tr>\n<tr>\n<td>256<\/td>\n<td>998mg<\/td>\n<td>1g<\/td>\n<\/tr>\n<tr>\n<td>-256<\/td>\n<td>-998mg<\/td>\n<td>-1g<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h4>5.3 \u4e3b\u7a0b\u5e8f\u6574\u4f53\u8fd0\u884c\u6d41\u7a0b<\/h4>\n<li>\u7cfb\u7edf\u5ef6\u65f6\u521d\u59cb\u5316 &#043; OLED \u5c4f\u5e55\u521d\u59cb\u5316&#xff1b;<\/li>\n<li>\u521d\u59cb\u5316 PA0\/PA1 \u8f6f\u4ef6 I2C&#xff1b;<\/li>\n<li>\u8bfb\u53d6 DEVID \u5bc4\u5b58\u5668\u6821\u9a8c ID&#xff1a;\n<ul>\n<li>ID\u22600xE5&#xff1a;OLED \u6253\u5370 Sensor error&#xff0c;1s \u540e\u91cd\u65b0\u68c0\u6d4b&#xff1b;<\/li>\n<li>ID&#061;0xE5&#xff1a;\u6b63\u5e38\u8fdb\u5165\u91c7\u6837\u6d41\u7a0b&#xff1b;<\/li>\n<\/ul>\n<\/li>\n<li>\u8fde\u7eed\u8bfb\u53d6 6 \u5b57\u8282\u4e09\u8f74\u539f\u59cb\u6570\u636e&#xff1b;<\/li>\n<li>\u62fc\u63a5 16 \u4f4d\u6709\u7b26\u53f7\u539f\u59cb\u503c&#xff0c;\u6362\u7b97 mg&#xff1b;<\/li>\n<li>OLED \u5237\u65b0\u4e09\u8f74\u52a0\u901f\u5ea6\u6570\u636e&#xff1b;<\/li>\n<li>\u5ef6\u65f6 200ms&#xff0c;\u5faa\u73af\u91c7\u6837\u3002<\/li>\n<p>\u8865\u5145&#xff1a;\u4f20\u611f\u5668\u5185\u90e8\u6570\u636e\u5237\u65b0 100Hz&#xff08;10ms \u66f4\u65b0\u4e00\u6b21&#xff09;&#xff0c;\u7a0b\u5e8f 200ms \u5237\u65b0\u5c4f\u5e55&#xff0c;\u663e\u793a\u901f\u5ea6\u6ee1\u8db3\u5b9e\u9a8c\u89c2\u5bdf\u9700\u6c42\u3002<\/p>\n<h3>main.c\u4ee3\u7801<\/h3>\n<p>\/*<br \/>\n * ADXL345 three-axis acceleration teaching demo<br \/>\n * ADXL345 SDA -&gt; PA0, SCK\/SCL -&gt; PA1<br \/>\n * OLED SCL -&gt; PB8, SDA -&gt; PB9<br \/>\n *\/<br \/>\n#include &#034;delay.h&#034;<br \/>\n#include &#034;sys.h&#034;<br \/>\n#include &#034;oled.h&#034;<br \/>\n#include &#034;ADXL345.h&#034;<\/p>\n<p>#define ADXL345_REFRESH_MS      200U<\/p>\n<p>static void ADXL345_ShowData(const ADXL345_DataTypeDef *data);<br \/>\nstatic void ADXL345_ShowError(u8 device_id);<br \/>\nstatic void OLED_ShowSignedNum(u8 x, u8 y, s32 value, u8 digits, u8 size);<br \/>\nstatic void OLED_ShowHexByte(u8 x, u8 y, u8 value, u8 size);<\/p>\n<p>int main(void)<br \/>\n{<br \/>\nADXL345_DataTypeDef sensor_data;<br \/>\nu8 sensor_ok;<\/p>\n<p>delay_init();<br \/>\nNVIC_Configuration();<br \/>\nOLED_Init();<br \/>\nOLED_ColorTurn(0);<br \/>\nOLED_DisplayTurn(0);<\/p>\n<p>OLED_Clear();<br \/>\nOLED_ShowString(36, 0, (u8 *)&#034;ADXL345&#034;, 16);<br \/>\nOLED_ShowString(16, 22, (u8 *)&#034;SDA PA0 SCK PA1&#034;, 12);<br \/>\nOLED_ShowString(25, 42, (u8 *)&#034;Initializing&#034;, 12);<br \/>\nOLED_Refresh();<\/p>\n<p>sensor_ok &#061; ADXL345_Init();<\/p>\n<p>while(1)<br \/>\n{<br \/>\nif((sensor_ok !&#061; 0U) &amp;&amp; (ADXL345_ReadAcceleration(&amp;sensor_data) !&#061; 0U))<br \/>\n{<br \/>\nADXL345_ShowData(&amp;sensor_data);<br \/>\ndelay_ms(ADXL345_REFRESH_MS);<br \/>\n}<br \/>\nelse<br \/>\n{<br \/>\nADXL345_ShowError(ADXL345_ReadDeviceID());<br \/>\ndelay_ms(1000);<br \/>\nsensor_ok &#061; ADXL345_Init();<br \/>\n}<br \/>\n}<br \/>\n}<\/p>\n<p>static void ADXL345_ShowData(const ADXL345_DataTypeDef *data)<br \/>\n{<br \/>\nOLED_Clear();<br \/>\nOLED_ShowString(16, 0, (u8 *)&#034;ADXL345 &#043;\/-16g&#034;, 12);<\/p>\n<p>OLED_ShowString(0, 16, (u8 *)&#034;X:&#034;, 12);<br \/>\nOLED_ShowSignedNum(18, 16, ADXL345_RawToMilliG(data-&gt;x), 5U, 12);<br \/>\nOLED_ShowString(54, 16, (u8 *)&#034; mg&#034;, 12);<\/p>\n<p>OLED_ShowString(0, 32, (u8 *)&#034;Y:&#034;, 12);<br \/>\nOLED_ShowSignedNum(18, 32, ADXL345_RawToMilliG(data-&gt;y), 5U, 12);<br \/>\nOLED_ShowString(54, 32, (u8 *)&#034; mg&#034;, 12);<\/p>\n<p>OLED_ShowString(0, 48, (u8 *)&#034;Z:&#034;, 12);<br \/>\nOLED_ShowSignedNum(18, 48, ADXL345_RawToMilliG(data-&gt;z), 5U, 12);<br \/>\nOLED_ShowString(54, 48, (u8 *)&#034; mg&#034;, 12);<\/p>\n<p>OLED_Refresh();<br \/>\n}<\/p>\n<p>static void ADXL345_ShowError(u8 device_id)<br \/>\n{<br \/>\nOLED_Clear();<br \/>\nOLED_ShowString(36, 0, (u8 *)&#034;ADXL345&#034;, 16);<br \/>\nOLED_ShowString(22, 20, (u8 *)&#034;Sensor error&#034;, 12);<br \/>\nOLED_ShowString(10, 36, (u8 *)&#034;SDA PA0 SCK PA1&#034;, 12);<br \/>\nOLED_ShowString(34, 50, (u8 *)&#034;ID:0x&#034;, 12);<br \/>\nOLED_ShowHexByte(64, 50, device_id, 12);<br \/>\nOLED_Refresh();<br \/>\n}<\/p>\n<p>static void OLED_ShowSignedNum(u8 x, u8 y, s32 value, u8 digits, u8 size)<br \/>\n{<br \/>\nu32 magnitude;<\/p>\n<p>if(value &lt; 0)<br \/>\n{<br \/>\nOLED_ShowChar(x, y, &#039;-&#039;, size);<br \/>\nmagnitude &#061; (u32)(-value);<br \/>\n}<br \/>\nelse<br \/>\n{<br \/>\nOLED_ShowChar(x, y, &#039;&#043;&#039;, size);<br \/>\nmagnitude &#061; (u32)value;<br \/>\n}<br \/>\nOLED_ShowNum((u8)(x &#043; size \/ 2U), y, magnitude, digits, size);<br \/>\n}<\/p>\n<p>static void OLED_ShowHexByte(u8 x, u8 y, u8 value, u8 size)<br \/>\n{<br \/>\nu8 high;<br \/>\nu8 low;<\/p>\n<p>high &#061; (u8)((value &gt;&gt; 4) &amp; 0x0FU);<br \/>\nlow &#061; (u8)(value &amp; 0x0FU);<br \/>\nOLED_ShowChar(x, y, (high &lt; 10U) ? (u8)(&#039;0&#039; &#043; high) : (u8)(&#039;A&#039; &#043; high &#8211; 10U), size);<br \/>\nOLED_ShowChar((u8)(x &#043; size \/ 2U), y,<br \/>\n              (low &lt; 10U) ? (u8)(&#039;0&#039; &#043; low) : (u8)(&#039;A&#039; &#043; low &#8211; 10U), size);<br \/>\n}<\/p>\n<h3 style=\"background-color:transparent\">ADXL345.c\u4ee3\u7801<\/h3>\n<p>#include &#034;ADXL345.h&#034;<br \/>\n#include &#034;delay.h&#034;<\/p>\n<p>\/*<br \/>\n * ADXL345 \u8f6f\u4ef6 I2C \u9a71\u52a8<br \/>\n *<br \/>\n * \u786c\u4ef6\u8fde\u63a5&#xff1a;<br \/>\n *   ADXL345 SDA     -&gt; STM32F103C8T6 PA0<br \/>\n *   ADXL345 SCK\/SCL -&gt; STM32F103C8T6 PA1<br \/>\n *<br \/>\n * PA0 \u548c PA1 \u914d\u7f6e\u6210\u5f00\u6f0f\u8f93\u51fa&#xff0c;\u901a\u8fc7\u8f6f\u4ef6\u6a21\u62df I2C \u65f6\u5e8f\u3002<br \/>\n * CS \u5f15\u811a\u5fc5\u987b\u63a5 3.3V \u4ee5\u9009\u62e9 I2C \u6a21\u5f0f&#xff1b;ALT ADDRESS\/SDO \u63a5\u5730\u65f6&#xff0c;<br \/>\n * ADXL345 \u7684 7 \u4f4d\u4ece\u673a\u5730\u5740\u4e3a 0x53&#xff0c;\u5bf9\u5e94\u5199\u5730\u5740 0xA6\u3001\u8bfb\u5730\u5740 0xA7\u3002<br \/>\n *\/<\/p>\n<p>\/* I2C \u4ece\u673a\u5730\u5740&#xff1a;\u6700\u4f4e\u4f4d\u7531\u8bfb\u5199\u65b9\u5411\u81ea\u52a8\u8865\u5145\u3002 *\/<br \/>\n#define ADXL345_I2C_ADDRESS      0x53U<br \/>\n#define ADXL345_WRITE_ADDRESS    (ADXL345_I2C_ADDRESS &lt;&lt; 1)<br \/>\n#define ADXL345_READ_ADDRESS     ((ADXL345_I2C_ADDRESS &lt;&lt; 1) | 0x01U)<\/p>\n<p>\/* \u672c\u9a71\u52a8\u4f7f\u7528\u7684 ADXL345 \u5bc4\u5b58\u5668\u5730\u5740\u3002 *\/<br \/>\n#define ADXL345_REG_DEVID        0x00U  \/* \u5668\u4ef6\u6807\u8bc6\u5bc4\u5b58\u5668&#xff0c;\u56fa\u5b9a\u503c\u4e3a 0xE5 *\/<br \/>\n#define ADXL345_REG_OFSX         0x1EU  \/* X \u8f74\u96f6\u504f\u6821\u51c6\u5bc4\u5b58\u5668 *\/<br \/>\n#define ADXL345_REG_OFSY         0x1FU  \/* Y \u8f74\u96f6\u504f\u6821\u51c6\u5bc4\u5b58\u5668 *\/<br \/>\n#define ADXL345_REG_OFSZ         0x20U  \/* Z \u8f74\u96f6\u504f\u6821\u51c6\u5bc4\u5b58\u5668 *\/<br \/>\n#define ADXL345_REG_BW_RATE      0x2CU  \/* \u8f93\u51fa\u6570\u636e\u901f\u7387\u548c\u4f4e\u529f\u8017\u63a7\u5236\u5bc4\u5b58\u5668 *\/<br \/>\n#define ADXL345_REG_POWER_CTL    0x2DU  \/* \u7535\u6e90\u6a21\u5f0f\u548c\u6d4b\u91cf\u6a21\u5f0f\u63a7\u5236\u5bc4\u5b58\u5668 *\/<br \/>\n#define ADXL345_REG_INT_ENABLE   0x2EU  \/* \u4e2d\u65ad\u4f7f\u80fd\u5bc4\u5b58\u5668 *\/<br \/>\n#define ADXL345_REG_DATA_FORMAT  0x31U  \/* \u91cf\u7a0b\u3001\u5168\u5206\u8fa8\u7387\u548c\u6570\u636e\u683c\u5f0f\u5bc4\u5b58\u5668 *\/<br \/>\n#define ADXL345_REG_DATAX0       0x32U  \/* \u4e09\u8f74\u6570\u636e\u8d77\u59cb\u5730\u5740&#xff1a;DATAX0&#xff5e;DATAZ1 *\/<br \/>\n#define ADXL345_REG_FIFO_CTL     0x38U  \/* FIFO \u5de5\u4f5c\u6a21\u5f0f\u63a7\u5236\u5bc4\u5b58\u5668 *\/<\/p>\n<p>\/* \u8f6f\u4ef6 I2C \u5f15\u811a\u64cd\u4f5c&#xff1a;\u5f00\u6f0f\u8f93\u51fa\u5199 1 \u8868\u793a\u91ca\u653e\u603b\u7ebf&#xff0c;\u5199 0 \u8868\u793a\u62c9\u4f4e\u603b\u7ebf\u3002 *\/<br \/>\n#define ADXL345_SDA_HIGH()       GPIO_SetBits(GPIOA, GPIO_Pin_0)<br \/>\n#define ADXL345_SDA_LOW()        GPIO_ResetBits(GPIOA, GPIO_Pin_0)<br \/>\n#define ADXL345_SCL_HIGH()       GPIO_SetBits(GPIOA, GPIO_Pin_1)<br \/>\n#define ADXL345_SCL_LOW()        GPIO_ResetBits(GPIOA, GPIO_Pin_1)<br \/>\n#define ADXL345_READ_SDA()       GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_0)<\/p>\n<p>\/* \u8f6f\u4ef6 I2C \u5e95\u5c42\u51fd\u6570&#xff0c;\u53ea\u5728\u672c\u6587\u4ef6\u5185\u90e8\u4f7f\u7528\u3002 *\/<br \/>\nstatic void ADXL345_I2C_Delay(void);<br \/>\nstatic void ADXL345_I2C_Start(void);<br \/>\nstatic void ADXL345_I2C_Stop(void);<br \/>\nstatic void ADXL345_I2C_SendAck(u8 send_ack);<br \/>\nstatic u8 ADXL345_I2C_SendByte(u8 data);<br \/>\nstatic u8 ADXL345_I2C_ReadByte(void);<br \/>\nstatic void ADXL345_I2C_BusRecovery(void);<\/p>\n<p>\/*<br \/>\n * I2C \u65f6\u5e8f\u5ef6\u65f6\u3002<br \/>\n * 5us \u534a\u5468\u671f\u5bf9\u5e94\u7684\u603b\u7ebf\u901f\u5ea6\u4f4e\u4e8e 100kHz&#xff0c;\u9002\u5408\u6559\u5b66\u548c\u675c\u90a6\u7ebf\u8fde\u63a5\u73af\u5883\u3002<br \/>\n *\/<br \/>\nstatic void ADXL345_I2C_Delay(void)<br \/>\n{<br \/>\ndelay_us(5);<br \/>\n}<\/p>\n<p>\/*<br \/>\n * \u4ea7\u751f I2C \u8d77\u59cb\u4fe1\u53f7&#xff1a;<br \/>\n * SCL \u4e3a\u9ad8\u7535\u5e73\u65f6&#xff0c;SDA \u7531\u9ad8\u7535\u5e73\u53d8\u4e3a\u4f4e\u7535\u5e73\u3002<br \/>\n *\/<br \/>\nstatic void ADXL345_I2C_Start(void)<br \/>\n{<br \/>\nADXL345_SDA_HIGH();<br \/>\nADXL345_SCL_HIGH();<br \/>\nADXL345_I2C_Delay();<br \/>\nADXL345_SDA_LOW();<br \/>\nADXL345_I2C_Delay();<br \/>\nADXL345_SCL_LOW();<br \/>\nADXL345_I2C_Delay();<br \/>\n}<\/p>\n<p>\/*<br \/>\n * \u4ea7\u751f I2C \u505c\u6b62\u4fe1\u53f7&#xff1a;<br \/>\n * SCL \u4e3a\u9ad8\u7535\u5e73\u65f6&#xff0c;SDA \u7531\u4f4e\u7535\u5e73\u53d8\u4e3a\u9ad8\u7535\u5e73\u3002<br \/>\n *\/<br \/>\nstatic void ADXL345_I2C_Stop(void)<br \/>\n{<br \/>\nADXL345_SCL_LOW();<br \/>\nADXL345_SDA_LOW();<br \/>\nADXL345_I2C_Delay();<br \/>\nADXL345_SCL_HIGH();<br \/>\nADXL345_I2C_Delay();<br \/>\nADXL345_SDA_HIGH();<br \/>\nADXL345_I2C_Delay();<br \/>\n}<\/p>\n<p>\/*<br \/>\n * \u4ece\u6700\u9ad8\u4f4d\u5f00\u59cb\u5411 I2C \u603b\u7ebf\u53d1\u9001\u4e00\u4e2a\u5b57\u8282&#xff0c;\u5e76\u8bfb\u53d6\u4ece\u673a\u5e94\u7b54\u3002<br \/>\n * \u8fd4\u56de\u503c&#xff1a;1 \u8868\u793a\u6536\u5230 ACK&#xff0c;0 \u8868\u793a\u6536\u5230 NACK\u3002<br \/>\n *\/<br \/>\nstatic u8 ADXL345_I2C_SendByte(u8 data)<br \/>\n{<br \/>\nu8 i;<br \/>\nu8 acknowledged;<\/p>\n<p>\/* \u4f9d\u6b21\u53d1\u9001 D7&#xff5e;D0&#xff0c;\u6bcf\u4e2a\u65f6\u949f\u5468\u671f\u53d1\u9001\u4e00\u4f4d\u3002 *\/<br \/>\nfor(i &#061; 0U; i &lt; 8U; i&#043;&#043;)<br \/>\n{<br \/>\nADXL345_SCL_LOW();<br \/>\nif((data &amp; 0x80U) !&#061; 0U)<br \/>\nADXL345_SDA_HIGH();<br \/>\nelse<br \/>\nADXL345_SDA_LOW();<br \/>\nADXL345_I2C_Delay();<br \/>\nADXL345_SCL_HIGH();<br \/>\nADXL345_I2C_Delay();<br \/>\ndata &lt;&lt;&#061; 1;<br \/>\n}<\/p>\n<p>\/*<br \/>\n * \u7b2c 9 \u4e2a\u65f6\u949f\u7528\u4e8e\u8bfb\u53d6\u5e94\u7b54&#xff1a;\u5148\u91ca\u653e SDA&#xff0c;\u518d\u7531 ADXL345 \u62c9\u4f4e SDA\u3002<br \/>\n * SDA \u4e3a\u4f4e\u8868\u793a ACK&#xff0c;\u8bf4\u660e\u4ece\u673a\u5df2\u7ecf\u6b63\u786e\u63a5\u6536\u5f53\u524d\u5b57\u8282\u3002<br \/>\n *\/<br \/>\nADXL345_SCL_LOW();<br \/>\nADXL345_SDA_HIGH();<br \/>\nADXL345_I2C_Delay();<br \/>\nADXL345_SCL_HIGH();<br \/>\nADXL345_I2C_Delay();<br \/>\nacknowledged &#061; (ADXL345_READ_SDA() &#061;&#061; Bit_RESET) ? 1U : 0U;<br \/>\nADXL345_SCL_LOW();<br \/>\nADXL345_I2C_Delay();<\/p>\n<p>return acknowledged;<br \/>\n}<\/p>\n<p>\/*<br \/>\n * \u4ece I2C \u603b\u7ebf\u8bfb\u53d6\u4e00\u4e2a\u5b57\u8282&#xff0c;\u6309 D7&#xff5e;D0 \u7684\u987a\u5e8f\u63a5\u6536\u3002<br \/>\n * \u672c\u51fd\u6570\u53ea\u8d1f\u8d23\u8bfb\u53d6 8 \u4f4d\u6570\u636e&#xff0c;\u8bfb\u5b8c\u540e\u7684 ACK\/NACK \u7531\u8c03\u7528\u8005\u53d1\u9001\u3002<br \/>\n *\/<br \/>\nstatic u8 ADXL345_I2C_ReadByte(void)<br \/>\n{<br \/>\nu8 i;<br \/>\nu8 data;<\/p>\n<p>data &#061; 0U;<br \/>\nADXL345_SDA_HIGH();<br \/>\nfor(i &#061; 0U; i &lt; 8U; i&#043;&#043;)<br \/>\n{<br \/>\nADXL345_SCL_LOW();<br \/>\nADXL345_I2C_Delay();<br \/>\nADXL345_SCL_HIGH();<br \/>\nADXL345_I2C_Delay();<br \/>\ndata &lt;&lt;&#061; 1;<br \/>\nif(ADXL345_READ_SDA() !&#061; Bit_RESET)<br \/>\ndata |&#061; 0x01U;<br \/>\n}<br \/>\nADXL345_SCL_LOW();<br \/>\nADXL345_I2C_Delay();<\/p>\n<p>return data;<br \/>\n}<\/p>\n<p>\/*<br \/>\n * \u4e3b\u673a\u5411\u4ece\u673a\u53d1\u9001\u5e94\u7b54\u4f4d\u3002<br \/>\n * send_ack &#061; 1&#xff1a;\u53d1\u9001 ACK&#xff0c;\u8868\u793a\u8fd8\u8981\u7ee7\u7eed\u8bfb\u53d6\u540e\u7eed\u5b57\u8282&#xff1b;<br \/>\n * send_ack &#061; 0&#xff1a;\u53d1\u9001 NACK&#xff0c;\u8868\u793a\u5f53\u524d\u5b57\u8282\u662f\u6700\u540e\u4e00\u4e2a\u5b57\u8282\u3002<br \/>\n *\/<br \/>\nstatic void ADXL345_I2C_SendAck(u8 send_ack)<br \/>\n{<br \/>\nADXL345_SCL_LOW();<br \/>\nif(send_ack !&#061; 0U)<br \/>\nADXL345_SDA_LOW();<br \/>\nelse<br \/>\nADXL345_SDA_HIGH();<br \/>\nADXL345_I2C_Delay();<br \/>\nADXL345_SCL_HIGH();<br \/>\nADXL345_I2C_Delay();<br \/>\nADXL345_SCL_LOW();<br \/>\nADXL345_SDA_HIGH();<br \/>\nADXL345_I2C_Delay();<br \/>\n}<\/p>\n<p>\/*<br \/>\n * I2C \u603b\u7ebf\u6062\u590d&#xff1a;\u91ca\u653e SDA \u540e\u8f93\u51fa 9 \u4e2a SCL \u8109\u51b2&#xff0c;\u518d\u53d1\u9001\u505c\u6b62\u4fe1\u53f7\u3002<br \/>\n * \u5982\u679c\u4ece\u673a\u56e0\u4e0a\u6b21\u901a\u4fe1\u88ab\u610f\u5916\u4e2d\u65ad\u800c\u4e00\u76f4\u5360\u7528 SDA&#xff0c;\u8be5\u64cd\u4f5c\u53ef\u4f7f\u5176\u9000\u51fa\u672a\u5b8c\u6210\u72b6\u6001\u3002<br \/>\n *\/<br \/>\nstatic void ADXL345_I2C_BusRecovery(void)<br \/>\n{<br \/>\nu8 i;<\/p>\n<p>ADXL345_SDA_HIGH();<br \/>\nfor(i &#061; 0U; i &lt; 9U; i&#043;&#043;)<br \/>\n{<br \/>\nADXL345_SCL_LOW();<br \/>\nADXL345_I2C_Delay();<br \/>\nADXL345_SCL_HIGH();<br \/>\nADXL345_I2C_Delay();<br \/>\n}<br \/>\nADXL345_I2C_Stop();<br \/>\n}<\/p>\n<p>\/*<br \/>\n * \u5411 ADXL345 \u7684\u6307\u5b9a\u5bc4\u5b58\u5668\u5199\u5165\u4e00\u4e2a\u5b57\u8282\u3002<br \/>\n * \u901a\u4fe1\u987a\u5e8f&#xff1a;\u8d77\u59cb\u4fe1\u53f7 -&gt; \u5199\u5730\u5740 -&gt; \u5bc4\u5b58\u5668\u5730\u5740 -&gt; \u6570\u636e -&gt; \u505c\u6b62\u4fe1\u53f7\u3002<br \/>\n * \u4efb\u610f\u9636\u6bb5\u672a\u6536\u5230 ACK \u90fd\u4f1a\u7acb\u5373\u505c\u6b62\u901a\u4fe1\u5e76\u8fd4\u56de 0\u3002<br \/>\n *\/<br \/>\nu8 ADXL345_WriteRegister(u8 register_address, u8 data)<br \/>\n{<br \/>\nADXL345_I2C_Start();<br \/>\nif(ADXL345_I2C_SendByte(ADXL345_WRITE_ADDRESS) &#061;&#061; 0U)<br \/>\n{<br \/>\nADXL345_I2C_Stop();<br \/>\nreturn 0U;<br \/>\n}<br \/>\nif(ADXL345_I2C_SendByte(register_address) &#061;&#061; 0U)<br \/>\n{<br \/>\nADXL345_I2C_Stop();<br \/>\nreturn 0U;<br \/>\n}<br \/>\nif(ADXL345_I2C_SendByte(data) &#061;&#061; 0U)<br \/>\n{<br \/>\nADXL345_I2C_Stop();<br \/>\nreturn 0U;<br \/>\n}<br \/>\nADXL345_I2C_Stop();<\/p>\n<p>return 1U;<br \/>\n}<\/p>\n<p>\/*<br \/>\n * \u4ece\u6307\u5b9a\u8d77\u59cb\u5bc4\u5b58\u5668\u8fde\u7eed\u8bfb\u53d6\u591a\u4e2a\u5b57\u8282\u3002<br \/>\n *<br \/>\n * \u5148\u4ee5\u5199\u65b9\u5411\u53d1\u9001\u5bc4\u5b58\u5668\u5730\u5740&#xff0c;\u518d\u53d1\u9001\u91cd\u590d\u8d77\u59cb\u4fe1\u53f7\u5e76\u5207\u6362\u5230\u8bfb\u65b9\u5411&#xff1b;<br \/>\n * \u9664\u6700\u540e\u4e00\u4e2a\u5b57\u8282\u5916&#xff0c;\u6bcf\u8bfb\u5b8c\u4e00\u4e2a\u5b57\u8282\u90fd\u53d1\u9001 ACK&#xff0c;\u6700\u540e\u4e00\u4e2a\u5b57\u8282\u53d1\u9001 NACK\u3002<br \/>\n *\/<br \/>\nu8 ADXL345_ReadRegisters(u8 start_address, u8 *data, u8 length)<br \/>\n{<br \/>\nu8 i;<\/p>\n<p>if((data &#061;&#061; 0) || (length &#061;&#061; 0U))<br \/>\nreturn 0U;<\/p>\n<p>ADXL345_I2C_Start();<br \/>\nif(ADXL345_I2C_SendByte(ADXL345_WRITE_ADDRESS) &#061;&#061; 0U)<br \/>\n{<br \/>\nADXL345_I2C_Stop();<br \/>\nreturn 0U;<br \/>\n}<br \/>\nif(ADXL345_I2C_SendByte(start_address) &#061;&#061; 0U)<br \/>\n{<br \/>\nADXL345_I2C_Stop();<br \/>\nreturn 0U;<br \/>\n}<\/p>\n<p>ADXL345_I2C_Start();<br \/>\nif(ADXL345_I2C_SendByte(ADXL345_READ_ADDRESS) &#061;&#061; 0U)<br \/>\n{<br \/>\nADXL345_I2C_Stop();<br \/>\nreturn 0U;<br \/>\n}<\/p>\n<p>for(i &#061; 0U; i &lt; length; i&#043;&#043;)<br \/>\n{<br \/>\ndata[i] &#061; ADXL345_I2C_ReadByte();<br \/>\nADXL345_I2C_SendAck((i &lt; (u8)(length &#8211; 1U)) ? 1U : 0U);<br \/>\n}<br \/>\nADXL345_I2C_Stop();<\/p>\n<p>return 1U;<br \/>\n}<\/p>\n<p>\/* \u4ece\u6307\u5b9a\u5bc4\u5b58\u5668\u8bfb\u53d6\u4e00\u4e2a\u5b57\u8282&#xff0c;\u662f\u8fde\u7eed\u8bfb\u53d6\u63a5\u53e3\u7684\u5355\u5b57\u8282\u5c01\u88c5\u3002 *\/<br \/>\nu8 ADXL345_ReadRegister(u8 register_address, u8 *data)<br \/>\n{<br \/>\nreturn ADXL345_ReadRegisters(register_address, data, 1U);<br \/>\n}<\/p>\n<p>\/*<br \/>\n * \u8bfb\u53d6\u5668\u4ef6\u6807\u8bc6\u5bc4\u5b58\u5668\u3002<br \/>\n * \u6b63\u5e38\u8fde\u63a5\u7684 ADXL345 \u5e94\u8fd4\u56de 0xE5&#xff1b;\u901a\u4fe1\u5931\u8d25\u65f6\u8fd4\u56de\u521d\u59cb\u503c 0x00\u3002<br \/>\n *\/<br \/>\nu8 ADXL345_ReadDeviceID(void)<br \/>\n{<br \/>\nu8 device_id;<\/p>\n<p>device_id &#061; 0U;<br \/>\n(void)ADXL345_ReadRegister(ADXL345_REG_DEVID, &amp;device_id);<br \/>\nreturn device_id;<br \/>\n}<\/p>\n<p>\/*<br \/>\n * \u521d\u59cb\u5316\u8f6f\u4ef6 I2C \u5f15\u811a\u548c ADXL345 \u5de5\u4f5c\u53c2\u6570\u3002<br \/>\n *<br \/>\n * \u914d\u7f6e\u8fc7\u7a0b&#xff1a;<br \/>\n * 1. \u5c06 PA0\u3001PA1 \u914d\u7f6e\u4e3a 50MHz \u5f00\u6f0f\u8f93\u51fa&#xff0c;\u5e76\u6062\u590d I2C \u603b\u7ebf&#xff1b;<br \/>\n * 2. \u8bfb\u53d6 DEVID&#xff0c;\u786e\u8ba4\u8fde\u63a5\u7684\u5668\u4ef6\u786e\u5b9e\u662f ADXL345&#xff1b;<br \/>\n * 3. \u8fdb\u5165\u5f85\u673a\u6a21\u5f0f\u540e\u914d\u7f6e\u5168\u5206\u8fa8\u7387\u3001\u00b116g \u548c 100Hz \u6570\u636e\u901f\u7387&#xff1b;<br \/>\n * 4. \u6e05\u96f6\u4e09\u8f74\u504f\u79fb\u91cf&#xff0c;\u5173\u95ed\u672c\u793a\u4f8b\u672a\u4f7f\u7528\u7684\u4e2d\u65ad\u548c FIFO&#xff1b;<br \/>\n * 5. \u8bbe\u7f6e MEASURE \u4f4d&#xff0c;\u5f00\u59cb\u8fde\u7eed\u6d4b\u91cf\u3002<br \/>\n *<br \/>\n * \u8fd4\u56de\u503c&#xff1a;1 \u8868\u793a\u521d\u59cb\u5316\u6210\u529f&#xff0c;0 \u8868\u793a\u5668\u4ef6\u6807\u8bc6\u9519\u8bef\u6216\u5bc4\u5b58\u5668\u5199\u5165\u5931\u8d25\u3002<br \/>\n *\/<br \/>\nu8 ADXL345_Init(void)<br \/>\n{<br \/>\nGPIO_InitTypeDef gpio_init_structure;<\/p>\n<p>RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);<br \/>\ngpio_init_structure.GPIO_Pin &#061; GPIO_Pin_0 | GPIO_Pin_1;<br \/>\ngpio_init_structure.GPIO_Speed &#061; GPIO_Speed_50MHz;<br \/>\ngpio_init_structure.GPIO_Mode &#061; GPIO_Mode_Out_OD;<br \/>\nGPIO_Init(GPIOA, &amp;gpio_init_structure);<br \/>\nADXL345_SDA_HIGH();<br \/>\nADXL345_SCL_HIGH();<br \/>\ndelay_ms(5);<br \/>\nADXL345_I2C_BusRecovery();<\/p>\n<p>if(ADXL345_ReadDeviceID() !&#061; ADXL345_DEVICE_ID)<br \/>\nreturn 0U;<\/p>\n<p>\/* \u4fee\u6539\u6d4b\u91cf\u53c2\u6570\u524d\u5148\u8fdb\u5165\u5f85\u673a\u6a21\u5f0f\u3002 *\/<br \/>\nif(ADXL345_WriteRegister(ADXL345_REG_POWER_CTL, 0x00U) &#061;&#061; 0U)<br \/>\nreturn 0U;<br \/>\n\/* FULL_RES &#061; 1\u3001Range &#061; 11&#xff0c;\u9009\u62e9\u5168\u5206\u8fa8\u7387\u548c \u00b116g \u91cf\u7a0b\u3002 *\/<br \/>\nif(ADXL345_WriteRegister(ADXL345_REG_DATA_FORMAT, 0x0BU) &#061;&#061; 0U)<br \/>\nreturn 0U;<br \/>\n\/* LOW_POWER &#061; 0\u3001Rate &#061; 0x0A&#xff0c;\u9009\u62e9\u6b63\u5e38\u529f\u8017\u548c 100Hz \u8f93\u51fa\u901f\u7387\u3002 *\/<br \/>\nif(ADXL345_WriteRegister(ADXL345_REG_BW_RATE, 0x0AU) &#061;&#061; 0U)<br \/>\nreturn 0U;<br \/>\n\/* \u6559\u5b66\u6f14\u793a\u6682\u4e0d\u8fdb\u884c\u96f6\u504f\u6821\u51c6&#xff0c;\u4e09\u4e2a\u504f\u79fb\u5bc4\u5b58\u5668\u5747\u5199\u5165 0\u3002 *\/<br \/>\nif(ADXL345_WriteRegister(ADXL345_REG_OFSX, 0x00U) &#061;&#061; 0U)<br \/>\nreturn 0U;<br \/>\nif(ADXL345_WriteRegister(ADXL345_REG_OFSY, 0x00U) &#061;&#061; 0U)<br \/>\nreturn 0U;<br \/>\nif(ADXL345_WriteRegister(ADXL345_REG_OFSZ, 0x00U) &#061;&#061; 0U)<br \/>\nreturn 0U;<br \/>\n\/* \u672c\u6559\u5b66\u6f14\u793a\u91c7\u7528\u8f6e\u8be2\u8bfb\u53d6&#xff0c;\u56e0\u6b64\u5173\u95ed\u4e2d\u65ad\u548c FIFO \u529f\u80fd\u3002 *\/<br \/>\nif(ADXL345_WriteRegister(ADXL345_REG_INT_ENABLE, 0x00U) &#061;&#061; 0U)<br \/>\nreturn 0U;<br \/>\nif(ADXL345_WriteRegister(ADXL345_REG_FIFO_CTL, 0x00U) &#061;&#061; 0U)<br \/>\nreturn 0U;<br \/>\n\/* POWER_CTL \u7684 MEASURE \u4f4d\u7f6e 1&#xff0c;\u9000\u51fa\u5f85\u673a\u5e76\u5f00\u59cb\u8fde\u7eed\u8f6c\u6362\u3002 *\/<br \/>\nif(ADXL345_WriteRegister(ADXL345_REG_POWER_CTL, 0x08U) &#061;&#061; 0U)<br \/>\nreturn 0U;<br \/>\ndelay_ms(10);<\/p>\n<p>return 1U;<br \/>\n}<\/p>\n<p>\/*<br \/>\n * \u4e00\u6b21\u8fde\u7eed\u8bfb\u53d6 DATAX0&#xff5e;DATAZ1 \u5171 6 \u4e2a\u5bc4\u5b58\u5668\u3002<br \/>\n * ADXL345 \u6309\u4f4e\u5b57\u8282\u5728\u524d\u3001\u9ad8\u5b57\u8282\u5728\u540e\u7684\u987a\u5e8f\u8f93\u51fa\u6570\u636e&#xff0c;\u5408\u5e76\u540e\u8f6c\u6362\u4e3a s16&#xff0c;<br \/>\n * \u4ece\u800c\u4fdd\u7559\u8d1f\u52a0\u901f\u5ea6\u7684\u4e8c\u8fdb\u5236\u8865\u7801\u7b26\u53f7\u3002<br \/>\n *\/<br \/>\nu8 ADXL345_ReadAcceleration(ADXL345_DataTypeDef *data)<br \/>\n{<br \/>\nu8 buffer[6];<\/p>\n<p>if(data &#061;&#061; 0)<br \/>\nreturn 0U;<br \/>\nif(ADXL345_ReadRegisters(ADXL345_REG_DATAX0, buffer, 6U) &#061;&#061; 0U)<br \/>\nreturn 0U;<\/p>\n<p>\/* \u6bcf\u4e2a\u8f74\u7531\u76f8\u90bb\u7684\u4f4e\u3001\u9ad8\u4e24\u4e2a\u5b57\u8282\u7ec4\u6210\u3002 *\/<br \/>\ndata-&gt;x &#061; (s16)(((u16)buffer[1] &lt;&lt; 8) | buffer[0]);<br \/>\ndata-&gt;y &#061; (s16)(((u16)buffer[3] &lt;&lt; 8) | buffer[2]);<br \/>\ndata-&gt;z &#061; (s16)(((u16)buffer[5] &lt;&lt; 8) | buffer[4]);<\/p>\n<p>return 1U;<br \/>\n}<\/p>\n<p>\/*<br \/>\n * \u5c06\u67d0\u4e00\u8f74\u7684\u539f\u59cb\u6570\u636e\u6362\u7b97\u6210 mg&#xff08;\u6beb\u91cd\u529b\u52a0\u901f\u5ea6&#xff09;\u3002<br \/>\n *<br \/>\n * \u5f53\u524d\u4e3a\u5168\u5206\u8fa8\u7387\u6a21\u5f0f&#xff0c;\u5178\u578b\u7075\u654f\u5ea6\u4e3a 3.9mg\/LSB&#xff1a;<br \/>\n *     \u52a0\u901f\u5ea6(mg) &#061; \u539f\u59cb\u6570\u636e \u00d7 3.9<br \/>\n * \u4f7f\u7528\u201c\u5148\u4e58 39\u3001\u518d\u9664 10\u201d\u7684\u6574\u6570\u8fd0\u7b97&#xff0c;\u907f\u514d\u5f15\u5165\u6d6e\u70b9\u8fd0\u7b97\u4ee3\u7801\u3002<br \/>\n *\/<br \/>\ns32 ADXL345_RawToMilliG(s16 raw_value)<br \/>\n{<br \/>\nreturn ((s32)raw_value * 39L) \/ 10L;<br \/>\n}<\/p>\n<h3 style=\"background-color:transparent\">ADXL345.h\u4ee3\u7801<\/h3>\n<p>#ifndef __ADXL345_H<br \/>\n#define __ADXL345_H<\/p>\n<p>#include &#034;sys.h&#034;<\/p>\n<p>\/*<br \/>\n * ADXL345 \u4e09\u8f74\u52a0\u901f\u5ea6\u4f20\u611f\u5668\u9a71\u52a8\u5934\u6587\u4ef6<br \/>\n *<br \/>\n * \u786c\u4ef6\u8fde\u63a5&#xff1a;<br \/>\n *   ADXL345 SDA     -&gt; STM32F103C8T6 PA0<br \/>\n *   ADXL345 SCK\/SCL -&gt; STM32F103C8T6 PA1<br \/>\n *<br \/>\n * \u6ce8\u610f&#xff1a;ADXL345 \u7684 CS \u5f15\u811a\u9700\u8981\u63a5 3.3V&#xff0c;\u624d\u80fd\u8fdb\u5165 I2C \u901a\u4fe1\u6a21\u5f0f&#xff1b;<br \/>\n *       ALT ADDRESS\/SDO \u63a5\u5730\u65f6&#xff0c;\u5668\u4ef6\u7684 7 \u4f4d I2C \u5730\u5740\u4e3a 0x53\u3002<br \/>\n *\/<\/p>\n<p>\/* ADXL345 \u7684\u56fa\u5b9a\u5668\u4ef6\u6807\u8bc6&#xff0c;\u8bfb\u53d6 DEVID \u5bc4\u5b58\u5668\u5e94\u5f97\u5230 0xE5\u3002 *\/<br \/>\n#define ADXL345_DEVICE_ID        0xE5U<\/p>\n<p>\/* \u4fdd\u5b58\u4e00\u6b21\u91c7\u6837\u5f97\u5230\u7684 X\u3001Y\u3001Z \u4e09\u8f74\u539f\u59cb\u6709\u7b26\u53f7\u6570\u636e\u3002 *\/<br \/>\ntypedef struct<br \/>\n{<br \/>\ns16 x;                         \/* X \u8f74\u539f\u59cb\u6570\u636e *\/<br \/>\ns16 y;                         \/* Y \u8f74\u539f\u59cb\u6570\u636e *\/<br \/>\ns16 z;                         \/* Z \u8f74\u539f\u59cb\u6570\u636e *\/<br \/>\n} ADXL345_DataTypeDef;<\/p>\n<p>\/*<br \/>\n * \u521d\u59cb\u5316 GPIO \u548c ADXL345\u3002<br \/>\n * \u914d\u7f6e\u4e3a\u5168\u5206\u8fa8\u7387\u3001\u00b116g\u3001100Hz \u8f93\u51fa\u6570\u636e\u901f\u7387\u5e76\u8fdb\u5165\u6d4b\u91cf\u6a21\u5f0f\u3002<br \/>\n * \u8fd4\u56de\u503c&#xff1a;1 \u8868\u793a\u521d\u59cb\u5316\u6210\u529f&#xff0c;0 \u8868\u793a\u901a\u4fe1\u6216\u5668\u4ef6\u68c0\u6d4b\u5931\u8d25\u3002<br \/>\n *\/<br \/>\nu8 ADXL345_Init(void);<\/p>\n<p>\/* \u8bfb\u53d6 DEVID \u5bc4\u5b58\u5668&#xff0c;\u6b63\u5e38\u6a21\u5757\u5e94\u8fd4\u56de ADXL345_DEVICE_ID&#xff08;0xE5&#xff09;\u3002 *\/<br \/>\nu8 ADXL345_ReadDeviceID(void);<\/p>\n<p>\/* \u5411\u6307\u5b9a\u5bc4\u5b58\u5668\u5199\u5165\u4e00\u4e2a\u5b57\u8282&#xff0c;\u6210\u529f\u8fd4\u56de 1&#xff0c;\u5931\u8d25\u8fd4\u56de 0\u3002 *\/<br \/>\nu8 ADXL345_WriteRegister(u8 register_address, u8 data);<\/p>\n<p>\/* \u4ece\u6307\u5b9a\u5bc4\u5b58\u5668\u8bfb\u53d6\u4e00\u4e2a\u5b57\u8282&#xff0c;\u6210\u529f\u8fd4\u56de 1&#xff0c;\u5931\u8d25\u8fd4\u56de 0\u3002 *\/<br \/>\nu8 ADXL345_ReadRegister(u8 register_address, u8 *data);<\/p>\n<p>\/* \u4ece start_address \u5f00\u59cb\u8fde\u7eed\u8bfb\u53d6 length \u4e2a\u5b57\u8282\u3002 *\/<br \/>\nu8 ADXL345_ReadRegisters(u8 start_address, u8 *data, u8 length);<\/p>\n<p>\/* \u8fde\u7eed\u8bfb\u53d6 X\u3001Y\u3001Z \u4e09\u8f74\u52a0\u901f\u5ea6\u539f\u59cb\u6570\u636e\u3002 *\/<br \/>\nu8 ADXL345_ReadAcceleration(ADXL345_DataTypeDef *data);<\/p>\n<p>\/*<br \/>\n * \u5c06\u539f\u59cb\u6570\u636e\u6362\u7b97\u4e3a mg&#xff08;\u6beb\u91cd\u529b\u52a0\u901f\u5ea6&#xff09;\u3002<br \/>\n * \u5168\u5206\u8fa8\u7387\u6a21\u5f0f\u4e0b\u7684\u5178\u578b\u6bd4\u4f8b\u7cfb\u6570\u4e3a 3.9mg\/LSB&#xff0c;1000mg \u7ea6\u7b49\u4e8e 1g\u3002<br \/>\n *\/<br \/>\ns32 ADXL345_RawToMilliG(s16 raw_value);<\/p>\n<p>#endif<\/p>\n<h3 style=\"background-color:transparent\">\u516d\u3001OLED \u5c4f\u5e55\u663e\u793a\u6548\u679c\u89e3\u6790<\/h3>\n<h4>6.1 \u6b63\u5e38\u8fd0\u884c\u754c\u9762<\/h4>\n<p>  ADXL345 &#043;\/-16g<br \/>\nX:&#043;00000 mg<br \/>\nY:&#043;00000 mg<br \/>\nZ:&#043;00998 mg <\/p>\n<p class=\"img-center\"><img loading=\"lazy\" decoding=\"async\" alt=\"\" height=\"918\" src=\"https:\/\/www.wsisp.com\/helps\/wp-content\/uploads\/2026\/08\/20260803130116-6a70911c361ea.png\" width=\"1195\" \/><\/p>\n<p>\u5b57\u6bb5\u91ca\u4e49&#xff1a;<\/p>\n<ul>\n<li>&#043;\/-16g&#xff1a;\u5f53\u524d\u4f20\u611f\u5668\u6d4b\u91cf\u91cf\u7a0b&#xff1b;<\/li>\n<li>X\/Y\/Z&#xff1a;\u4e09\u8f74\u52a0\u901f\u5ea6&#xff0c;\u6b63\u8d1f\u53f7\u4ee3\u8868\u53d7\u529b\u65b9\u5411&#xff1b;<\/li>\n<li>mg&#xff1a;\u6beb\u91cd\u529b\u52a0\u901f\u5ea6\u5355\u4f4d\u3002<\/li>\n<\/ul>\n<h4>6.2 \u901a\u4fe1\u6545\u969c\u62a5\u9519\u754c\u9762<\/h4>\n<p>ADXL345<br \/>\nSensor error<br \/>\nSDA PA0 SCK PA1<br \/>\nID:0x00 <\/p>\n<p>\u51fa\u73b0\u62a5\u9519\u6392\u67e5\u987a\u5e8f&#xff1a;\u4f9b\u7535\u3001\u5171\u5730\u3001CS \u5f15\u811a\u3001SDO \u5730\u5740\u5f15\u811a\u3001SDA\/SCL \u63a5\u7ebf\u3001I2C \u4e0a\u62c9\u7535\u963b\u3002<\/p>\n<h3>\u4e03\u3001\u91cf\u7a0b\u3001\u5206\u8fa8\u7387\u4e0e\u5b9e\u9a8c\u73b0\u8c61\u5206\u6790<\/h3>\n<p>ADXL345 \u652f\u6301 4 \u6863\u91cf\u7a0b&#xff1a;\u00b12g\u3001\u00b14g\u3001\u00b18g\u3001\u00b116g&#xff1b;\u672c\u5de5\u7a0b\u9009\u7528 \u00b116g&#xff0c;\u53ef\u6355\u6349\u5927\u5e45\u5ea6\u6643\u52a8\u3001\u51b2\u51fb&#xff0c;\u5168\u5206\u8fa8\u7387\u6a21\u5f0f\u4e0b\u6240\u6709\u91cf\u7a0b\u7edf\u4e00 3.9mg\/LSB&#xff0c;\u00b116g \u53ef\u8fbe 13 \u4f4d\u9ad8\u7cbe\u5ea6\u3002<\/p>\n<li>\u503e\u659c\u5b9e\u9a8c \u8bbe\u5907\u7f13\u6162\u503e\u659c&#xff0c;\u91cd\u529b\u77e2\u91cf\u5728\u4e09\u8f74\u91cd\u65b0\u5206\u914d&#xff0c;\u4e00\u4e2a\u8f74\u6570\u503c\u51cf\u5c0f&#xff0c;\u53e6\u4e00\u8f74\u589e\u5927&#xff1b;\u9759\u6b62\u72b6\u6001\u4e0b\u4e09\u8f74\u5e73\u65b9\u548c\u5f00\u6839\u53f7\u22481000mg\u3002<\/li>\n<li>\u6643\u52a8\u51b2\u51fb\u5b9e\u9a8c \u5feb\u901f\u6446\u52a8\u3001\u6572\u51fb\u4f20\u611f\u5668&#xff0c;\u52a8\u6001\u52a0\u901f\u5ea6\u53e0\u52a0\u91cd\u529b\u5206\u91cf&#xff0c;\u5355\u8f74\u8bfb\u6570\u4f1a\u8d85\u8fc7 \u00b11000mg&#xff0c;\u5c5e\u4e8e\u6b63\u5e38\u73b0\u8c61&#xff0c;\u975e\u786c\u4ef6\u635f\u574f\u3002<\/li>\n<li>\u81ea\u7531\u843d\u4f53\u5b9e\u9a8c \u8131\u624b\u81ea\u7531\u4e0b\u843d\u77ac\u95f4\u4e09\u8f74\u8bfb\u6570\u5168\u90e8\u63a5\u8fd1 0mg&#xff0c;\u5931\u91cd\u68c0\u6d4b\u662f ADXL345 \u5185\u7f6e\u529f\u80fd&#xff0c;\u672c\u5de5\u7a0b\u672a\u542f\u7528\u4e2d\u65ad\u3002\n<p class=\"img-center\"><img loading=\"lazy\" decoding=\"async\" alt=\"\" height=\"911\" src=\"https:\/\/www.wsisp.com\/helps\/wp-content\/uploads\/2026\/08\/20260803130117-6a70911d49db9.png\" width=\"1233\" \/><\/p>\n<\/li>\n<h3>\u516b\u3001\u4f20\u611f\u5668\u8bef\u5dee\u6765\u6e90\u4e0e\u7b80\u6613\u6821\u51c6\u65b9\u6848<\/h3>\n<p>\u5b9e\u9645\u91c7\u6837\u6570\u503c\u548c\u7406\u8bba\u503c\u5b58\u5728\u504f\u5dee&#xff0c;\u4e3b\u8981\u8bef\u5dee\u6765\u6e90&#xff1a;<\/p>\n<li>\u96f6\u504f\u8bef\u5dee&#xff1a;\u65e0\u91cd\u529b\u5206\u91cf\u8f74\u5b58\u5728\u56fa\u5b9a\u51e0\u5341 mg \u504f\u79fb&#xff1b;<\/li>\n<li>\u7075\u654f\u5ea6\u8bef\u5dee&#xff1a;1g \u4f4d\u7f6e\u8bfb\u6570\u504f\u79bb 1000mg&#xff1b;<\/li>\n<li>\u5b89\u88c5\u673a\u68b0\u8bef\u5dee&#xff1a;PCB \u5b89\u88c5\u4e0d\u6c34\u5e73&#xff0c;\u91cd\u529b\u5206\u89e3\u81f3\u591a\u8f74&#xff1b;<\/li>\n<li>\u5e72\u6270\u8bef\u5dee&#xff1a;\u7535\u6e90\u6ce2\u52a8\u3001\u957f\u7ebf\u63a5\u7ebf\u3001\u7535\u673a\u632f\u52a8\u3001\u6e29\u5ea6\u6f02\u79fb\u3002<\/li>\n<h4>\u7b80\u6613\u6821\u51c6\u6b65\u9aa4<\/h4>\n<li>\u4f20\u611f\u5668\u6c34\u5e73\u9759\u6b62\u653e\u7f6e&#xff0c;\u591a\u6b21\u91c7\u6837\u53d6\u5e73\u5747\u503c&#xff0c;\u964d\u4f4e\u968f\u673a\u6296\u52a8&#xff1b;<\/li>\n<li>\u786e\u5b9a\u7406\u8bba\u6807\u51c6\u503c&#xff08;\u5e73\u653e Z \u8f74 &#043; 1000mg&#xff0c;X\/Y \u4e3a 0mg&#xff09;&#xff1b;<\/li>\n<li>\u5e73\u5747\u503c\u51cf\u53bb\u7406\u8bba\u503c&#xff0c;\u5f97\u5230\u4e09\u8f74\u96f6\u504f\u8865\u507f\u503c&#xff1b;<\/li>\n<li>\u4e24\u79cd\u8865\u507f\u65b9\u5f0f&#xff1a;\u8f6f\u4ef6\u8bfb\u53d6\u540e\u624b\u52a8\u51cf\u6cd5\u3001\u5199\u5165 OFSX\/OFSY\/OFSZ \u786c\u4ef6\u504f\u79fb\u5bc4\u5b58\u5668\u3002<\/li>\n<p>\u62d3\u5c55\u4f18\u5316&#xff1a;\u591a\u6b21\u91c7\u6837\u6ed1\u52a8\u5e73\u5747\u6ee4\u6ce2\u3001\u4e00\u9636\u4f4e\u901a\u6ee4\u6ce2&#xff0c;\u6d88\u9664\u6570\u503c\u6296\u52a8\u3002<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u4e00\u3001\u524d\u8a00<br \/>\n\u672c\u6587\u5b8c\u6574\u8bb2\u89e3\u57fa\u4e8e STM32F103C8T6  ADXL345 MEMS \u4e09\u8f74\u52a0\u901f\u5ea6\u4f20\u611f\u5668  0.96 \u5bf8 I2C OLED \u7684\u6574\u5957\u5de5\u7a0b\u539f\u7406\u3001\u786c\u4ef6\u63a5\u7ebf\u3001\u5bc4\u5b58\u5668\u914d\u7f6e\u3001\u6570\u636e\u6362\u7b97\u4e0e\u73b0\u8c61\u5206\u6790&#xff0c;\u91c7\u7528\u8f6f\u4ef6\u6a21\u62df I2C\u901a\u4fe1&#xff0c;\u65e0\u9700\u786c\u4ef6 I2C \u5916\u8bbe&#xff0c;\u65b0\u624b\u53cb\u597d&#xff0c;\u9002\u5408\u5355\u7247\u673a\u8bfe\u7a0b\u6559\u5b66\u3001\u59ff\u6001\u68c0\u6d4b\u5165\u95e8\u5b9e\u9a8c\u3002 \u6574\u5957\u5de5\u7a0b\u5b9e\u73b0\u903b\u8f91&#xff1a; \u6a21\u5757\u59ff\u6001 \/ \u632f\u52a8 \/ \u8fd0\u52a8\u6539\u53d8 \u2192 ADXL345 \u5185\u90e8 MEMS \u91c7\u96c6\u52a0\u901f\u5ea6 \u2192 \u8f6f\u4ef6 I<\/p>\n","protected":false},"author":2,"featured_media":89805,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[9126,10197,2196,217,270,269],"topic":[],"class_list":["post-89809","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-server","tag-9126","tag-10197","tag-oled","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>STM32F103 \u9a71\u52a8ADXL345\u4e09\u8f74\u52a0\u901f\u5ea6\u4f20\u611f\u5668(\u8f6f\u4ef6I2C+OLED\u5b9e\u65f6\u663e\u793a) - \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\/89809.html\" \/>\n<meta property=\"og:locale\" content=\"zh_CN\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"STM32F103 \u9a71\u52a8ADXL345\u4e09\u8f74\u52a0\u901f\u5ea6\u4f20\u611f\u5668(\u8f6f\u4ef6I2C+OLED\u5b9e\u65f6\u663e\u793a) - \u7f51\u7855\u4e92\u8054\u5e2e\u52a9\u4e2d\u5fc3\" \/>\n<meta property=\"og:description\" content=\"\u4e00\u3001\u524d\u8a00 \u672c\u6587\u5b8c\u6574\u8bb2\u89e3\u57fa\u4e8e STM32F103C8T6 ADXL345 MEMS \u4e09\u8f74\u52a0\u901f\u5ea6\u4f20\u611f\u5668 0.96 \u5bf8 I2C OLED \u7684\u6574\u5957\u5de5\u7a0b\u539f\u7406\u3001\u786c\u4ef6\u63a5\u7ebf\u3001\u5bc4\u5b58\u5668\u914d\u7f6e\u3001\u6570\u636e\u6362\u7b97\u4e0e\u73b0\u8c61\u5206\u6790&#xff0c;\u91c7\u7528\u8f6f\u4ef6\u6a21\u62df I2C\u901a\u4fe1&#xff0c;\u65e0\u9700\u786c\u4ef6 I2C \u5916\u8bbe&#xff0c;\u65b0\u624b\u53cb\u597d&#xff0c;\u9002\u5408\u5355\u7247\u673a\u8bfe\u7a0b\u6559\u5b66\u3001\u59ff\u6001\u68c0\u6d4b\u5165\u95e8\u5b9e\u9a8c\u3002 \u6574\u5957\u5de5\u7a0b\u5b9e\u73b0\u903b\u8f91&#xff1a; \u6a21\u5757\u59ff\u6001 \/ \u632f\u52a8 \/ \u8fd0\u52a8\u6539\u53d8 \u2192 ADXL345 \u5185\u90e8 MEMS \u91c7\u96c6\u52a0\u901f\u5ea6 \u2192 \u8f6f\u4ef6 I\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.wsisp.com\/helps\/89809.html\" \/>\n<meta property=\"og:site_name\" content=\"\u7f51\u7855\u4e92\u8054\u5e2e\u52a9\u4e2d\u5fc3\" \/>\n<meta property=\"article:published_time\" content=\"2026-08-03T13:01:19+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.wsisp.com\/helps\/wp-content\/uploads\/2026\/08\/20260803130116-6a70911c01274.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=\"12 \u5206\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.wsisp.com\/helps\/89809.html\",\"url\":\"https:\/\/www.wsisp.com\/helps\/89809.html\",\"name\":\"STM32F103 \u9a71\u52a8ADXL345\u4e09\u8f74\u52a0\u901f\u5ea6\u4f20\u611f\u5668(\u8f6f\u4ef6I2C+OLED\u5b9e\u65f6\u663e\u793a) - \u7f51\u7855\u4e92\u8054\u5e2e\u52a9\u4e2d\u5fc3\",\"isPartOf\":{\"@id\":\"https:\/\/www.wsisp.com\/helps\/#website\"},\"datePublished\":\"2026-08-03T13:01:19+00:00\",\"dateModified\":\"2026-08-03T13:01:19+00:00\",\"author\":{\"@id\":\"https:\/\/www.wsisp.com\/helps\/#\/schema\/person\/358e386c577a3ab51c4493330a20ad41\"},\"breadcrumb\":{\"@id\":\"https:\/\/www.wsisp.com\/helps\/89809.html#breadcrumb\"},\"inLanguage\":\"zh-Hans\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.wsisp.com\/helps\/89809.html\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.wsisp.com\/helps\/89809.html#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"\u9996\u9875\",\"item\":\"https:\/\/www.wsisp.com\/helps\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"STM32F103 \u9a71\u52a8ADXL345\u4e09\u8f74\u52a0\u901f\u5ea6\u4f20\u611f\u5668(\u8f6f\u4ef6I2C+OLED\u5b9e\u65f6\u663e\u793a)\"}]},{\"@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":"STM32F103 \u9a71\u52a8ADXL345\u4e09\u8f74\u52a0\u901f\u5ea6\u4f20\u611f\u5668(\u8f6f\u4ef6I2C+OLED\u5b9e\u65f6\u663e\u793a) - \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\/89809.html","og_locale":"zh_CN","og_type":"article","og_title":"STM32F103 \u9a71\u52a8ADXL345\u4e09\u8f74\u52a0\u901f\u5ea6\u4f20\u611f\u5668(\u8f6f\u4ef6I2C+OLED\u5b9e\u65f6\u663e\u793a) - \u7f51\u7855\u4e92\u8054\u5e2e\u52a9\u4e2d\u5fc3","og_description":"\u4e00\u3001\u524d\u8a00 \u672c\u6587\u5b8c\u6574\u8bb2\u89e3\u57fa\u4e8e STM32F103C8T6 ADXL345 MEMS \u4e09\u8f74\u52a0\u901f\u5ea6\u4f20\u611f\u5668 0.96 \u5bf8 I2C OLED \u7684\u6574\u5957\u5de5\u7a0b\u539f\u7406\u3001\u786c\u4ef6\u63a5\u7ebf\u3001\u5bc4\u5b58\u5668\u914d\u7f6e\u3001\u6570\u636e\u6362\u7b97\u4e0e\u73b0\u8c61\u5206\u6790&#xff0c;\u91c7\u7528\u8f6f\u4ef6\u6a21\u62df I2C\u901a\u4fe1&#xff0c;\u65e0\u9700\u786c\u4ef6 I2C \u5916\u8bbe&#xff0c;\u65b0\u624b\u53cb\u597d&#xff0c;\u9002\u5408\u5355\u7247\u673a\u8bfe\u7a0b\u6559\u5b66\u3001\u59ff\u6001\u68c0\u6d4b\u5165\u95e8\u5b9e\u9a8c\u3002 \u6574\u5957\u5de5\u7a0b\u5b9e\u73b0\u903b\u8f91&#xff1a; \u6a21\u5757\u59ff\u6001 \/ \u632f\u52a8 \/ \u8fd0\u52a8\u6539\u53d8 \u2192 ADXL345 \u5185\u90e8 MEMS \u91c7\u96c6\u52a0\u901f\u5ea6 \u2192 \u8f6f\u4ef6 I","og_url":"https:\/\/www.wsisp.com\/helps\/89809.html","og_site_name":"\u7f51\u7855\u4e92\u8054\u5e2e\u52a9\u4e2d\u5fc3","article_published_time":"2026-08-03T13:01:19+00:00","og_image":[{"url":"https:\/\/www.wsisp.com\/helps\/wp-content\/uploads\/2026\/08\/20260803130116-6a70911c01274.png"}],"author":"admin","twitter_card":"summary_large_image","twitter_misc":{"\u4f5c\u8005":"admin","\u9884\u8ba1\u9605\u8bfb\u65f6\u95f4":"12 \u5206"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.wsisp.com\/helps\/89809.html","url":"https:\/\/www.wsisp.com\/helps\/89809.html","name":"STM32F103 \u9a71\u52a8ADXL345\u4e09\u8f74\u52a0\u901f\u5ea6\u4f20\u611f\u5668(\u8f6f\u4ef6I2C+OLED\u5b9e\u65f6\u663e\u793a) - \u7f51\u7855\u4e92\u8054\u5e2e\u52a9\u4e2d\u5fc3","isPartOf":{"@id":"https:\/\/www.wsisp.com\/helps\/#website"},"datePublished":"2026-08-03T13:01:19+00:00","dateModified":"2026-08-03T13:01:19+00:00","author":{"@id":"https:\/\/www.wsisp.com\/helps\/#\/schema\/person\/358e386c577a3ab51c4493330a20ad41"},"breadcrumb":{"@id":"https:\/\/www.wsisp.com\/helps\/89809.html#breadcrumb"},"inLanguage":"zh-Hans","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.wsisp.com\/helps\/89809.html"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.wsisp.com\/helps\/89809.html#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"\u9996\u9875","item":"https:\/\/www.wsisp.com\/helps"},{"@type":"ListItem","position":2,"name":"STM32F103 \u9a71\u52a8ADXL345\u4e09\u8f74\u52a0\u901f\u5ea6\u4f20\u611f\u5668(\u8f6f\u4ef6I2C+OLED\u5b9e\u65f6\u663e\u793a)"}]},{"@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\/89809","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=89809"}],"version-history":[{"count":0,"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/posts\/89809\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/media\/89805"}],"wp:attachment":[{"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/media?parent=89809"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/categories?post=89809"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/tags?post=89809"},{"taxonomy":"topic","embeddable":true,"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/topic?post=89809"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}