UIPEthernet library for Arduino IDE, Eclipse with arduino plugin and MBED/SMeshStudio (AVR,STM32F,ESP8266,Intel ARC32,Nordic nRF51,Teensy boards,Realtek Ameba(RTL8195A,RTL8710)), ENC28j60 network chip. Compatible with Wiznet W5100 Ethernet library API. Compiled and tested on Nucleo-F302R8. Master repository is: https://github.com/UIPEthernet/UIPEthernet/

Revision:
19:e416943f7119
Parent:
3:6b1c9bd7773a
Child:
22:1ce14a6cd293
--- a/utility/Enc28J60Network.h	Tue Jan 03 11:39:33 2017 +0100
+++ b/utility/Enc28J60Network.h	Wed Jan 04 18:32:00 2017 +0100
@@ -56,6 +56,13 @@
   #define ENC28J60_CONTROL_CS SPI_CS
 #endif
 
+#if defined(STM32F3)                //This is workaround for stm32duino STM32F3
+  #define BOARD_SPI1_NSS_PIN        PA4
+  #define BOARD_SPI1_SCK_PIN        PA5
+  #define BOARD_SPI1_MISO_PIN       PA6
+  #define BOARD_SPI1_MOSI_PIN       PA7
+#endif                              //This is workaround for stm32duino STM32F3
+
 #if !defined(ENC28J60_CONTROL_CS)
    #if defined(__AVR__) || defined(ESP8266)
       // Arduino Uno (__AVR__) SS defined to pin 10
@@ -65,8 +72,10 @@
    #elif defined(ARDUINO_ARCH_SAM)
       // Arduino Due (ARDUINO_ARCH_SAM) BOARD_SPI_DEFAULT_SS (SS3) defined to pin 78
       #define ENC28J60_CONTROL_CS     BOARD_SPI_DEFAULT_SS
-   #elif defined(STM32_MCU_SERIES) || defined(__STM32F1__) || defined(__STM32F3__) || defined(__STM32F4__)
-      #ifdef ARDUINO_STM32F4_NETDUINO2PLUS
+   #elif defined(STM32_MCU_SERIES) || defined(__STM32F1__) || defined(__STM32F3__) || defined(STM32F3) || defined(__STM32F4__)
+      #if defined(BOARD_SPI1_NSS_PIN)
+         #define ENC28J60_CONTROL_CS     BOARD_SPI1_NSS_PIN
+      #elif defined(ARDUINO_STM32F4_NETDUINO2PLUS)
          #define ENC28J60_CONTROL_CS     PC8
       #else
          #define ENC28J60_CONTROL_CS     SPI.nssPin()
@@ -86,8 +95,12 @@
       #define SPI_MOSI MOSI
    #elif defined(ARDUINO_ARCH_SAM)
       #define SPI_MOSI PIN_SPI_MOSI
-   #elif defined(__STM32F1__) || defined(__STM32F3__) || defined(__STM32F4__)
-      #define SPI_MOSI SPI.mosiPin()
+   #elif defined(__STM32F1__) || defined(__STM32F3__) || defined(STM32F3) || defined(__STM32F4__)
+      #if defined(BOARD_SPI1_MOSI_PIN)
+         #define SPI_MOSI BOARD_SPI1_MOSI_PIN
+      #else
+         #define SPI_MOSI SPI.mosiPin()
+      #endif
    #endif
 #endif
 #if !defined(SPI_MOSI)
@@ -99,8 +112,12 @@
       #define SPI_MISO MISO
    #elif defined(ARDUINO_ARCH_SAM)
       #define SPI_MISO PIN_SPI_MISO
-   #elif defined(__STM32F1__) || defined(__STM32F3__) || defined(__STM32F4__)
-      #define SPI_MISO SPI.misoPin()
+   #elif defined(__STM32F1__) || defined(__STM32F3__) || defined(STM32F3) || defined(__STM32F4__)
+      #if defined(BOARD_SPI1_MISO_PIN)
+         #define SPI_MISO BOARD_SPI1_MISO_PIN
+      #else
+         #define SPI_MISO SPI.misoPin()
+      #endif
    #endif
 #endif
 #if !defined(SPI_MISO)
@@ -111,16 +128,24 @@
       #define SPI_SCK SCK
    #elif defined(ARDUINO_ARCH_SAM)
       #define SPI_SCK PIN_SPI_SCK
-   #elif defined(__STM32F1__) || defined(__STM32F3__) || defined(__STM32F4__)
-      #define SPI_SCK SPI.sckPin()
+   #elif defined(__STM32F1__) || defined(__STM32F3__) || defined(STM32F3) || defined(__STM32F4__)
+      #if defined(BOARD_SPI1_SCK_PIN)
+         #define SPI_SCK BOARD_SPI1_SCK_PIN
+      #else
+         #define SPI_SCK SPI.sckPin()
+      #endif
    #endif
 #endif
 #if !defined(SPI_SCK)
    #error "Not defined SPI_SCK!"
 #endif
 
-#if defined(__MBED__) || defined(ARDUINO_ARCH_SAM) || defined(__STM32F1__) || defined(__STM32F3__) || defined(__STM32F4__) || defined(ESP8266)
-   #include <SPI.h>
+#if defined(__MBED__) || defined(ARDUINO_ARCH_SAM) || defined(__STM32F1__) || defined(__STM32F3__) || defined(STM32F3) || defined(__STM32F4__) || defined(ESP8266)
+   #if defined(__STM32F3__) || defined(STM32F3)
+      #include "HardwareSPI.h"
+   #else
+      #include <SPI.h>
+   #endif
    #define ENC28J60_USE_SPILIB 1
 #endif