笔记本以太网网络电缆被拔出(以太网电缆被拔出什么意思)

在此之前可以阅读前篇博文Arduino-Ethernet库学习笔记(1)。这篇博文是关于该库的简介、调试工具之UDP/TCP网络调试助手NetAssist介绍、Postman介绍以及网络方面的小经验。下面开始来学习Arduino-Ethernet库中的Ethernet 类。

1 Ethernet 类

以太网类初始化以太网库和网络设置。

1.1 Ethernet.begin()

  • 描述

初始化以太网库和网络设置。在1.0版中,该库支持DHCP。在正确的网络设置下使用Ethernet.begin(mac),以太网板将自动获取IP地址。这会大大增加案例的大小。为确保在需要时正确续订DHCP租约,请确保定期调用Ethernet.maintain()。

  • 语法

Ethernet.begin(mac);

Ethernet.begin(mac, ip);

Ethernet.begin(mac, ip, dns);

Ethernet.begin(mac, ip, dns, gateway);

Ethernet.begin(mac, ip, dns, gateway, subnet);

  • 参数

mac:设备的MAC(媒体访问控制)地址(6个字节的数组)。这是屏蔽的以太网硬件地址。较新的Arduino以太网板包含带有设备MAC地址的标签。对于较旧的板,请选择您自己的;

ip:设备的IP地址(4个字节的数组);

gateway:网络网关的IP地址(4个字节的数组)。可选:默认为设备IP地址,最后一个八位位组设置为1;

subnet:网络的子网掩码(4个字节的数组)。可选:默认为255.255.255.0。

  • 返回值

此函数的DHCP版本Ethernet.begin(mac)返回一个int:成功的DHCP连接为1,失败的则为0。其他版本不返回任何内容。

  • 例子

#include <SPI.h>

#include <Ethernet.h>

// 板的媒体访问控制(以太网硬件)地址:

byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };

//板的IP地址:

byte ip[] = { 10, 0, 0, 177 };

void setup()

{

Ethernet.begin(mac, ip);

}

void loop () {}

1.2 Ethernet.dnsServerIP()

  • 描述

返回设备的DNS服务器IP地址。

  • 语法

Ethernet.dnsServerIP()

  • 参数

  • 返回值

设备的DNS服务器IP地址(IPAddress)

  • 例子

#include <SPI.h>

#include <Ethernet.h>

byte mac[] = {0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED};

IPAddress ip(10, 0, 0, 177);

void setup() {

Serial.begin(9600);

while (!Serial) {

; // 等待串行端口连接。仅本地USB端口需要

}

Ethernet.begin(mac, ip);

Serial.print("The DNS server IP address is: ");

Serial.println(Ethernet.dnsServerIP());

}

void loop () {}

  • 串口打印结果:

The DNS server IP address is: 10.0.0.1

1.3 Ethernet.gatewayIP()

  • 描述

返回设备的网关IP地址。

  • 语法

Ethernet.gatewayIP()

  • 参数

  • 返回值

设备的网关IP地址(IPAddress)。

  • 例子

#include <SPI.h>

#include <Ethernet.h>

byte mac[] = {0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED};

IPAddress ip(10, 0, 0, 177);

void setup() {

Serial.begin(9600);

while (!Serial) {

; // 等待串行端口连接。仅本地USB端口需要

}

Ethernet.begin(mac, ip);

Serial.print("The gateway IP address is: ");

Serial.println(Ethernet.gatewayIP());

}

void loop () {}

  • 串口打印结果:

The gateway IP address is: 10.0.0.1

1.4 Ethernet.hardwareStatus()

  • 描述

Ethernet.hardwareStatus()告诉您在Ethernet.begin()期间检测到哪个WIZnet以太网控制器芯片(如果有)。这可用于故障排除。如果未检测到以太网控制器,则可能是硬件问题。

  • 语法

Ethernet.hardwareStatus()

  • 参数

  • 返回值

在Ethernet.begin()(EthernetHardwareStatus)期间检测到哪个WIZnet以太网控制器芯片:

EthernetNoHardware

EthernetW5100

EthernetW5200

EthernetW5500

  • 例子

#include <SPI.h>

#include <Ethernet.h>

byte mac[] = {0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED};

IPAddress ip(10, 0, 0, 177);

void setup() {

//打开串行通信并等待端口打开

Serial.begin(9600);

while (!Serial) {

; // 等待串行端口连接。仅本地USB端口需要

}

Ethernet.begin(mac, ip);

if (Ethernet.hardwareStatus() == EthernetNoHardware) {

Serial.println("Ethernet shield was not found.");

}

else if (Ethernet.hardwareStatus() == EthernetW5100) {

Serial.println("W5100 Ethernet controller detected.");

}

else if (Ethernet.hardwareStatus() == EthernetW5200) {

Serial.println("W5200 Ethernet controller detected.");

}

else if (Ethernet.hardwareStatus() == EthernetW5500) {

Serial.println("W5500 Ethernet controller detected.");

}

}

void loop () {}

  • 串口打印结果:

W5100 Ethernet controller detected.

1.5 Ethernet.init()

  • 描述

用于配置以太网控制器芯片的CS(片选)引脚。以太网库具有默认的CS引脚,通常是正确的,但是对于某些非标准以太网硬件,可能需要使用其他CS引脚。

  • 语法

Ethernet.init(sspin)

  • 参数

spin:用于CS的引脚号(字节)

  • 返回值

  • 例子

#include <SPI.h>

#include <Ethernet.h>

byte mac[] = {0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED};

IPAddress ip(10, 0, 0, 177);

void setup() {

Ethernet.init(53);// 将引脚53用于以太网CS

Ethernet.begin(mac, ip);

}

void loop () {}

1.6 Ethernet.linkStatus()

  • 描述

告诉您链接是否处于活动状态。 LinkOFF可能表示以太网电缆已拔出或有故障。仅当使用W5200和W5500以太网控制器芯片时,此功能才可用。

  • 语法

Ethernet.linkStatus()

  • 参数

  • 返回值

链接状态(EthernetLinkStatus):

Unknown

LinkON

LinkOFF

  • 例子

#include <SPI.h>

#include <Ethernet.h>

void setup() {

//打开串行通信并等待端口打开

Serial.begin(9600);

while (!Serial) {

; // 等待串行端口连接。仅本地USB端口需要

}

}

void loop () {

if (Ethernet.linkStatus() == Unknown) {

Serial.println("Link status unknown. Link status detection is only available with W5200 and W5500.");

}

else if (Ethernet.linkStatus() == LinkON) {

Serial.println("Link status: On");

}

else if (Ethernet.linkStatus() == LinkOFF) {

Serial.println("Link status: Off");

}

}

  • 串口打印结果:

Link status unknown. Link status detection is only available with W5200 and W5500.

1.7 Ethernet.localIP()

  • 描述

获取以太网板的IP地址。通过DHCP自动分配地址时很有用。

  • 语法

Ethernet.localIP();

  • 参数

  • 返回值

IP地址

  • 例子

#include <SPI.h>

#include <Ethernet.h>

// 在下面输入控制器的MAC地址。

// 较新的以太网防护罩在防护罩上的标签上印有MAC地址

byte mac[] = {

0x00, 0xAA, 0xBB, 0xCC, 0xDE, 0x02 };

// 初始化以太网客户端库

// 服务器的IP地址和端口

// 您要连接的端口(HTTP默认为端口80):

EthernetClient client;

void setup() {

//启动串行库:

Serial.begin(9600);

// 启动以太网连接:

if (Ethernet.begin(mac) == 0) {

Serial.println("Failed to configure Ethernet using DHCP");

//进行下去没有意义,因此永远不要做任何事情:

for(;;)

;

}

// 打印您的本地IP地址:

Serial.println(Ethernet.localIP());

}

void loop() {

}

1.8 Ethernet.MACAddress()

  • 描述

用设备的MAC地址填充提供的缓冲区。

  • 语法

Ethernet.MACAddress(mac_address)

  • 参数

mac_address:缓冲区,用于接收MAC地址(6个字节的数组)

  • 返回值

  • 例子

#include <SPI.h>

#include <Ethernet.h>

byte mac[] = {0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED};

IPAddress ip(10, 0, 0, 177);

void setup() {

Serial.begin(9600);

while (!Serial) {

; // 等待串行端口连接。仅本地USB端口需要

}

Ethernet.begin(mac, ip);

byte macBuffer[6]; // 创建一个缓冲区来保存MAC地址

Ethernet.MACAddress(macBuffer); // 填满缓冲区

Serial.print("The MAC address is: ");

for (byte octet = 0; octet < 6; octet++) {

Serial.print(macBuffer[octet], HEX);

if (octet < 5) {

Serial.print('-');

}

}

}

void loop () {}

  • 串口打印结果:

The MAC address is: DE-AD-BE-EF-FE-ED

1.9 Ethernet.setDnsServerIP()

  • 描述

设置DNS服务器的IP地址。不适用于DHCP。

  • 语法

Ethernet.setDnsServerIP(dns_server)

  • 参数

dns_server:DNS服务器的IP地址(IPAddress)。

  • 返回值

  • 例子

#include <SPI.h>

#include <Ethernet.h>

byte mac[] = {0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED};

IPAddress ip(10, 0, 0, 177);

IPAddress myDns(192, 168, 1, 1);

void setup() {

Ethernet.begin(mac, ip, myDns);

IPAddress newDns(192, 168, 1, 1);

Ethernet.setDnsServerIP(newDns); // 更改DNS服务器IP地址

}

void loop () {}

1.10 Ethernet.setGatewayIP()

  • 描述

设置网络网关的IP地址。不适用于DHCP。

  • 语法

Ethernet.setGatewayIP(gateway)

  • 参数

gateway:网络网关的IP地址(IPAddress)。

  • 返回值

  • 例子

#include <SPI.h>

#include <Ethernet.h>

byte mac[] = {0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED};

IPAddress ip(10, 0, 0, 177);

IPAddress myDns(192, 168, 1, 1);

IPAddress gateway(192, 168, 1, 1);

void setup() {

Ethernet.begin(mac, ip, myDns, gateway);

IPAddress newGateway(192, 168, 100, 1);

Ethernet.setGatewayIP(newGateway); // 更改网关IP地址

}

void loop () {}

1.11 Ethernet.setLocalIP()

  • 描述

设置设备的IP地址。不适用于DHCP。

  • 语法

Ethernet.setLocalIP(local_ip)

  • 参数

local_ip:要使用的IP地址(IPAddress)。

  • 返回值

  • 例子

#include <SPI.h>

#include <Ethernet.h>

byte mac[] = {0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED};

IPAddress ip(10, 0, 0, 177);

void setup() {

Ethernet.begin(mac, ip);

IPAddress newIp(10, 0, 0, 178);

Ethernet.setLocalIP(newIp); // 更改IP地址

}

void loop () {}

1.12 Ethernet.setMACAddress()

  • 描述

设置MAC地址。不适用于DHCP。

  • 语法

Ethernet.setMACAddress(mac)

  • 参数

mac:要使用的MAC地址(6个字节的数组)

  • 返回值

  • 例子

#include <SPI.h>

#include <Ethernet.h>

byte mac[] = {0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED};

IPAddress ip(10, 0, 0, 177);

void setup() {

Ethernet.begin(mac, ip);

byte newMac[] = {0x00, 0xAA, 0xBB, 0xCC, 0xDE, 0x02};

Ethernet.setMACAddress(newMac); //更改MAC地址

}

void loop () {}

1.13 Ethernet.setRetransmissionCount()

  • 描述

设置以太网控制器在放弃之前要进行的传输尝试次数。初始值为8。8次传输尝试乘以200毫秒的默认超时,等于通信失败期间的1600毫秒的阻塞延迟。如果通信出现问题,您可能希望设置一个较小的数字以使您的程序更具响应性。尽管有名称,但它设置了传输尝试的总数(而不是第一次尝试失败后的重试次数),因此您想要设置的最小值为1。

  • 语法

Ethernet.setRetransmissionCount(number)

  • 参数

number:以太网控制器在放弃之前应该进行的传输尝试次数(字节)。

  • 返回值

  • 例子

#include <SPI.h>

#include <Ethernet.h>

byte mac[] = {0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED};

IPAddress ip(10, 0, 0, 177);

void setup() {

Ethernet.begin(mac, ip);

Ethernet.setRetransmissionCount(1); // 将以太网控制器配置为仅尝试一个

}

void loop () {}

1.14 Ethernet.setRetransmissionTimeout()

  • 描述

设置以太网控制器的超时时间。初始值为200毫秒。 200 ms的超时时间乘以默认的8次尝试,等于通信失败期间的1600 ms阻塞延迟。您可能希望设置较短的超时时间,以使程序在通信出现问题时更加敏感。您将需要做一些试验,以确定适合您的特定应用程序的值。

  • 语法

Ethernet.setRetransmissionTimeout(milliseconds)

  • 参数

milliseconds:超时时间(uint16_t)

  • 返回值

  • 例子

#include <SPI.h>

#include <Ethernet.h>

byte mac[] = {0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED};

IPAddress ip(10, 0, 0, 177);

void setup() {

Ethernet.begin(mac, ip);

Ethernet.setRetransmissionTimeout(50); // 将以太网控制器的超时设置为50毫秒

}

void loop () {}

1.15 Ethernet.setSubnetMask()

  • 描述

设置网络的子网掩码。不适用于DHCP。

  • 语法

Ethernet.setSubnetMask(subnet)

  • 参数

subnet:网络的子网掩码(IP地址)。

  • 返回值

  • 例子

#include <SPI.h>

#include <Ethernet.h>

byte mac[] = {0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED};

IPAddress ip(10, 0, 0, 177);

IPAddress myDns(192, 168, 1, 1);

IPAddress gateway(192, 168, 1, 1);

IPAddress subnet(255, 255, 0, 0);

void setup() {

Ethernet.begin(mac, ip, myDns, gateway, subnet);

IPAddress newSubnet(255, 255, 255, 0);

Ethernet.setSubnetMask(newSubnet); // 更改子网掩码

}

void loop () {}

1.16 Ethernet.subnetMask()

  • 描述

返回设备的子网掩码。

  • 语法

Ethernet.subnetMask()

  • 参数

  • 返回值

设备的子网掩码(IPAddress)

  • 例子

#include <SPI.h>

#include <Ethernet.h>

byte mac[] = {0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED};

IPAddress ip(10, 0, 0, 177);

void setup() {

Serial.begin(9600);

while (!Serial) {

; // 等待串行端口连接。仅本地USB端口需要

}

Ethernet.begin(mac, ip);

Serial.print("The subnet mask is: ");

Serial.println(Ethernet.subnetMask());

}

void loop () {}

  • 串口打印结果:

The subnet mask is: 255.255.255.0

本文所有内容来自互联网,如有侵权/不实内容请联系我们删除,联系邮箱postusb@foxmail.com

发布者:缘分,转转请注明出处:https://www.bjxdyg.com/baike/168901.html

(0)
缘分缘分
上一篇 2023年 4月 15日 下午3:22
下一篇 2023年 4月 15日 下午3:49

相关推荐

  • 雾霾产生的原因(雾霾产生的原因5条)

    “雾霾”,已经成为我们生活中挥之不去的一道“风景”了,不管我们是否愿意,它就在我们身边,可是我们真的了解它吗。 雾霾是雾和霾的组合词,因为空气质量的恶化,阴霾天气现象出现增多,危害加重。 中国不少地区把阴霾天气现象并入雾一起作为灾害性天气预警预报,统称为“雾霾天气”。 霾现象的主要原因是在水平方向静风现象增多,城市里大楼越建越高,阻挡和摩擦作用使风流经城区时…

    2023年 3月 1日
    18100
  • 拼多多发布的视频怎么删除(如何删除拼多多的视频)

    近日,有网友曝光一则视频称,得物疑似调用其手机权限,删除了一段其录制的关于收到问题货物的视频,引发关注。11月13日,得物就此事回应南都记者称,没有相应技术能力进行批量识别及定向删除。对该用户反馈的情况,得物正在以高工作优先级认真查明,并正与用户及厂商沟通核查。 南都记者梳理发现,此类事件并非首次发生,国内曾有多家知名App被质疑删除用户手机图片。 网友质疑…

    2023年 4月 19日
    13300
  • 怎么让word一页一页竖下来(怎么让word一页一页竖下来排版)

    word里面其中一页可以改为横向的吗?经过实际操作发现是完全可以的。 平时在使用word排版中,有时可能根据特殊情况,需要把文档中的某一页或几页设置成横向,而其它页面不能改变。实际上word本来都有这些功能,而且还不止一种方法,只是我们平时没有留意而已。 那么怎样把word其中一页变成横版,其它页不变呢?下面我们以word2007为例演示操作,介绍其中的一种…

    2023年 7月 5日
    13700
  • 天府之国四川还是成都(成都旅游必去十大景点推荐)

    #头条创作挑战赛#成都,位于中国西南地区,素有“天府之国”之称。这座城市拥有悠久的历史文化和独特的自然风光,是中国最具活力和发展潜力的城市之一。 作为中国西部重要的经济中心和物流中转站,成都在国家“一带一路”战略中扮演着极其重要的角色。 同时,成都还是西南地区的金融、商贸、物流中心,拥有丰富的资源和优质的投资环境,吸引着众多的国内外企业入驻。成都更是中国最适…

    2023年 5月 1日
    32700
  • 洗衣机排水管漏水处理方法(洗衣机排水管与地漏连接)

    洗衣机排水管漏水的解决方法是什么? 洗衣机给我们的家庭生活带来了很多便利。一旦洗衣机出现问题,不仅会造成水的浪费,还会带来麻烦。洗衣机一般预留排水管的位置。安装洗衣机时,可根据具体情况改变排水管的方向。让我们来看看洗衣机排水管漏水的原因和洗衣机排水管漏水的解决方案,供您参考。 洗衣机排水管漏水的原因 1.排水阀弹性过强或排水绳太短,排水橡胶圈无法放下,导致与…

    2023年 3月 23日
    24600

发表回复

登录后才能评论

联系邮箱

postusb@foxmail.com

邮箱咨询: QQ交谈

邮箱:postusb@foxmail.com

工作时间:周一至周五,9:30-18:30,节假日休息