arduino中如何查看开发板的默认SPI引脚位置

在GxEPD2库中,发现以下注释:

// mapping suggestion for ESP32, e.g. LOLIN32, see .../variants/.../pins_arduino.h for your board
// NOTE: there are variants with different pins for SPI ! CHECK SPI PINS OF YOUR BOARD

意思是在variants文件里面可以找到默认的SPI引脚位置。如:
Twelite的开发板中,

C:\Users\用户名\AppData\Local\Arduino15\packages\intiki\hardware\jn516x\1.0.0\variants\jn516x\variant.h
中,有如下代码:

#define PIN_D0 (20)
#define PIN_D1 (21)

static const uint8_t D0   = PIN_D0;
static const uint8_t D1   = PIN_D1;

#define PIN_SPI_MISO  (1)
#define PIN_SPI_MOSI  PIN_D1
#define PIN_SPI_SCK   PIN_D0
#define PIN_SPI_SS    (19)

static const uint8_t MOSI = PIN_SPI_MOSI ;
static const uint8_t MISO = PIN_SPI_MISO ;
static const uint8_t SCK  = PIN_SPI_SCK ;
static const uint8_t SS   = PIN_SPI_SS ;

同时C:\Users\用户名\AppData\Local\Arduino15\packages\intiki\hardware\jn516x\1.0.0\variants\native\variant.h中有

#define PIN_SPI_MISO         (9)
#define PIN_SPI_MOSI         (10)
#define PIN_SPI_SCK          (11)
#define PIN_SPI_SS0          (8)
#define PIN_SPI_SS1          (7)
#define SPI_INTERFACE        SPI0
#define SPI_INTERFACE_ID     ID_SPI0
#define SPI_CHANNELS_NUM 2
#define BOARD_SPI_SS0        PIN_SPI_SS0
#define BOARD_SPI_SS1        PIN_SPI_SS1
#define BOARD_SPI_DEFAULT_SS 8

static const uint8_t SS   = BOARD_SPI_SS0 ;
static const uint8_t SS1  = BOARD_SPI_SS1 ;
static const uint8_t MOSI = PIN_SPI_MOSI ;
static const uint8_t MISO = PIN_SPI_MISO ;
static const uint8_t SCK  = PIN_SPI_SCK ;

我再研究下之前的定义,

#define PIN_LED2             (2)
#define LED_BUILTIN          PIN_LED2

再结合这个表(来源)[https://qiita.com/soburi/items/0b0aa3d0c4332a5e7a4c#%E5%BF%85%E8%A6%81%E3%81%AA%E3%83%A2%E3%83%8E],
arduino中如何查看开发板的默认SPI引脚位置_第1张图片
可以清楚地知道括号里面的数字就是DIO的数字。

那么究竟是哪一个呢?
查看arduino编译时的console可以发现,
LINKCMD='C:\Users\用户名\AppData\Local\Arduino15\packages\intiki\hardware\jn516x\1.0.0/variants/jn516x/ldscript/intiki_JN516x.ld' preproc.macros
由编译地址推断,是jn516x地址的SPI而不是native的SPI。
那么jn516x的(20)(21)指什么引脚呢?
查看上图可以发现,右边浅蓝色的是SPI引脚,而SPICLK和SPIMISO所指的应该就是20和21.

ESP32引脚

在esp32的lolin32开发板中,
C:\Users\用户名\AppData\Local\Arduino15\packages\esp32\hardware\esp32\1.0.4\variants\lolin32\pins_arduino.h

static const uint8_t SS    = 5;
static const uint8_t MOSI  = 23;
static const uint8_t MISO  = 19;
static const uint8_t SCK   = 18;

很清楚地写了引脚是啥。
附上Lolin32的引脚图。(来源https://swf.com.tw/?p=1331:)
arduino中如何查看开发板的默认SPI引脚位置_第2张图片

你可能感兴趣的:(Arduino)