from machine import I2C, Pin
from ssd1306 import SSD1306_I2C
sda_pin = Pin(15, Pin.PULL_UP)
scl_pin = Pin(16, Pin.PULL_UP)
i2c = I2C(1, sda=sda_pin, scl=scl_pin, freq=800_000)
print(i2c. scan())
oled = SSD1306_I2C(128, 64, i2c, addr=0x3c)
def display():
# framebuf 库仅支持编码为 32~126 的 ASCII 可打印字符
oled.text(" !\"#$%&'()*+,-./", 0, 0)
oled.text("0123456789:;<=>?", 0, 8)
oled.text("@ABCDEFGHIJKLMNO", 0, 16)
oled.text("PQRSTUVWXYZ[\]^_", 0, 24)
oled.text("`abcdefghijklmno", 0, 32)
oled.text("pqrstuvwxyz{|}~", 0, 40)
oled. show()
def testAscii():
# chr() 的返回值是与当前整数对应的 ASCII 字符
Ascii = ''
for i in range(32, 127):
Ascii = Ascii + chr(i)
for i in range(128, 256):
Ascii = Ascii + chr(i)
return Ascii
def display_Ascii():
# framebuf 库仅支持编码为 32~126 的 ASCII 可打印字符
oled.text(testAscii()[0:16], 0, 0)
oled.text(testAscii()[16:32], 0, 8)
oled.text(testAscii()[32:48], 0, 16)
oled.text(testAscii()[48:64], 0, 24)
oled.text(testAscii()[64:80], 0, 32)
oled.text(testAscii()[80:95], 0, 40)
oled. show()
if __name__ == "__main__":
display()
# print(testAscii())
# display_Ascii()
# ASCII 可打印字符(字符编码:32~127)
# 32~126 共 95 个字符:32 是空格,其中 48~57 是数字 0~9,
# 65~90 是 26 个大写英文字母,
# 97~122 是 26 个小写英文字母,
# 其余是标点符号、运算符号等。
# 第 127 个字符表示键盘上的 Delete 命令。
# ASCII 扩展码(字符编码:128~255)
# 后 128 个字符称为扩展 ASCII 码。
# 许多基于 x86 的系统支持扩展(或“高位”)ASCII。
# 扩展 ASCII 码允许使用每个字符的第 8 位,
# 从而表示另外 128 个特殊符号、外文字母和图形符号。