0.96oled4针iic如何显示浮点
时间: 2023-10-01 20:09:52 浏览: 147
0.96寸OLED屏幕通常使用SSD1306控制芯片,支持I2C接口进行通讯。要在屏幕上显示浮点数,需要将浮点数转换为字符串,并将其显示在屏幕上。
以下是一个示例代码,可以将浮点数转换为字符串并显示在OLED屏幕上:
```
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#define OLED_RESET 4
Adafruit_SSD1306 display(OLED_RESET);
void setup() {
display.begin(SSD1306_SWITCHCAPVCC, 0x3C); // 初始化屏幕
display.clearDisplay(); // 清空屏幕
}
void loop() {
float num = 3.1415926; // 测试用的浮点数
char str[10]; // 存放转换后的字符串
dtostrf(num, 4, 2, str); // 将浮点数转换为字符串,保留2位小数,总长度为4位
display.clearDisplay(); // 清空屏幕
display.setCursor(0, 0); // 设置光标位置
display.print(str); // 在屏幕上显示字符串
display.display(); // 刷新屏幕
delay(1000); // 等待1秒
}
```
注意,在将浮点数转换为字符串时,需要使用`dtostrf`函数。该函数的参数说明如下:
```C++
dtostrf(floatVar, minStringWidthIncDecimalPoint, numVarsAfterDecimal, charBuf);
```
- `floatVar`:要转换的浮点数
- `minStringWidthIncDecimalPoint`:转换后字符串的最小宽度(包括小数点),如果转换后的字符串不足该宽度,则在左侧填充空格
- `numVarsAfterDecimal`:保留的小数位数
- `charBuf`:存放转换后字符串的缓冲区,需要预先定义好大小
阅读全文