Tenk på følgende minimale eksempel, der jeg setter pinMode
før jeg ringer SPI-funksjoner:
#include <SPI.h>void setup () {pinMode (10, OUTPUT) ; SPI.begin (10); SPI.setDataMode (10, SPI_MODE1);} ugyldig sløyfe () {forsinkelse (1000); SPI.transfer (10,1);}
Nå når SPI.transfer (10,1)
kalles i loop ()
, Jeg ser alltid at den slave valgte pinnen går ned til 1,65V, men ikke 0 som den skal! (se bildet nedenfor)
Hvis vi ikke kaller pinMode ()
, slik:
# inkluderer <SPI.h>void setup () {SPI.begin (10); SPI.setDataMode (10, SPI_MODE1);} ugyldig sløyfe () {forsinkelse (1000); SPI.transfer (10,1);}
Vi får det vi forventer når vi ringer SPI.transfer
:
Er det en feil, eller har du en forklaring på den oppførselen?
Tusen takk på forhånd for din tid og interesse!