|
拟diy一个esp32驱动的家用4位电子表,
好友帮我写了一个代码(见下)
原来是在esp32-s2上运行正常的,
被我移植到esp32早期版(见下图)
然后就不正常了。
在此向玩micropython的高手请教:
注释一下,下面代码的意思。
先谢谢啦!
- from machine import Pin, I2C
- import ssd1306
- i2c = I2C(1)
- oled = ssd1306.SSD1306_I2C(128, 32, i2c)
- import st7735s8 as st
- import st7735s11 as st1
- import st7735s10 as st2
- import st7735s9 as st3
- from machine import SPI,PWM
- import time
- spi=SPI(2, baudrate=20000000, polarity=0, phase=0, sck=Pin(14), mosi=Pin(13))
- #spi = SPI(2,baudrate=20000000)
- lcd=st.ST7735S(spi,dc=16,rst=17,cs=18,bl=32,width=128,height=160)
- lcd.rotate(180)
- lcd1=st1.ST7735S(spi,dc=16,rst=17,cs=19,bl=32,width=128,height=160)
- lcd1.rotate(180)
- lcd2=st2.ST7735S(spi,dc=16,rst=17,cs=25,bl=32,width=128,height=160)
- lcd2.rotate(180)
- lcd3=st3.ST7735S(spi,dc=16,rst=17,cs=26,bl=32,width=128,height=160)
- lcd3.rotate(180)
- pwm1 = PWM(Pin(32), freq=1000, duty=256)
- import pwm
- import network
- wlan = network.WLAN(network.STA_IF)
- wlan.active(True)
- from machine import RTC
- rtc = RTC()
- pwm.nettime_set()
- rtc.datetime()
- print(rtc.datetime())
- ttt=pwm.t()
- qc=0
- qqc=0
- qqqc=0
- while True:
- datetime=rtc.datetime()
- if datetime[6]!=qqqc:
- qqc=0
- if datetime[5] ==1 and datetime[6] ==59 :
- qc=0
- if datetime[5] == 0 and datetime[6]==1 and qc==0:
- pwm.nettime_set()
- qc+=1
- if qqc==0:
- ttt=pwm.t()
- qqqc=datetime[6]
- lcd.clear()
- lcd.drawText3('A6',str(ttt[4]%10),0,0,st.rgb565(255,255,0))#
- lcd.show()
- lcd1.clear()
- lcd1.drawText3('A6',str(ttt[4]//10),0,0,st.rgb565(0,255,0))#
- lcd1.show()
- lcd2.clear()
- lcd2.drawText3('A6',str(ttt[3]%10),0,0,st.rgb565(0,0,255))#时个位
- lcd2.show()
- lcd3.clear()
- lcd3.drawText3('A6',str(ttt[3]//10),0,0,st.rgb565(255,0,0))#时十位
- lcd3.show()
-
- if ttt[5]/2==ttt[5]//2:
- oled.fill(0)
- oled.fill_rect(32,12,12,12,1)
- oled.fill_rect(92,12,12,12,1)
- oled.show()
- else:
- oled.fill(0)
- oled.fill_rect(32,12,12,12,0)
- oled.fill_rect(92,12,12,12,0)
- oled.show()
- qqc=1
复制代码
我现在的esp32板子:
|
|