/*
STM32F103 W5X00 Ethernet Library DHCP test.
PIN Connections (Using STM32F103):
W5X00 - STM32F103
---------------------
VCC - 3.3V
GND - GND
SS - Pin PA4
SCLK - Pin PA5
MISO - Pin PA6
MOSI - Pin PA7
RST - PullUp
*/
#include <SPI.h>
#include <Ethernet_STM.h> //
https://github.com/rogerclarkmelbourne/Arduino_STM32
#define DEBUG 1
EthernetClient client;
#if defined(WIZ550io_WITH_MACADDRESS) // Use assigned MAC
address of WIZ550io
;
#else
//byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0x51 };
byte mac[] = { 0xDE, 0xAD, 0x00, 0x00, 0x00, 0x00 };
#endif
void setUniqueMAC(byte * mac) {
delay(1000);
uint16 *idBase0 = (uint16 *) (0x1FFFF7E8);
uint16 *idBase1 = (uint16 *)
(0x1FFFF7E8+0x02);
uint32 *idBase2 = (uint32 *)
(0x1FFFF7E8+0x04);
uint32 *idBase3 = (uint32 *)
(0x1FFFF7E8+0x08);
#if DEBUG
Serial.print("Unique ID is ");
Serial.print(*(idBase0),HEX);
Serial.print("-");
Serial.print(*(idBase1),HEX);
Serial.print("-");
Serial.print(*(idBase2),HEX);
Serial.print("-");
Serial.println(*(idBase3),HEX);
#endif
// mac[0] = (*(idBase0) & 0xFF00) >> 8;
// mac[1] = (*(idBase0) & 0xFF);
mac[2] = (*(idBase2) & 0xFF000000) >> 24;
mac[3] = (*(idBase2) & 0xFF0000) >> 16;
mac[4] = (*(idBase2) & 0xFF00) >> 8;
mac[5] = (*(idBase2) & 0xFF);
}
void setup() {
Serial.begin(9600);
while(!Serial);
setUniqueMAC(mac);
for(int i=0;i<6;i++) {
Serial.print(mac[i],HEX);
if (i != 5) Serial.print("-");
}
Serial.println();
#if defined(W5100_ETHERNET_SHIELD)
Serial.println("W5100_ETHERNET_SHIELD begin....");
#endif
#if defined(W5500_ETHERNET_SHIELD)
#if defined(WIZ550io_WITH_MACADDRESS)
Serial.println("WIZ550io_ETHERNET_SHIELD
begin....");
#else
Serial.println("W5500_ETHERNET_SHIELD begin....");
#endif
#endif
#if defined(WIZ550io_WITH_MACADDRESS)
if (Ethernet.begin() == 0) {
#else
if (Ethernet.begin(mac) == 0) {
#endif
Serial.println("Failed to configure
Ethernet using DHCP");
// no point in carrying on, so do
nothing forevermore:
for(;;)
;
}
Serial.print("localIP: ");
Serial.println(Ethernet.localIP());
Serial.print("subnetMask: ");
Serial.println(Ethernet.subnetMask());
Serial.print("gatewayIP: ");
Serial.println(Ethernet.gatewayIP());
Serial.print("dnsServerIP: ");
Serial.println(Ethernet.dnsServerIP());
for (byte thisByte = 0; thisByte < 4;
thisByte++) {
// print the value of each byte of the
IP address:
Serial.print(Ethernet.localIP()[thisByte], DEC);
if (thisByte != 3) Serial.print("-");
}
Serial.println();
#if defined(WIZ550io_WITH_MACADDRESS)
byte mac_address[6] ={0,};
W5100.getMACAddress(mac_address);
Serial.print("MAC: ");
for(int i = 0; i < 6; i++) {
Serial.print("0x");
Serial.print(mac_address[i],HEX);
Serial.print(" ");
}
Serial.println();
#endif
}
void loop() {
}
|