Node-mcu(ESP32-S)燒錄&測試-micropython

 Node-mcu(ESP32-S)燒錄&測試

前言:

作圖要花好多時間,所以用錄影來替代

材料:

Node-mcu開發板

安裝CH340&CP210X序列埠驅動

選擇自己對應的電腦系統安裝

安裝Thonny IDE



燒錄軔體&測試編輯器

先下載所要燒錄的軔體

依照使用Thonny IDE按視頻步驟燒錄

測試:

from machine import Pin, SoftI2C
import time

led=Pin(2, Pin.OUT)
while True:
    led.on()
    time.sleep(1)
    led.off()
    time.sleep(1)



 

*出現[errno 116]的錯誤訊息解方

原因:
Memory Addressing Mode: 顯示RAM不支持水平尋址模式(Horizontal Addressing Mode),只支持頁面尋址模式(Page Addressing Mode) 更新顯示RAM時, 列起始地址(Column Start Address)有2個點的偏移量,即列起始地址(Column Start Address)為 0x02,每更新一個頁面之前要做正確的列起始地址設定,即發送0x02和0x10指令。

初始化部分,设置为页面寻址模式(Page Addressing Mode) , 即指令 0x20, 0x02
ssd1306.py文件的第 42 行

            SET_MEM_ADDR, 0x00, # horizontal

更改為:

            SET_MEM_ADDR, 0x02,    # Page Addressing Mode

傳輸顯示內容到顯示RAM的部分,每傳輸一頁(Page)數據之前,設定列起始地址(Column Start Address),同時設定頁面地址(GDDRAM Page Start Address) (0xb0 ~ 0xb7)

ssd1306.py文件的第 85-91 行

        self.write_cmd(SET_COL_ADDR)
        self.write_cmd(x0)
        self.write_cmd(x1)
        self.write_cmd(SET_PAGE_ADDR)
        self.write_cmd(0)
        self.write_cmd(self.pages - 1)
        self.write_data(self.buffer)

更改为:

        buffer_mv = memoryview(self.buffer)
        
        for i in range(0,8):
            self.write_cmd(0x02)       # Lower 4-bit,  Column Start Address = 0x02
            self.write_cmd(0x10)       # Higher 4-bit, Column Start Address = 0x02
            self.write_cmd(0xb0 | i)   # 頁面設置地址
            self.write_data(buffer_mv[i * 128 : i * 128 + 128])  



留言

這個網誌中的熱門文章

使用PWM控制伺服馬達-micropython

DHT11+OLED+IFTTT+LINE-notity-micropython

BMP280氣壓,溫度模組-micropython