8266 SSD1306 写出到屏幕 自动刷新换行 保证文字不被显示屏幕之外

   

8266显示超长字符串 让文字自动换行显示在OLED中

from machine import Pin, I2C
i2c = I2C(scl=Pin(5), sda=Pin(4))
from ssd1306 import SSD1306_I2C
oled = SSD1306_I2C(128, 64, i2c)

#SD1306 OLED显示函数
p=0 #设置全局变量用于计数
def text(string,c=0,r=0): #c这个参数可以平移显示的位置
    global p #调用全局变量
    if p>60:  #60为6行文字 1行为10像素点
        p=0
        oled.fill(0) #清空屏幕
    colum=int(len(string)/15)+2  #每行可以显示15个字符 包含数字字母数字
    i=0
    for a in range(0,colum):
        oled.text(string[i:i+15],c,a*10+p) #循环写入每行显示需要显示的文字
        i=i+15 #用于输入下一行文字 
        p=a*10+p 换行
    oled.show() 显示文字

 

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
u8g2是一款用于驱动OLED显示屏的库,而SSD1306是一种常见的OLED显示屏控制芯片。在u8g2库中,自动换行是指当文本内容超过显示屏宽度时,自动将文本换行显示。 要实现u8g2 ssd1306自动换行功能,可以按照以下步骤进行操作: 1. 首先,确保你已经正确地安装了u8g2库,并且将SSD1306的引脚连接到你的开发板上。 2. 在代码中,首先需要初始化u8g2库和SSD1306显示屏。具体的初始化代码可以参考u8g2库的文档或示例代码。 3. 在需要显示文本的地方,使用u8g2库提供的函数来设置字体、位置和对齐方式等参数。例如,可以使用`u8g2.setFont()`函数设置字体,使用`u8g2.setCursor()`函数设置文本起始位置。 4. 在调用绘制函数之前,使用`u8g2.setDrawColor(1)`函数将绘制颜色设置为白色(或其他需要的颜色)。 5. 使用`u8g2.drawStr()`函数来绘制文本。当文本内容超过显示屏宽度时,u8g2库会自动将文本换行显示。 下面是一个简单的示例代码,演示了如何在u8g2 ssd1306上实现自动换行: ```cpp #include <U8g2lib.h> U8G2_SSD1306_128X64_NONAME_F_HW_I2C u8g2(U8G2_R0); void setup() { u8g2.begin(); u8g2.setFont(u8g2_font_ncenB08_tr); } void loop() { u8g2.firstPage(); do { u8g2.setCursor(0, 10); u8g2.print("This is a long text that will automatically wrap to the next line if it exceeds the display width."); } while (u8g2.nextPage()); } ``` 这段代码中,我们首先在`setup()`函数中初始化了u8g2库和SSD1306显示屏。然后,在`loop()`函数中,使用`u8g2.setCursor()`函数设置文本起始位置,并使用`u8g2.print()`函数绘制文本。由于文本内容较长,超过了显示屏宽度,所以u8g2库会自动将文本换行显示。 希望这个示例能够帮助你理解u8g2 ssd1306自动换行功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值