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])
留言
張貼留言