import machine
import time
# Configurazione dei pin per la comunicazione SPI
spi = machine.SPI(0, sck=machine.Pin(2), mosi=machine.Pin(3), miso=machine.Pin(4))
# Configura i pin per il bus SPI in modalità slave
spi_slave = machine.SPI(1, sck=machine.Pin(10), mosi=machine.Pin(12), miso=machine.Pin(11))
# Funzione per inviare e ricevere dati attraverso SPI
def spi_communication(send_data):
received_data = bytearray(len(send_data))
spi.write_readinto(send_data, received_data)
return received_data
# Main loop
while True:
data_to_send = bytearray([0x01, 0x02, 0x03, 0x04]) # Dati da inviare
received_data = spi_communication(data_to_send)
time.sleep(1) # Pausa di 1 secondo
# Ricevi dati tramite SPI
received_data_slave = bytearray(5)
spi_slave.readinto(received_data_slave)
# Elabora i dati ricevuti
processed_data = bytearray(len(received_data_slave))
for i in range(len(received_data_slave)):
processed_data[i] = received_data_slave[i] + 1
# Invia dati elaborati tramite SPI
spi_slave.write(processed_data)
# Stampa dei dati ricevuti
print("Dati ricevuti:", received_data)
time.sleep(1) # Pausa di 1 secondo