本文整理匯總了Python中machine.SPI屬性的典型用法代碼示例。如果您正苦於以下問題:Python machine.SPI屬性的具體用法?Python machine.SPI怎麽用?Python machine.SPI使用的例子?那麽, 這裏精選的屬性代碼示例或許可以為您提供幫助。您也可以進一步了解該屬性所在類machine
的用法示例。
在下文中一共展示了machine.SPI屬性的15個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Python代碼示例。
示例1: test
# 需要導入模塊: import machine [as 別名]
# 或者: from machine import SPI [as 別名]
def test():
"""Test code."""
# Baud rate of 14500000 seems about the max
spi = SPI(2, baudrate=14500000, sck=Pin(18), mosi=Pin(23))
display = Display(spi, dc=Pin(17), cs=Pin(5), rst=Pin(16))
# Build color list from all upper case constants (lazy approach)
colors = [getattr(modules[__name__], name) for name in dir(
modules[__name__]) if name.isupper() and name is not 'SPI']
colors.sort()
c = 0
for x in range(1, 126, 25):
for y in range(1, 126, 25):
display.fill_rectangle(x, y, 25, 25, colors[c])
c += 1
sleep(9)
display.cleanup()
示例2: test
# 需要導入模塊: import machine [as 別名]
# 或者: from machine import SPI [as 別名]
def test():
"""Bouncing sprite."""
try:
# Baud rate of 14500000 seems about the max
spi = SPI(2, baudrate=14500000, sck=Pin(18), mosi=Pin(23))
display = Display(spi, dc=Pin(17), cs=Pin(5), rst=Pin(16))
display.clear()
# Load sprite
logo = BouncingSprite('images/Python41x49.raw',
41, 49, 128, 128, 1, display)
while True:
timer = ticks_us()
logo.update_pos()
logo.draw()
# Attempt to set framerate to 30 FPS
timer_dif = 33333 - ticks_diff(ticks_us(), timer)
if timer_dif > 0:
sleep_us(timer_dif)
except KeyboardInterrupt:
display.cleanup()
示例3: test
# 需要導入模塊: import machine [as 別名]
# 或者: from machine import SPI [as 別名]
def test():
"""Test code."""
spi = SPI(2, baudrate=14500000, sck=Pin(18), mosi=Pin(23))
display = Display(spi, dc=Pin(17), cs=Pin(5), rst=Pin(16))
display.contrast(0)
display.draw_image('images/MicroPython128x128.raw',
0, 0, 128, 128)
fixed_font = XglcdFont('fonts/FixedFont5x8.c', 5, 8)
contrast_range = list(range(1, 16)) + list(reversed(range(15)))
for c in contrast_range:
display.contrast(c)
display.draw_text(30, 120, 'contrast: {0:02d}'.format(c),
fixed_font, color565(255, 255, 255))
sleep(1)
display.cleanup()
示例4: test
# 需要導入模塊: import machine [as 別名]
# 或者: from machine import SPI [as 別名]
def test():
"""Test code."""
spi = SPI(2, baudrate=14500000, sck=Pin(18), mosi=Pin(23))
display = Display(spi, dc=Pin(17), cs=Pin(5), rst=Pin(16))
display.draw_image('images/RaspberryPiWB128x128.raw', 0, 0, 128, 128)
sleep(5)
display.draw_image('images/MicroPython128x128.raw', 0, 0, 128, 128)
sleep(5)
display.draw_image('images/Tabby128x128.raw', 0, 0, 128, 128)
sleep(5)
display.draw_image('images/Tortie128x128.raw', 0, 0, 128, 128)
sleep(9)
display.cleanup()
示例5: spi_read
# 需要導入模塊: import machine [as 別名]
# 或者: from machine import SPI [as 別名]
def spi_read(self, size: int, **kwargs) -> str:
"""
Read from an SPI bus.
:param size: Number of bytes to read.
:param kwargs: Parameters to pass to :meth:`platypush.plugins.esp.EspPlugin.spi_open` and
:meth:`platypush.plugins.esp.EspPlugin.execute`.
:return: String representation of the read bytes, or base64-encoded representation if the
data can't be decoded to a string.
"""
self.spi_open(**kwargs)
code = 'spi.read({size})'.format(size=size)
response = self.execute(code, **kwargs).output
try:
return response.decode()
except UnicodeDecodeError:
return base64.encodebytes(response).decode()
示例6: spi_write
# 需要導入模塊: import machine [as 別名]
# 或者: from machine import SPI [as 別名]
def spi_write(self, data: str, binary: bool = False, **kwargs):
"""
Write data to an SPI bus.
:param data: Data to be written.
:param binary: By default data will be treated as a string. Set binary to True if it should
instead be treated as a base64-encoded binary string to be decoded before being sent.
:param kwargs: Parameters to pass to :meth:`platypush.plugins.esp.EspPlugin.spi_open` and
:meth:`platypush.plugins.esp.EspPlugin.execute`.
"""
if binary:
data = base64.decodebytes(data.encode())
else:
data = data.encode()
data = 'b"' + ''.join(['\\x{:02x}'.format(b) for b in data]) + '"'
self.spi_open(**kwargs)
code = 'spi.write({data})'.format(data=data)
self.execute(code, **kwargs)
示例7: main
# 需要導入模塊: import machine [as 別名]
# 或者: from machine import SPI [as 別名]
def main():
spi = machine.SPI(1, baudrate=40000000, polarity=1)
display = st7789.ST7789(
spi, 240, 240,
reset=machine.Pin(5, machine.Pin.OUT),
dc=machine.Pin(2, machine.Pin.OUT),
)
display.init()
while True:
display.fill(
st7789.color565(
random.getrandbits(8),
random.getrandbits(8),
random.getrandbits(8),
),
)
# Pause 2 seconds.
time.sleep(2)
示例8: setup
# 需要導入模塊: import machine [as 別名]
# 或者: from machine import SPI [as 別名]
def setup(use_spi=False, soft=True):
if use_spi:
# Pyb SSD
# 3v3 Vin
# Gnd Gnd
# X1 DC
# X2 CS
# X3 Rst
# X6 CLK
# X8 DATA
pdc = machine.Pin('X1', machine.Pin.OUT_PP)
pcs = machine.Pin('X2', machine.Pin.OUT_PP)
prst = machine.Pin('X3', machine.Pin.OUT_PP)
if soft:
spi = machine.SPI(sck=machine.Pin('X6'), mosi=machine.Pin('X8'), miso=machine.Pin('X7'))
else:
spi = machine.SPI(1)
ssd = SSD1306_SPI(WIDTH, HEIGHT, spi, pdc, prst, pcs)
else: # I2C
# Pyb SSD
# 3v3 Vin
# Gnd Gnd
# Y9 CLK
# Y10 DATA
if soft:
pscl = machine.Pin('Y9', machine.Pin.OPEN_DRAIN)
psda = machine.Pin('Y10', machine.Pin.OPEN_DRAIN)
i2c = machine.I2C(scl=pscl, sda=psda)
else:
i2c = machine.I2C(2)
ssd = SSD1306_I2C(WIDTH, HEIGHT, i2c)
return ssd
示例9: setup
# 需要導入模塊: import machine [as 別名]
# 或者: from machine import SPI [as 別名]
def setup():
pdc = machine.Pin('X1', machine.Pin.OUT_PP, value=0)
pcs = machine.Pin('X2', machine.Pin.OUT_PP, value=1)
prst = machine.Pin('X3', machine.Pin.OUT_PP, value=1)
spi = machine.SPI(1)
ssd = SSD(spi, pcs, pdc, prst) # Create a display instance
return ssd
示例10: setup
# 需要導入模塊: import machine [as 別名]
# 或者: from machine import SPI [as 別名]
def setup():
pdc = machine.Pin('X1', machine.Pin.OUT_PP, value=0)
pcs = machine.Pin('X2', machine.Pin.OUT_PP, value=1)
prst = machine.Pin('X3', machine.Pin.OUT_PP, value=1)
spi = machine.SPI(1)
ssd = SSD(spi, pcs, pdc, prst, height=96) # Create a display instance
return ssd
示例11: test
# 需要導入模塊: import machine [as 別名]
# 或者: from machine import SPI [as 別名]
def test():
"""Bouncing box."""
try:
# Baud rate of 14500000 seems about the max
spi = SPI(2, baudrate=14500000, sck=Pin(18), mosi=Pin(23))
display = Display(spi, dc=Pin(17), cs=Pin(5), rst=Pin(16))
display.clear()
colors = [color565(255, 0, 0),
color565(0, 255, 0),
color565(0, 0, 255),
color565(255, 255, 0),
color565(0, 255, 255),
color565(255, 0, 255)]
sizes = [12, 11, 10, 9, 8, 7]
boxes = [Box(128, 128, sizes[i], display,
colors[i]) for i in range(6)]
while True:
timer = ticks_us()
for b in boxes:
b.update_pos()
b.draw()
# Attempt to set framerate to 30 FPS
timer_dif = 33333 - ticks_diff(ticks_us(), timer)
if timer_dif > 0:
sleep_us(timer_dif)
except KeyboardInterrupt:
display.cleanup()
示例12: test
# 需要導入模塊: import machine [as 別名]
# 或者: from machine import SPI [as 別名]
def test():
"""Test code."""
# Baud rate of 14500000 seems about the max
spi = SPI(2, baudrate=14500000, sck=Pin(18), mosi=Pin(23))
display = Display(spi, dc=Pin(17), cs=Pin(5), rst=Pin(16))
c = 0
for x in range(0, 128, 16):
for y in range(0, 128, 16):
color = color565(*hsv_to_rgb(c / 64, 1, 1))
display.fill_circle(x + 7, y + 7, 7, color)
c += 1
sleep(9)
display.cleanup()
示例13: spi_close
# 需要導入模塊: import machine [as 別名]
# 或者: from machine import SPI [as 別名]
def spi_close(self, **kwargs):
"""
Turn off an SPI bus.
:param kwargs: Parameters to pass to :meth:`platypush.plugins.esp.EspPlugin.spi_open` and
:meth:`platypush.plugins.esp.EspPlugin.execute`.
"""
self.spi_open(**kwargs)
self.execute('spi.deinit()', **kwargs)
示例14: __init__
# 需要導入模塊: import machine [as 別名]
# 或者: from machine import SPI [as 別名]
def __init__(self, spi, width, height, reset, dc, cs=None, backlight=None,
xstart=-1, ystart=-1):
"""
display = st7789.ST7789(
SPI(1, baudrate=40000000, phase=0, polarity=1),
240, 240,
reset=machine.Pin(5, machine.Pin.OUT),
dc=machine.Pin(2, machine.Pin.OUT),
)
"""
self.width = width
self.height = height
self.spi = spi
if spi is None:
import machine
self.spi = machine.SPI(1, baudrate=40000000, phase=0, polarity=1)
self.reset = reset
self.dc = dc
self.cs = cs
self.backlight = backlight
if xstart >= 0 and ystart >= 0:
self.xstart = xstart
self.ystart = ystart
elif (self.width, self.height) == (240, 240):
self.xstart = 0
self.ystart = 0
elif (self.width, self.height) == (135, 240):
self.xstart = 52
self.ystart = 40
else:
raise ValueError(
"Unsupported display. Only 240x240 and 135x240 are supported "
"without xstart and ystart provided"
)
示例15: write
# 需要導入模塊: import machine [as 別名]
# 或者: from machine import SPI [as 別名]
def write(self, command=None, data=None):
"""SPI write to the device: commands and data"""
self.cs_low()
if command is not None:
self.dc_low()
self.spi.write(bytes([command]))
if data is not None:
self.dc_high()
self.spi.write(data)
self.cs_high()